Esta es la nueva Guía de referencia de plantillas de CloudFormation. Actualice sus marcadores y enlaces. Para obtener ayuda sobre cómo empezar a usar CloudFormation, consulte la Guía del usuario de 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" : "region" }
YAML
Sintaxis del nombre de función completo:
Fn::GetAZs:region
Sintaxis de la forma abreviada:
!GetAZsregion
Parámetros
- region
-
Es el nombre de la región para la que desea obtener las zonas de disponibilidad.
Puede utilizar el pseudoparámetro
AWS::Regionpara especificar la región en la que se crea la pila. Especificar una cadena vacía equivale a especificarAWS::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", "us-east-1e" ]
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.