Transformação AWS::Include - AWS CloudFormation

Transformação AWS::Include

Use a transformação AWS::Include, que é uma macro hospedada pelo AWS CloudFormation, para inserir conteúdo padronizado em seus modelos. A transformação AWS::Include permite criar uma referência para um trecho de transformação em um bucket do Amazon S3. Quando Criar um conjunto de alterações para uma pilha do CloudFormation ou Atualizar pilhas do CloudFormation usando conjuntos de alterações e os modelos fazem referência a AWS::Include, o CloudFormation insere o conteúdo do arquivo especificado no local da transformação no modelo. A função AWS::Include comporta-se de forma semelhante a uma diretiva include, copy ou import em linguagens de programação.

Por exemplo, você pode ter uma função do Lambda que pretende reutilizar em um ou mais modelos do CloudFormation.

Uso

Você pode usar a transformação AWS::Include em qualquer lugar do modelo do CloudFormation, exceto na seção de parâmetros do modelo ou no campo de versão do modelo. Por exemplo, use AWS::Include na seção de mapeamentos.

Sintaxe no nível superior de um modelo

Para incluir a transformação AWS::Include no nível superior de um modelo, na seção Transform, use a sintaxe a seguir.

JSON

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

YAML

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

Sintaxe quando a transformação está incorporada em uma seção de um modelo

Para incluir uma transformação que está incorporada em uma seção, use a função intrínseca Fn::Transform e a sintaxe a seguir.

JSON

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

YAML

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

Parâmetros

Local

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.

Observações

Ao usar AWS::Include, tenha as seguintes considerações em mente. Para considerações gerais sobre o uso de macros, consulte Considerações

  • 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 no Guia do usuário do Amazon S3.

Exemplo

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. No bucket do S3, salve um arquivo YAML denominado single_wait_condition.yaml com o seguinte conteúdo:

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

JSON

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

YAML

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

Para ter mais informações, consulte Criar condições de espera em um modelo do CloudFormation.