

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

# `AWS::Include`Transformación de
<a name="transform-aws-include"></a>

En este tema se describe cómo usar la transformación `AWS::Include` para insertar contenido reutilizable en las plantillas de CloudFormation.

`AWS::Include` es una macro de CloudFormation que, al hacer referencia a ella en la plantilla de la pila, inserta el contenido del archivo especificado en la ubicación de la transformación en la plantilla al crear o actualizar una pila mediante un conjunto de cambios. La función `AWS::Include` se comporta de forma similar a una directiva `include`, `copy` o `import` en los lenguajes de programación.

## Uso
<a name="aws-include-usage"></a>

Puede utilizar la transformación `AWS::Include` en cualquier lugar de la plantilla de CloudFormation, salvo en la sección de los parámetros de las plantillas o en la versión de la plantilla. Por ejemplo, puede utilizar `AWS::Include` en la sección de mapeos.

### Sintaxis de nivel superior de una plantilla
<a name="aws-include-syntax-top-level"></a>

Para declarar esta transformación en la parte superior de su plantilla de CloudFormation, como sección `Transform`, utilice la siguiente sintaxis:

#### JSON
<a name="aws-include-syntax-top-level.json"></a>

```
{
  "Transform":{
    "Name":"AWS::Include",
    "Parameters":{
      "Location":"s3://amzn-s3-demo-bucket/MyFileName.json"
    }
  },
  "Resources":{
    ...
  }
}
```

#### YAML
<a name="aws-include-syntax-top-level.yaml"></a>

```
Transform:
  Name: AWS::Include
  Parameters:
    Location: 's3://amzn-s3-demo-bucket/MyFileName.yaml'
Resources:
  ...
```

### Sintaxis cuando la transformación está integrada en una sección de una plantilla
<a name="aws-include-syntax-within-section"></a>

Para declarar esta transformación dentro de una sección de su plantilla de CloudFormation, utilice la función intrínseca `Fn::Transform` y la siguiente sintaxis:

#### JSON
<a name="aws-include-syntax-within-section.json"></a>

```
{
  "Fn::Transform":{
    "Name":"AWS::Include",
    "Parameters":{
      "Location":"s3://amzn-s3-demo-bucket/MyFileName.json"
    }
  }
}
```

#### YAML
<a name="aws-include-syntax-within-section.yaml"></a>

```
Fn::Transform:
  Name: AWS::Include
  Parameters:
    Location: s3://amzn-s3-demo-bucket/MyFileName.yaml
```

Para obtener más información, consulte [`Fn::Transform`](intrinsic-function-reference-transform.md).

### Parameters
<a name="aws-include-parameters"></a>

`Location`

La ubicación es una URI de Amazon S3 con un nombre de archivo específico en un bucket de S3. Por ejemplo, `s3://amzn-s3-demo-bucket/MyFile.yaml`.

## Consideraciones
<a name="aws-include-considerations"></a>

Cuando utilice `AWS::Include`, tenga en cuenta las siguientes consideraciones. Para obtener más información sobre el uso de macros, consulte [Consideraciones sobre las macros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros-overview.html#template-macros-considerations) en la *Guía del usuario de AWS CloudFormation*.
+ En la actualidad, se admiten URI de Amazon S3, pero en ningún otro formato de Amazon S3 (como ARN de Amazon S3). Debe ser un bucket de Amazon S3, en lugar de algo parecido a un repositorio de GitHub.
+ Cualquier persona que tenga acceso a la dirección URL de Amazon S3 puede incluir el fragmento en su plantilla.
+ Sus fragmentos de plantilla tienen que ser un JSON válido.
+ Sus fragmentos de plantilla tienen que ser objetos de clave-valor válidos; por ejemplo, `"KeyName": "keyValue"`.
+ No puede utilizar `AWS::Include` para hacer referencia a un fragmento de código de la plantilla que también utiliza `AWS::Include`.
+ Si los fragmentos cambian, la pila no aplica automáticamente esos cambios. Para obtener esos cambios, debe actualizar la pila con los fragmentos actualizados. Si actualiza la pila, asegúrese de que los fragmentos que ha incluido no han cambiado sin que usted lo sepa. Para verificarlo antes de actualizar la pila, compruebe el conjunto de cambios.
+ Al crear plantillas y fragmentos, puede combinar los lenguajes de plantillas YAML y JSON.
+ Actualmente no admitimos el uso de notaciones abreviadas para los fragmentos de YAML.
+ Puede proporcionar una URI de Amazon S3 de replicación entre regiones con `AWS::Include`. Asegúrese de comprobar los nombres de los buckets de Amazon S3 al obtener acceso a los objetos de la replicación entre regiones. Para obtener más información, consulte [Replicación de objetos dentro de regiones y entre regiones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html) en la *Guía del usuario de Amazon S3*.

## Ejemplos
<a name="aws-include-examples"></a>

En los siguientes ejemplos, se muestra cómo utilizar la transformación `AWS::Include` para ejecutar un identificador de condición de espera. Reemplace *amzn-s3-demo-bucket* por el nombre real de su bucket. 

En primer lugar, guarde un archivo YAML denominado `single_wait_condition.yaml` en su bucket de S3 con el siguiente contenido:

```
MyWaitCondition:
  Type: AWS::CloudFormation::WaitCondition
  Properties:
    Handle: !Ref MyWaitHandle
    Timeout: '4500'
```

A continuación, puede hacer referencia a este archivo en formato JSON o YAML.

### JSON
<a name="aws-include-example.json"></a>

```
{
   "Resources": {
      "MyWaitHandle": {
         "Type": "AWS::CloudFormation::WaitConditionHandle"
      },
      "Fn::Transform": {
         "Name": "AWS::Include",
         "Parameters": {
            "Location": "s3://amzn-s3-demo-bucket/single_wait_condition.yaml"
         }
      }
   }
}
```

### YAML
<a name="aws-include-example.yaml"></a>

```
Resources:
  MyWaitHandle:
    Type: AWS::CloudFormation::WaitConditionHandle
  Fn::Transform:
    Name: AWS::Include
    Parameters:
      Location: "s3://amzn-s3-demo-bucket/single_wait_condition.yaml"
```

Para obtener más información, consulte [Creación de condiciones de espera en una plantilla de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-waitcondition.html) en la *Guía del usuario de AWS CloudFormation*.