Trasformazione AWS::Include - AWS CloudFormation

Questa è la nuova Guida di riferimento ai modelli CloudFormation . Aggiorna i segnalibri e i link. Per informazioni su come iniziare CloudFormation, consulta la Guida AWS CloudFormation per l'utente.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Trasformazione AWS::Include

Questo argomento descrive come utilizzare la AWS::Include trasformazione per inserire contenuti standard nei modelli. CloudFormation

AWS::IncludeÈ una CloudFormation macro che, quando viene referenziata nel modello di stack, inserisce il contenuto del file specificato nella posizione della trasformazione nel modello quando si crea o si aggiorna uno stack utilizzando un set di modifiche. La funzione AWS::Include ha un comportamento analogo a una direttiva include, copy o import dei linguaggi di programmazione.

Utilizzo

È possibile utilizzare la AWS::Include trasformazione ovunque all'interno del CloudFormation modello tranne nella sezione dei parametri del modello o nella versione del modello. Ad esempio, è possibile utilizzare AWS::Include nella sezione delle mappature.

Sintassi al livello superiore di un modello

Per dichiarare questa trasformazione al livello più alto del CloudFormation modello, come Transform sezione, utilizzate la seguente sintassi:

JSON

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

YAML

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

Sintassi da utilizzare quando la trasformazione è incorporata in una sezione di un modello

Per dichiarare questa trasformazione all'interno di una sezione del CloudFormation modello, utilizzate la funzione Fn::Transform intrinseca e la seguente sintassi:

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

Per ulteriori informazioni, consulta Fn::Transform.

Parameters

Location

Il percorso è un URI Amazon S3, con un determinato nome di file in un bucket S3. Ad esempio, s3://amzn-s3-demo-bucket/MyFile.yaml.

Considerazioni

Quando utilizzi AWS::Include, tieni presente le considerazioni riportate di seguito. Per ulteriori considerazioni sull’uso delle macro, consulta Macros considerations nella Guida per l’utente di AWS CloudFormation .

  • Attualmente supportiamo URI Amazon S3, ma nessun altro formato Amazon S3 (ad esempio ARN Amazon S3). Deve essere un bucket Amazon S3, anziché qualcosa come un repository. GitHub

  • Tutti gli utenti con accesso all’URL Amazon S3 possono includere il frammento nel proprio modello.

  • I tuoi frammenti di modello devono essere in formato JSON valido.

  • I tuoi frammenti di modello devono essere oggetti chiave-valore, ad esempio, "KeyName": "keyValue".

  • Non puoi utilizzare AWS::Include per fare riferimento a un frammento di codice che utilizza anche AWS::Include.

  • Se i frammenti cambiano, lo stack non include automaticamente le modifiche. Per includere le modifiche, devi aggiornare lo stack con i frammenti aggiornati. Se aggiorni lo stack, assicurati che i frammenti inclusi non siano cambiati a tua insaputa. Per verificare prima di aggiornare lo stack, controlla il set di modifiche.

  • Durante la creazione di modelli e frammenti, puoi combinare i linguaggi di modello YAML e JSON.

  • Attualmente non supportiamo l’utilizzo di notazioni abbreviate per i frammenti YAML.

  • È possibile fornire un URI Amazon S3 di replica in più Regioni con AWS::Include. Assicurati di verificare i nomi dei bucket Amazon S3 durante l’accesso agli oggetti di replica in più Regioni. Per maggiori informazioni, consulta Replicating objects within and across Regions nella Guida per l’utente di Amazon S3.

Esempi

L’esempio seguente mostra come utilizzare la trasformazione AWS::Include per eseguire un handle di condizione di attesa. Sostituisci amzn-s3-demo-bucket con il nome effettivo del bucket.

Innanzitutto, salva un file YAML denominato single_wait_condition.yaml nel tuo bucket S3 con il seguente contenuto:

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

Quindi, puoi fare riferimento a questo file utilizzando il formato JSON o YAML.

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"

Per ulteriori informazioni, consulta Creare condizioni di attesa in un CloudFormation modello nella Guida per l'AWS CloudFormation utente.