Ottieni AWS valori usando pseudo parametri - AWS CloudFormation

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-arnsopzione 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::StackNameUtilizzano 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