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::LanguageExtensions
Questo argomento descrive come utilizzare la trasformazione AWS::LanguageExtensions per abilitare funzioni e funzionalità aggiuntive che non sono disponibili per impostazione predefinita.
AWS::LanguageExtensionsÈ una CloudFormation macro che, quando viene referenziata nel modello di stack, aggiorna qualsiasi funzione intrinseca definita dalla trasformazione al suo valore risolto all'interno del modello quando si crea o si aggiorna uno stack utilizzando un set di modifiche.
Includendo questa trasformazione nel CloudFormation modello, è possibile accedere a funzionalità aggiuntive, ad esempio che consentono operazioni più avanzate come Fn::ForEach l'iterazione. Puoi anche utilizzare le funzioni intrinseche in luoghi in cui in genere non sono consentite, ad esempio nelle funzioni Ref e Fn::GetAtt.
Utilizzo
Per utilizzare la AWS::LanguageExtensions trasformazione, è necessario dichiararla al livello più alto del CloudFormation modello. Non è possibile utilizzare AWS::LanguageExtensions come trasformazione incorporata in qualsiasi altra sezione del modello.
La dichiarazione deve utilizzare la stringa letterale AWS::LanguageExtensions come valore. Non è possibile utilizzare un parametro o una funzione per specificare un valore di trasformazione.
Sintassi
Per dichiarare questa trasformazione nel CloudFormation modello, utilizzate la seguente sintassi:
JSON
{ "Transform":"AWS::LanguageExtensions", "Resources":{...} }
YAML
Transform: AWS::LanguageExtensions Resources:...
La trasformazione AWS::LanguageExtensions è una dichiarazione autonoma senza parametri aggiuntivi.
Supporto per funzioni aggiuntive
L’operazione di trasformazione AWS::LanguageExtensions supporta le seguenti funzioni aggiuntive:
Considerazioni
Quando utilizzi l’operazione transform di AWS::LanguageExtensions, tieni presente le considerazioni riportate di seguito:
-
Quando aggiorni uno stack che utilizza la
AWS::LanguageExtensionstrasformazione, ti consigliamo di non utilizzare l'opzione Usa modello esistente nella CloudFormation console o l'opzione equivalente della riga di comando.--use-previous-templateLa trasformazioneAWS::LanguageExtensionsrisolve i parametri in valori letterali durante l’elaborazione. Quando si utilizza--use-previous-template, CloudFormation utilizza questo modello elaborato con i vecchi valori letterali, impedendo l'applicazione di nuovi valori dei parametri e degli aggiornamenti dei parametri di Systems Manager. Invece, fornisce il modello originale per garantire che i parametri vengano risolti nuovamente con i valori attuali. -
La sintassi YAML in forma abbreviata non è supportata all’interno di un modello per le funzioni intrinseche che sono disponibili solo nella trasformazione
AWS::LanguageExtensions. Utilizza riferimenti espliciti a queste funzioni. Ad esempio, utilizzaFn::Lengthanziché!Length. -
La AWS SAM CLI attualmente non supporta la funzione
Fn::ForEachintrinseca della trasformazione.AWS::LanguageExtensions -
Se utilizzi più trasformazioni, utilizza un formato elenco. Se utilizzi macro personalizzate, inserisci le trasformazioni AWS fornite dopo le macro personalizzate. Se utilizzi entrambe le operazioni di trasformazione
AWS::LanguageExtensionseAWS::Serverless, l’operazione transform diAWS::LanguageExtensionsdeve essere posizionata prima della trasformazioneAWS::Serverlessnell’elenco. -
Le funzioni e gli attributi forniti dall’operazione transform di
AWS::LanguageExtensionssono supportati solo nelle sezioniResources,ConditionseOutputsdel modello.
Esempi
L’esempio seguente mostra come utilizzare l’operazione di trasformazione AWS::LanguageExtensions per utilizzare la funzione intrinseca Fn::Length definita dalla trasformazione.
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::LanguageExtensions", "Parameters": { "QueueList": { "Type": "CommaDelimitedList" }, "QueueNameParam": { "Description": "Name for your SQS queue", "Type": "String" } }, "Resources": { "Queue": { "Type": "AWS::SQS::Queue", "Properties": { "QueueName": { "Ref": "QueueNameParam" }, "DelaySeconds": { "Fn::Length": { "Ref": "QueueList" } } } } } }
YAML
AWSTemplateFormatVersion: 2010-09-09 Transform: AWS::LanguageExtensions Parameters: QueueList: Type: CommaDelimitedList QueueNameParam: Description: Name for your SQS queue Type: String Resources: Queue: Type: AWS::SQS::Queue Properties: QueueName: !Ref QueueNameParam DelaySeconds: 'Fn::Length': !Ref QueueList
Risorse correlate
Per altri esempi, consulta gli argomenti seguenti.
Per informazioni generali sull'uso delle macro, consulta Eseguire l'elaborazione personalizzata su CloudFormation modelli con macro di modello nella Guida per l'utente.AWS CloudFormation