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::LanguageExtensionsTrasformazione
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 macro CloudFormation che, quando vi si fa riferimento nel modello di stack, aggiorna ogni funzione intrinseca definita dalla trasformazione al relativo valore restituiti all’interno del modello quando crei o aggiorni uno stack utilizzando un set di modifiche.
Includendo questa trasformazione nel tuo modello CloudFormation, puoi accedere a funzionalità aggiuntive, come Fn::ForEach, che consentono operazioni più avanzate, come 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 trasformazione AWS::LanguageExtensions, devi dichiararla al livello più alto del tuo modello CloudFormation. 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 modello CloudFormation, utilizza la sintassi seguente:
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 trasformazione
AWS::LanguageExtensions, ti consigliamo di non utilizzare l’opzione Usa modello esistente nella console CloudFormation o l’opzione equivalente--use-previous-templatedella riga di comando. La trasformazioneAWS::LanguageExtensionsrisolve i parametri in valori letterali durante l’elaborazione. Quando utilizzi--use-previous-template, CloudFormation usa 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. -
AWS SAM CLI attualmente non supporta la funzione intrinseca
Fn::ForEachdella trasformazioneAWS::LanguageExtensions. -
Se utilizzi più trasformazioni, utilizza un formato elenco. Se utilizzi macro personalizzate, posiziona le trasformazioni fornite da AWS 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’utilizzo delle macro, consulta Perform custom processing on CloudFormation templates with template macros nella Guida per l’utente di AWS CloudFormation.