Trasformazione AWS::Include - AWS CloudFormation

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

Utilizza la trasformazione AWS::Include, ovvero una macro ospitata da AWS CloudFormation, per inserire contenuto boilerplate nei modelli. La trasformazione AWS::Include consente di creare un riferimento a un frammento di modello in un bucket Amazon S3. When Creazione di un set di modifiche orAggiornamento di stack utilizzando i set di modifiche, e the templates referenceAWS::Include, AWS CloudFormation inserisce il contenuto del file specificato nella posizione della trasformazione nel modello. La funzione AWS::Include ha un comportamento analogo a una direttiva include, copy o import dei linguaggi di programmazione.

Ad esempio, potresti disporre di una funzione Lambda che desideri riutilizzare in uno o più modelli AWS CloudFormation .

Utilizzo

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

Sintassi al livello superiore di un modello

Per includere la trasformazione AWS::Include al livello superiore di un modello, nella sezione Transform, utilizza la sintassi riportata di seguito.

JSON

{ "Transform" : { "Name" : "AWS::Include", "Parameters" : { "Location" : "s3://DOC-EXAMPLE-BUCKET/MyFileName.json" } } }

YAML

Transform: Name: 'AWS::Include' Parameters: Location: 's3://DOC-EXAMPLE-BUCKET/MyFileName.yaml'

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

Per includere una trasformazione incorporata in una sezione, utilizzare la funzione intrinseca Fn::Transform e la sintassi seguente.

JSON

{ "Fn::Transform" : { "Name" : "AWS::Include", "Parameters" : { "Location": "s3://DOC-EXAMPLE-BUCKET/MyFileName.json" } } }

YAML

'Fn::Transform': Name: 'AWS::Include' Parameters: Location: s3://DOC-EXAMPLE-BUCKET/MyFileName.yaml

Parametri

Location (Ubicazione)

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

Remarks

Quando utilizzi AWS::Include, tieni presente le considerazioni riportate di seguito. Per considerazioni generali sull'uso di macro, consulta Considerazioni sulla creazione di definizioni di macro 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 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 ulteriori informazioni, consulta Replica in più Regioni.

Esempio

L'esempio seguente mostra come utilizzare la trasformazione AWS::Include per eseguire un handle di condizione di attesa.

Entrambe le versioni JSON e YAML utilizzano il seguente frammento di condizione di attesa. Salva il file con nome e archivialo in un bucket S3 con lo stesso single_wait_condition.yaml nome di DOC-EXAMPLE-BUCKET.

WebServerWaitHandle: Type: 'AWS::CloudFormation::WaitConditionHandle'

JSON

{ "Resources": { "MyWaitHandle": { "Type": "AWS::CloudFormation::WaitConditionHandle" }, "Fn::Transform": { "Name": "AWS::Include", "Parameters": { "Location": "s3://DOC-EXAMPLE-BUCKET/single_wait_condition.yaml" } } } }

YAML

Resources: MyWaitHandle: Type: 'AWS::CloudFormation::WaitConditionHandle' 'Fn::Transform': Name: 'AWS::Include' Parameters: Location: "s3://DOC-EXAMPLE-BUCKET/single_wait_condition.yaml"