

Este é o novo *Guia de referência de modelos do CloudFormation*. Atualize seus favoritos e links. Para obter ajuda para começar a usar o CloudFormation, consulte o [Guia do usuário do AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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

A função intrínseca `Fn::GetAZs` retorna uma matriz que lista as zonas de disponibilidade para uma região especificada em ordem alfabética. Como os clientes têm acesso a diferentes zonas de disponibilidade, a função intrínseca `Fn::GetAZs` permite que os autores do modelo gravem modelos que se adaptam ao acesso do usuário da chamada. Dessa forma, não é necessário realizar a codificação rígida de uma lista completa de zonas de disponibilidade para uma região especificada.

**Importante**  
A função `Fn::GetAZs` retorna apenas as zonas de disponibilidade que tenham uma sub-rede padrão, a menos que nenhuma das zonas de disponibilidade tenha uma sub-rede padrão. Nesse caso, todas as zonas de disponibilidade são retornadas.  
Da mesma forma que a resposta do comando `describe-availability-zones`da AWS CLI, a ordem dos resultados da função `Fn::GetAZs` não é garantida e pode ser alterada quando novas zonas de disponibilidade forem adicionadas.

permissões do IAM

As permissões necessárias para usar a função `Fn::GetAZs` dependem da plataforma em que você estiver iniciando as instâncias do Amazon EC2. Para ambas as plataformas, são necessárias permissões para as ações do Amazon EC2 `DescribeAvailabilityZones` e `DescribeAccountAttributes`. Para o EC2-VPC, também são necessárias permissões para a ação do Amazon EC2`DescribeSubnets`.

## Declaração
<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>

Sintaxe para o nome da função completo:

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

Sintaxe para a forma resumida:

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

## Parâmetros
<a name="intrinsic-function-reference-getazs-parameters"></a>

region  <a name="region"></a>
O nome da região cujas zonas de disponibilidade você deseja obter.  
É possível usar o pseudoparâmetro `AWS::Region` para especificar a região na qual a pilha será criada. Especificar uma string vazia é equivalente a especificar `AWS::Region`.

## Valor de retorno
<a name="intrinsic-function-reference-getazs-return-value"></a>

A lista de zonas de disponibilidade da região.

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

### Avaliar uma região
<a name="intrinsic-function-reference-getazs-examples-evaluate-region"></a>

Para esses exemplos, o CloudFormation avalia `Fn::GetAZs` para a seguinte matriz, assumindo que o usuário criou a pilha na região `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
```

 

### Especificar a zona de disponibilidade de uma sub-rede
<a name="intrinsic-function-reference-getazs-examples-subnet-az"></a>

O exemplo a seguir usa `Fn::GetAZs` para especificar uma zona de disponibilidade da sub-rede:

#### 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: ""
```

 

### Funções aninhadas com YAML em forma abreviada
<a name="intrinsic-function-reference-getazs-examples-nested-functions"></a>

Os exemplos a seguir mostram os padrões válidos para usar as funções intrínsecas aninhadas usando a forma abreviada YAML. Você não pode aninhar funções em forma abreviada consecutivamente, portanto, um padrão como `!GetAZs !Ref` é inválido.

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

## Funções compatíveis
<a name="intrinsic-function-reference-getazs-supported-functions"></a>

Use a função `Ref` na função `Fn::GetAZs`.