

Este é o novo *Guia de referência de modelos do CloudFormation*. Atualize seus favoritos e links. Para obter ajuda para começar a usar o CloudFormation, consulte o [Guia do usuário do AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# `AWS::Include`Transformação
<a name="transform-aws-include"></a>

Este tópico descreve como usar a transformação `AWS::Include` para inserir conteúdo clichê em seus modelos do CloudFormation.

`AWS::Include` é uma macro do CloudFormation que, quando referenciada no seu modelo de pilha, insere o conteúdo do arquivo especificado no local da transformação no modelo quando você cria ou atualiza uma pilha usando um conjunto de alterações. A função `AWS::Include` comporta-se de forma semelhante a uma diretiva `include`, `copy` ou `import` em linguagens de programação.

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

É possível usar a transformação `AWS::Include` em qualquer lugar do modelo do CloudFormation, exceto na seção de parâmetros do modelo ou na versão do modelo. Por exemplo, use `AWS::Include` na seção de mapeamentos.

### Sintaxe no nível superior de um modelo
<a name="aws-include-syntax-top-level"></a>

Para declarar essa transformação no nível superior do seu modelo do CloudFormation, como a seção `Transform`, use a seguinte sintaxe:

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

### Sintaxe quando a transformação está incorporada em uma seção de um modelo
<a name="aws-include-syntax-within-section"></a>

Para declarar essa transformação em uma seção do seu modelo do CloudFormation, use a função intrínseca `Fn::Transform` e a seguinte sintaxe:

#### 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 obter mais informações, consulte [`Fn::Transform`](intrinsic-function-reference-transform.md).

### Parâmetros
<a name="aws-include-parameters"></a>

`Location`

Um local é um URI do Amazon S3, com um nome de arquivo específico em um bucket do S3. Por exemplo, `s3://amzn-s3-demo-bucket/MyFile.yaml`.

## Considerações
<a name="aws-include-considerations"></a>

Ao usar `AWS::Include`, tenha as seguintes considerações em mente. Para obter mais considerações sobre o uso de macros, consulte [Considerações sobre macros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros-overview.html#template-macros-considerations) no *Guia do usuário do AWS CloudFormation*.
+ No momento, oferecemos suporte ao URI do Amazon S3, mas não há outro formato do Amazon S3 (como o Nome de região da Amazon (ARN) do Amazon S3). Ele deve ser um bucket do Amazon S3, em vez de algo como um repositório GitHub.
+ Qualquer pessoa com acesso ao URI do Amazon S3 pode incluir o trecho em seu modelo.
+ Os trechos do modelo devem ser em JSON válido.
+ Os trechos do seu modelo devem ser objetos de chave–valor válidos, por exemplo, `"KeyName": "keyValue"`.
+ Você não pode usar `AWS::Include` para fazer referência a um trecho de modelo que também usa `AWS::Include`.
+ Se os trechos forem alterados, a pilha não selecionará automaticamente essas alterações. Para obter as alterações, atualize a pilha com os trechos atualizados. Se você atualizar a pilha, verifique se os trechos incluídos não foram alterados sem o seu conhecimento. Para confirmar antes de atualizar a pilha, verifique o conjunto de alterações.
+ Ao criar modelos e trechos, você pode combinar linguagens de modelos YAML e JSON.
+ No momento, não oferecemos suporte ao uso de notações abreviadas para trechos YAML.
+ Você pode fornecer um URI do Amazon S3 de replicação entre regiões com o `AWS::Include`. Verifique os nomes do bucket do Amazon S3 ao acessar objetos de replicação entre regiões. Para obter mais informações, consulte [Replicar objetos dentro de uma região e entre regiões](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html) no * Guia do usuário do Amazon S3*.

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

Os exemplos a seguir mostram como usar a transformação `AWS::Include` para executar um identificador de condição de espera. Substitua *amzn-s3-demo-bucket* pelo nome do bucket real. 

Primeiro, salve um arquivo YAML chamado `single_wait_condition.yaml` no seu bucket do S3 com o seguinte conteúdo:

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

Em seguida, é possível fazer referência a esse arquivo usando o formato JSON ou 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 obter mais informações, consulte [Criar condições de espera em um modelo do CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-waitcondition.html) no *Guia do usuário do AWS CloudFormation*.