Fn::GetAZs - AWS CloudFormation

Fn::GetAZs

A função intrínseca Fn::GetAZs retorna uma matriz que lista as zonas de disponibilidade para uma região específica 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 codificar uma lista completa das zonas de disponibilidade de uma região especificada.

Importante

Para a plataforma EC2-Classic, a função Fn::GetAZs gera todas as zonas de disponibilidade de uma região. Para a plataforma EC2-VPC, a função Fn::GetAZs gera apenas as zonas de disponibilidade que têm uma sub-rede padrão, a menos que nenhuma das zonas de disponibilidade tenha uma sub-rede padrão; neste caso, todas as zonas de disponibilidade são geradas.

Da mesma forma que a resposta do comando describe-availability-zonesda 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 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 EC2DescribeSubnets.

Declaração

JSON

{ "Fn::GetAZs" : "região" }

YAML

Sintaxe para o nome da função completo:

Fn::GetAZs: região

Sintaxe para a forma resumida:

!GetAZs região

Parâmetros

região

O nome da região para a qual você deseja obter as zonas de disponibilidade.

É possível usar o pseudoparâmetro AWS::Region para especificar a região em que a pilha é criada. Especificar uma string vazia é equivalente a especificar AWS::Region.

Valor de retorno

A lista de zonas de disponibilidade para a região.

Exemplos

Avaliar uma região

Para esses exemplos, o CloudFormation avalia Fn::GetAZs para a matriz a seguir, 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" ]

JSON

{ "Fn::GetAZs" : "" } { "Fn::GetAZs" : { "Ref" : "AWS::Region" } } { "Fn::GetAZs" : "us-east-1" }

YAML

Fn::GetAZs: "" Fn::GetAZs: Ref: "AWS::Region" Fn::GetAZs: us-east-1

 

Especificar a zona de disponibilidade de uma sub-rede

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

JSON

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

YAML

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

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

AvailabilityZone: !Select - 0 - !GetAZs Ref: 'AWS::Region'

YAML

AvailabilityZone: !Select - 0 - Fn::GetAZs: !Ref 'AWS::Region'

Funções compatíveis

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