AWS::LanguageExtensionsTrasformazione - AWS CloudFormation

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-template della riga di comando. La trasformazione AWS::LanguageExtensions risolve 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, utilizza Fn::Length anziché !Length.

  • AWS SAM CLI attualmente non supporta la funzione intrinseca Fn::ForEach della trasformazione AWS::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::LanguageExtensions e AWS::Serverless, l’operazione transform di AWS::LanguageExtensions deve essere posizionata prima della trasformazione AWS::Serverless nell’elenco.

  • Le funzioni e gli attributi forniti dall’operazione transform di AWS::LanguageExtensions sono supportati solo nelle sezioni Resources, Conditions e Outputs del 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

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.