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 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 ao criar definições de macro do 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 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 Replicação entre regiões.
Exemplo
O exemplo a seguir mostra como usar a transformação AWS::Include
para executar um identificador da condição de espera.
As versões JSON e YAML usam os seguintes trechos de condição de espera. Salve o arquivo como single_wait_condition.yaml
e armazene-o em um bucket do S3. Substitua amzn-s3-demo-bucket
pelo nome do bucket real.
WebServerWaitHandle: Type: 'AWS::CloudFormation::WaitConditionHandle'
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"