

Il s’agit du nouveau *Guide de référence des modèles CloudFormation *. Veuillez mettre à jour vos favoris et vos liens. Pour obtenir de l'aide pour démarrer CloudFormation, consultez le [guide de AWS CloudFormation l'utilisateur](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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.

# `Fn::GetAZs`
<a name="intrinsic-function-reference-getavailabilityzones"></a>

La fonction intrinsèque `Fn::GetAZs` renvoie un tableau qui répertorie les zones de disponibilité d’une région donnée en ordre alphabétique. Etant donné que les clients ont accès à différentes zones de disponibilité, la fonction intrinsèque `Fn::GetAZs` permet aux auteurs d'écrire des modèles qui s'adaptent à l'accès de l'utilisateur appelant. De cette façon, vous n’avez pas à coder en dur une liste complète de zones de disponibilité pour une région donnée.

**Important**  
La fonction `Fn::GetAZs` renvoie uniquement les zones de disponibilité qui ont un sous-réseau par défaut, sauf si aucune d'elles n'a de sous-réseau par défaut. Dans ce cas, toutes les zones de disponibilité sont renvoyées.  
Comme pour la réponse de la `describe-availability-zones` AWS CLI commande, l'ordre des résultats de la `Fn::GetAZs` fonction n'est pas garanti et peut changer lorsque de nouvelles zones de disponibilité sont ajoutées.

Autorisations IAM

Les autorisations dont vous avez besoin pour pouvoir utiliser la fonction `Fn::GetAZs` dépendent de la plateforme sur laquelle vous lancez les instances Amazon EC2. Pour les deux plateformes, vous avez besoin des autorisations requises pour les actions Amazon EC2 `DescribeAvailabilityZones` et `DescribeAccountAttributes`. Pour EC2-VPC, vous devez également disposer des autorisations requises pour l'action Amazon EC2 `DescribeSubnets`.

## Déclaration
<a name="intrinsic-function-reference-getazs-declaration"></a>

### JSON
<a name="intrinsic-function-reference-getazs-syntax.json"></a>

```
{ "Fn::GetAZs" : "{{region}}" }
```

### YAML
<a name="intrinsic-function-reference-getazs-syntax.yaml"></a>

Syntaxe pour le nom complet de la fonction :

```
Fn::GetAZs: {{region}}
```

Syntaxe pour la forme courte :

```
!GetAZs {{region}}
```

## Parameters
<a name="intrinsic-function-reference-getazs-parameters"></a>

region  <a name="region"></a>
Nom de la région pour laquelle vous souhaitez obtenir les zones de disponibilité.  
Vous pouvez utiliser le pseudo-paramètre `AWS::Region` pour spécifier la région dans laquelle la pile est créée. La définition d'une chaîne vide revient à spécifier `AWS::Region`.

## Valeur renvoyée
<a name="intrinsic-function-reference-getazs-return-value"></a>

Liste des zones de disponibilité de la région.

## Exemples
<a name="intrinsic-function-reference-getazs-examples"></a>

### Évaluer une région.
<a name="intrinsic-function-reference-getazs-examples-evaluate-region"></a>

Pour ces exemples, CloudFormation évalue `Fn::GetAZs` le tableau suivant, en supposant que l'utilisateur a créé la pile dans la région : `us-east-1`

`[ "us-east-1a", "us-east-1b", "us-east-1c", "us-east-1d", "us-east-1e" ]`

#### JSON
<a name="intrinsic-function-reference-getazs-example1.json"></a>

```
1. { "Fn::GetAZs" : "" }
2. { "Fn::GetAZs" : { "Ref" : "AWS::Region" } }
3. { "Fn::GetAZs" : "us-east-1" }
```

#### YAML
<a name="intrinsic-function-reference-getazs-example1.yaml"></a>

```
1. Fn::GetAZs: ""
2. Fn::GetAZs:
3.   Ref: "AWS::Region"
4. Fn::GetAZs: us-east-1
```

 

### Spécification de la zone de disponibilité d'un sous-réseau
<a name="intrinsic-function-reference-getazs-examples-subnet-az"></a>

L'exemple suivant utilise `Fn::GetAZs` pour spécifier la zone de disponibilité d'un sous-réseau :

#### JSON
<a name="intrinsic-function-reference-getazs-example.json"></a>

```
"mySubnet" : {
  "Type" : "AWS::EC2::Subnet",
  "Properties" : {
    "VpcId" : { 
      "Ref" : "VPC"   
    },
    "CidrBlock" : "10.0.0.0/24",
    "AvailabilityZone" : {
      "Fn::Select" : [ 
        0, 
        { 
          "Fn::GetAZs" : "" 
        } 
      ]
    }
  }
}
```

#### YAML
<a name="intrinsic-function-reference-getazs-example.yaml"></a>

```
mySubnet: 
  Type: AWS::EC2::Subnet
  Properties: 
    VpcId: 
      !Ref VPC
    CidrBlock: 10.0.0.0/24
    AvailabilityZone: 
      Fn::Select: 
        - 0
        - Fn::GetAZs: ""
```

 

### Fonctions imbriquées avec forme courte YAML
<a name="intrinsic-function-reference-getazs-examples-nested-functions"></a>

Les exemples suivants illustrent des modèles valides pour l'utilisation des fonctions intrinsèque imbriquées à l'aide d'une forme YAML courte. Comme vous ne pouvez pas imbriquer consécutivement des fonctions de forme courte, un modèle tel que `!GetAZs !Ref` n'est pas valide.

#### YAML
<a name="intrinsic-function-reference-getavailabilityzones-example3.yaml"></a>

```
1. AvailabilityZone: !Select
2.   - 0
3.   - !GetAZs
4.     Ref: 'AWS::Region'
```

#### YAML
<a name="intrinsic-function-reference-getavailabilityzones-example4.yaml"></a>

```
1. AvailabilityZone: !Select
2.   - 0
3.   - Fn::GetAZs: !Ref 'AWS::Region'
```

## Fonctions prises en charge
<a name="intrinsic-function-reference-getazs-supported-functions"></a>

Vous pouvez utiliser la fonction `Ref` dans la fonction `Fn::GetAZs`.