Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Ottieni AWS valori usando pseudo parametri
Gli pseudo parametri sono variabili integrate che forniscono l'accesso a importanti informazioni AWS sull'ambiente, come account IDs, nomi delle regioni e dettagli dello stack, che possono cambiare tra le distribuzioni o gli ambienti.
È possibile utilizzare pseudoparametri anziché valori codificati per rendere i modelli più portabili e più facili da riutilizzare in diverse aree geografiche. Account AWS
Sintassi
È possibile fare riferimento agli pseudoparametri utilizzando la funzione intrinseca o la funzione intrinseca. Ref
Fn::Sub
Ref
La funzione Ref
intrinseca utilizza la seguente sintassi generale. Per ulteriori informazioni, consulta Ref.
JSON
{ "Ref" : "AWS::
PseudoParameter
" }
YAML
!Ref AWS::
PseudoParameter
Fn: :Sub
La funzione Fn::Sub
intrinseca utilizza un formato diverso che include la ${}
sintassi dello pseudo parametro. Per ulteriori informazioni, consulta Fn::Sub.
JSON
{ "Fn::Sub" : "${AWS::
PseudoParameter
}" }
YAML
!Sub '${AWS::
PseudoParameter
}'
Pseudoparametri disponibili
AWS::AccountId
Restituisce l' Account AWS ID dell'account in cui viene creato lo stack, ad esempio. 123456789012
Questo pseudo parametro viene comunemente utilizzato per definire ruoli IAM, policy e altre policy relative alle risorse che coinvolgono account specifici. ARNs
AWS::NotificationARNs
Restituisce l'elenco di Amazon Resource Names (ARNs) per gli argomenti di Amazon SNS che ricevono notifiche sugli eventi dello stack. Puoi specificarli ARNs tramite l'--notification-arns
opzione presente in AWS CLI o tramite la console durante la creazione o l'aggiornamento dello stack.
A differenza di altri pseudo parametri che restituiscono un singolo valore, AWS::NotificationARNs
restituisce un elenco di. ARNs Per accedere a un ARN specifico nell'elenco, utilizzare la funzione Fn::Select
intrinseca. Per ulteriori informazioni, consulta Fn::Select.
AWS::NoValue
Rimuove la proprietà della risorsa corrispondente quando specificata come valore restituito nella funzione intrinseca Fn::If
. Per ulteriori informazioni, consulta Fn::If.
Questo pseudo parametro è particolarmente utile per creare proprietà condizionali delle risorse che devono essere incluse solo in determinate condizioni.
AWS::Partition
Restituisce la partizione in cui si trova la risorsa. Per lo standard Regioni AWS, la partizione è. aws
Per risorse in altre partizioni, la partizione è aws-
partitionname
. Ad esempio, la partizione per le risorse nelle regioni della Cina (Pechino e Ningxia) è aws-cn
e la partizione per le risorse nella regione AWS GovCloud (Stati Uniti occidentali) è. aws-us-gov
La partizione fa parte dell'ARN per le risorse. L'utilizzo AWS::Partition
garantisce il corretto funzionamento dei modelli su diverse AWS partizioni.
AWS::Region
Restituisce una stringa che rappresenta la Regione in cui la risorsa comprendente è in fase di creazione, ad esempio us-west-2
.
Questo è uno degli pseudo parametri più comunemente usati, in quanto consente ai modelli di adattarsi a diversi Regioni AWS modelli senza modifiche.
AWS::StackId
Restituisce l'ID (ARN) dello stack, ad esempio. arn:aws:cloudformation:us-west-2:123456789012:stack/teststack/51af3dc0-da77-11e4-872e-1234567db123
AWS::StackName
Restituisce il nome dello stack, ad esempio. teststack
Il nome dello stack viene comunemente utilizzato per creare nomi di risorse univoci facilmente identificabili come appartenenti a uno stack specifico.
AWS::URLSuffix
Restituisce il suffisso per il AWS dominio in Regione AWS cui è distribuito lo stack. Il suffisso è in genereamazonaws.com
, ma per la regione Cina (Pechino), il suffisso è. amazonaws.com.cn
Questo parametro è particolarmente utile durante la creazione di endpoint URLs di AWS servizio.
Esempi
Utilizzo di base
Gli esempi seguenti creano due risorse: un argomento Amazon SNS e un CloudWatch allarme che invia notifiche a quell'argomento. AWS::StackName
Utilizzano e AWS::AccountId
inseriscono dinamicamente il nome dello stack, l'ID corrente e l'ID dell'account nei nomi Regione AWS, nelle descrizioni delle risorse e. AWS::Region
ARNs
JSON
{ "Resources": { "MyNotificationTopic": { "Type": "AWS::SNS::Topic", "Properties": { "DisplayName": { "Fn::Sub": "Notifications for ${AWS::StackName}" } } }, "CPUAlarm": { "Type": "AWS::CloudWatch::Alarm", "Properties": { "AlarmDescription": { "Fn::Sub": "Alarm for high CPU in ${AWS::Region}" }, "AlarmName": { "Fn::Sub": "${AWS::StackName}-HighCPUAlarm" }, "MetricName": "CPUUtilization", "Namespace": "AWS/EC2", "Statistic": "Average", "Period": 300, "EvaluationPeriods": 1, "Threshold": 80, "ComparisonOperator": "GreaterThanThreshold", "AlarmActions": [{ "Fn::Sub": "arn:aws:sns:${AWS::Region}:${AWS::AccountId}:${MyNotificationTopic}" }] } } } }
YAML
Resources: MyNotificationTopic: Type: AWS::SNS::Topic Properties: DisplayName: !Sub Notifications for ${AWS::StackName} CPUAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmDescription: !Sub Alarm for high CPU in ${AWS::Region} AlarmName: !Sub ${AWS::StackName}-HighCPUAlarm MetricName: CPUUtilization Namespace: AWS/EC2 Statistic: Average Period: 300 EvaluationPeriods: 1 Threshold: 80 ComparisonOperator: GreaterThanThreshold AlarmActions: - !Sub arn:aws:sns:${AWS::Region}:${AWS::AccountId}:${MyNotificationTopic}
Uso di AWS::NotificationARNs
Gli esempi seguenti configurano un gruppo Auto Scaling per inviare notifiche, ad esempio eventi di avvio ed errori di avvio. La configurazione utilizza lo AWS::NotificationARNs
pseudo parametro, che fornisce un elenco di ARNs argomenti di Amazon SNS specificati durante la creazione dello stack. La Fn::Select
funzione sceglie il primo ARN da quell'elenco.
JSON
"myASG": { "Type": "AWS::AutoScaling::AutoScalingGroup", "Properties": { "LaunchTemplate": { "LaunchTemplateId": { "Ref": "myLaunchTemplate" }, "Version": { "Fn::GetAtt": [ "myLaunchTemplate", "LatestVersionNumber" ] } }, "MaxSize": "1", "MinSize": "1", "VPCZoneIdentifier": [ "subnetIdAz1", "subnetIdAz2", "subnetIdAz3" ], "NotificationConfigurations" : [{ "TopicARN" : { "Fn::Select" : [ "0", { "Ref" : "AWS::NotificationARNs" } ] }, "NotificationTypes" : [ "autoscaling:EC2_INSTANCE_LAUNCH", "autoscaling:EC2_INSTANCE_LAUNCH_ERROR" ] }] } }
YAML
myASG: Type: AWS::AutoScaling::AutoScalingGroup Properties: LaunchTemplate: LaunchTemplateId: !Ref myLaunchTemplate Version: !GetAtt myLaunchTemplate.LatestVersionNumber MinSize: '1' MaxSize: '1' VPCZoneIdentifier: - subnetIdAz1 - subnetIdAz2 - subnetIdAz3 NotificationConfigurations: - TopicARN: Fn::Select: - '0' - Ref: AWS::NotificationARNs NotificationTypes: - autoscaling:EC2_INSTANCE_LAUNCH - autoscaling:EC2_INSTANCE_LAUNCH_ERROR
Proprietà condizionali con AWS::NoValue
Gli esempi seguenti creano un'istanza DB Amazon RDS che utilizza uno snapshot solo se viene fornito un ID snapshot. Se la UseDBSnapshot
condizione risulta vera, CloudFormation utilizza il valore del DBSnapshotName
parametro per la proprietà. DBSnapshotIdentifier
Se la condizione risulta falsa, CloudFormation rimuove la DBSnapshotIdentifier
proprietà.
JSON
"MyDB" : { "Type" : "AWS::RDS::DBInstance", "Properties" : { "AllocatedStorage" : "5", "DBInstanceClass" : "db.t2.small", "Engine" : "MySQL", "EngineVersion" : "5.5", "MasterUsername" : { "Ref" : "DBUser" }, "MasterUserPassword" : { "Ref" : "DBPassword" }, "DBParameterGroupName" : { "Ref" : "MyRDSParamGroup" }, "DBSnapshotIdentifier" : { "Fn::If" : [ "UseDBSnapshot", {"Ref" : "DBSnapshotName"}, {"Ref" : "AWS::NoValue"} ] } } }
YAML
MyDB: Type: AWS::RDS::DBInstance Properties: AllocatedStorage: '5' DBInstanceClass: db.t2.small Engine: MySQL EngineVersion: '5.5' MasterUsername: Ref: DBUser MasterUserPassword: Ref: DBPassword DBParameterGroupName: Ref: MyRDSParamGroup DBSnapshotIdentifier: Fn::If: - UseDBSnapshot - Ref: DBSnapshotName - Ref: AWS::NoValue