

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Obtenir des AWS valeurs à l'aide de pseudo-paramètres
<a name="pseudo-parameter-reference"></a>

Les pseudo-paramètres sont des variables intégrées qui permettent d'accéder à des informations importantes sur AWS l'environnement, telles que le compte IDs, les noms de région et les détails de la pile, qui peuvent changer entre les déploiements ou les environnements.

Vous pouvez utiliser des pseudo-paramètres au lieu de valeurs codées en dur pour rendre vos modèles plus portables et plus faciles à réutiliser dans différentes Comptes AWS régions.

## Syntaxe
<a name="pseudo-parameter-syntax"></a>

Vous pouvez référencer des pseudo-paramètres à l’aide de la fonction `Ref` intrinsèque ou de la fonction `Fn::Sub` intrinsèque. 

### Réf
<a name="pseudo-parameter-ref-syntax"></a>

La fonction intrinsèque `Ref` utilise la syntaxe générale suivante. Pour plus d'informations, consultez [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

#### JSON
<a name="pseudo-parameter-ref-syntax.json"></a>

```
{ "Ref" : "AWS::PseudoParameter" }
```

#### YAML
<a name="pseudo-parameter-ref-syntax.yaml"></a>

```
!Ref AWS::PseudoParameter
```

### Fn::And
<a name="pseudo-parameter-sub-syntax"></a>

La fonction intrinsèque `Fn::Sub` utilise un format différent qui inclut la syntaxe `${}` autour du pseudo-paramètre. Pour plus d'informations, consultez [Fn::Sub](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-sub.html).

#### JSON
<a name="pseudo-parameter-sub-syntax.json"></a>

```
{ "Fn::Sub" : "${AWS::PseudoParameter}" }
```

#### YAML
<a name="pseudo-parameter-sub-syntax.yaml"></a>

```
!Sub '${AWS::PseudoParameter}'
```

## Pseudo-paramètres disponibles
<a name="available-pseudo-parameters"></a>

### `AWS::AccountId`
<a name="cfn-pseudo-param-accountid"></a>

Renvoie l' Compte AWS ID du compte dans lequel la pile est créée, par exemple`123456789012`.

Ce pseudo-paramètre est couramment utilisé lors de la définition de rôles, de politiques et d'autres politiques de ressources IAM impliquant des informations spécifiques à un compte ARNs.

### `AWS::NotificationARNs`
<a name="cfn-pseudo-param-notificationarns"></a>

Renvoie la liste des noms de ressources Amazon (ARNs) pour les rubriques Amazon SNS qui reçoivent des notifications d'événements de pile. Vous pouvez les spécifier ARNs via l'`--notification-arns`option dans AWS CLI ou via la console lorsque vous créez ou mettez à jour votre stack.

Contrairement aux autres pseudo-paramètres qui renvoient une valeur unique, `AWS::NotificationARNs` renvoie une liste de ARNs. Pour accéder à un ARN spécifique de la liste, utilisez la fonction `Fn::Select` intrinsèque. Pour de plus amples informations, veuillez consulter [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-select.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-select.html).

### `AWS::NoValue`
<a name="cfn-pseudo-param-novalue"></a>

Supprime la propriété de ressource correspondante lorsqu'elle est spécifiée comme valeur de retour dans la fonction intrinsèque `Fn::If`. Pour de plus amples informations, veuillez consulter [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-if](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-if).

Ce pseudo-paramètre est particulièrement utile pour créer des propriétés de ressources conditionnelles qui ne doivent être incluses que dans certaines conditions.

### `AWS::Partition`
<a name="cfn-pseudo-param-partition"></a>

Renvoie la partition dans laquelle se trouve la ressource. En standard Régions AWS, la partition est`aws`. Pour les ressources dans d'autres partitions, la partition est `aws-`*partitionname*. Par exemple, la partition pour les ressources dans les régions de Chine (Pékin et Ningxia) est `aws-cn` et la partition pour les ressources dans la région AWS GovCloud (ouest des États-Unis) est. `aws-us-gov`

La partition fait partie de l’ARN des ressources. L'utilisation `AWS::Partition` garantit le bon fonctionnement de vos modèles sur les différentes AWS partitions.

### `AWS::Region`
<a name="cfn-pseudo-param-region"></a>

Renvoie une chaîne représentant la région dans laquelle la ressource globale est créée, comme `us-west-2`.

C'est l'un des pseudo-paramètres les plus couramment utilisés, car il permet aux modèles de s'adapter aux différents Régions AWS sans modification.

### `AWS::StackId`
<a name="cfn-pseudo-param-stackid"></a>

Renvoie l’ID (ARN) de la pile, par exemple `arn:aws:cloudformation:us-west-2:123456789012:stack/teststack/51af3dc0-da77-11e4-872e-1234567db123`.

### `AWS::StackName`
<a name="cfn-pseudo-param-stackname"></a>

Renvoie le nom de la pile, tel que `teststack`.

Le nom de la pile est couramment utilisé pour créer des noms de ressources uniques qui sont facilement identifiables comme appartenant à une pile spécifique.

### `AWS::URLSuffix`
<a name="cfn-pseudo-param-urlsuffix"></a>

Renvoie le suffixe du AWS domaine dans Région AWS lequel la pile est déployée. Le suffixe est généralement `amazonaws.com`, mais pour la région Chine (Pékin), le suffixe est `amazonaws.com.cn`.

Ce paramètre est particulièrement utile lors de la construction URLs pour les points de terminaison AWS de service.

## Exemples
<a name="pseudo-parameter-examples"></a>

**Topics**
+ [Utilisation de base](#pseudo-parameter-basic-example)
+ [Utilisation de AWS::NotificationARNs](#pseudo-parameter-notification-example)
+ [Propriétés conditionnelles avec AWS::NoValue](#pseudo-parameter-novalue-example)

### Utilisation de base
<a name="pseudo-parameter-basic-example"></a>

Les exemples suivants créent deux ressources : une rubrique Amazon SNS et une CloudWatch alarme qui envoie des notifications à cette rubrique. Ils utilisent `AWS::StackName``AWS::Region`, et `AWS::AccountId` pour insérer dynamiquement le nom de la pile, le courant Région AWS et l'ID de compte dans les noms des ressources, les descriptions et ARNs.

#### JSON
<a name="pseudo-parameter-basic-example.json"></a>

```
{
    "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
<a name="pseudo-parameter-basic-example.yaml"></a>

```
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}
```

### Utilisation de AWS::NotificationARNs
<a name="pseudo-parameter-notification-example"></a>

Les exemples suivants configurent un groupe Auto Scaling pour envoyer des notifications en cas d’événements de lancement d’instance et d’erreurs de lancement. La configuration utilise le `AWS::NotificationARNs` pseudo-paramètre, qui fournit une liste des rubriques Amazon SNS spécifiées lors de la ARNs création de la pile. La fonction `Fn::Select` choisit le premier ARN dans cette liste.

#### JSON
<a name="pseudo-parameter-notification-example.json"></a>

```
"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
<a name="pseudo-parameter-notification-example.yaml"></a>

```
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
```

### Propriétés conditionnelles avec AWS::NoValue
<a name="pseudo-parameter-novalue-example"></a>

Les exemples suivants créent une instance de base de données Amazon RDS qui utilise un instantané uniquement si un ID d’instantané est fourni. Si la `UseDBSnapshot` condition est vraie, CloudFormation utilise la valeur du `DBSnapshotName` paramètre de la `DBSnapshotIdentifier` propriété. Si la condition est fausse, la `DBSnapshotIdentifier` propriété CloudFormation est supprimée. 

#### JSON
<a name="pseudo-parameter-novalue-example.json"></a>

```
"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
<a name="pseudo-parameter-novalue-example.yaml"></a>

```
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
```