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à.
AWS::IncludeTrasformazione
Questo argomento descrive come utilizzare la trasformazione AWS::Include per inserire contenuto boilerplate nei modelli CloudFormation.
AWS::Include è una macro CloudFormation che, quando vi si fa riferimento 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 trasformazione AWS::Include ovunque all’interno del modello CloudFormation, 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 superiore del modello CloudFormation, come sezione Transform, utilizza la sintassi riportata qui di seguito:
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 tuo modello CloudFormation, utilizza la funzione intrinseca Fn::Transform e la sintassi riportata qui di seguito:
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.
Parametri
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 invece di un container del tipo 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::Includeper fare riferimento a un frammento di codice che utilizza ancheAWS::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 MyWaitHandleTimeout:'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 Create wait conditions in a CloudFormation template nella Guida per l’utente di AWS CloudFormation.