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 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 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"