Fn::GetAZs - AWS CloudFormation

Fn::GetAZs

La función intrínseca Fn::GetAZs devuelve una matriz que enumera las zonas de disponibilidad de una región determinada en orden alfabético. Dado que los clientes tienen acceso a diferentes zonas de disponibilidad, la función intrínseca Fn::GetAZs permite a los autores de plantillas escribir plantillas que se adaptan al acceso del usuario que llama. De esta forma, no es necesario codificar rígidamente una lista completa de las zonas de disponibilidad de una región determinada.

importante

La función Fn::GetAZs devuelve solo las zonas de disponibilidad que tienen una subred predeterminada, a menos que ninguna de las zonas de disponibilidad tenga una subred predeterminada; en ese caso, se devuelven todas las zonas de disponibilidad.

De forma similar a la respuesta del comando describe-availability-zones de AWS CLI, el orden de los resultados de la función Fn::GetAZs no está garantizado y puede cambiar cuando se añaden nuevas zonas de disponibilidad.

Permisos de IAM

Los permisos que necesita para utilizar la función Fn::GetAZs dependen de la plataforma en la que lance las instancias Amazon EC2. Para ambas plataformas, necesita permisos para las acciones DescribeAvailabilityZones y DescribeAccountAttributes de Amazon EC2. Para EC2-VPC, también necesita permisos para la acción DescribeSubnets de Amazon EC2.

Declaración

JSON

{ "Fn::GetAZs" : "región" }

YAML

Sintaxis del nombre de función completo:

Fn::GetAZs: región

Sintaxis de la forma abreviada:

!GetAZs región

Parámetros

región

Es el nombre de la región para la que desea obtener las zonas de disponibilidad.

Puede utilizar el pseudoparámetro AWS::Region para especificar la región en la que se crea la pila. Especificar una cadena vacía equivale a especificar AWS::Region.

Valor devuelto

La lista de las zonas de disponibilidad de la región.

Ejemplos

Evaluar una región

Para estos ejemplos, CloudFormation evalúa Fn::GetAZs según la siguiente matriz, suponiendo que el usuario creó la pila en la región 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

 

Especificación de la zona de disponibilidad de una subred

En el siguiente ejemplo utiliza Fn::GetAZs para especificar la zona de disponibilidad de una subred:

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

 

Funciones anidadas con la forma abreviada YAML

Los siguientes ejemplos muestran patrones válidos para el uso de funciones intrínsecas anidadas con la forma abreviada YAML. No puede anidar funciones de forma corta consecutivamente, por lo que un patrón como !GetAZs !Ref no es válido.

YAML

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

YAML

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

Funciones compatibles

Puede utilizar la función Ref en la función Fn::GetAZs.