

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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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

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

Sintaxis del nombre de función completo:

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

Sintaxis de la forma abreviada:

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

## Parameters
<a name="intrinsic-function-reference-getazs-parameters"></a>

region  <a name="region"></a>
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
<a name="intrinsic-function-reference-getazs-return-value"></a>

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

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

### Evaluar una región
<a name="intrinsic-function-reference-getazs-examples-evaluate-region"></a>

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

 

### Especificación de la zona de disponibilidad de una subred
<a name="intrinsic-function-reference-getazs-examples-subnet-az"></a>

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

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

 

### Funciones anidadas con la forma abreviada YAML
<a name="intrinsic-function-reference-getazs-examples-nested-functions"></a>

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

## Funciones compatibles
<a name="intrinsic-function-reference-getazs-supported-functions"></a>

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