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 usaAWS::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.