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 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 usar la función Ref en la función Fn::GetAZs
.