Trasformazione AWS::LanguageExtensions - 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à.

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::LanguageExtensions trasformazione, ti consigliamo di non utilizzare l'opzione Usa modello esistente nella CloudFormation console o l'opzione equivalente della riga di comando. --use-previous-template La trasformazione AWS::LanguageExtensions risolve 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, utilizza Fn::Length anziché !Length.

  • La AWS SAM CLI attualmente non supporta la funzione Fn::ForEach intrinseca 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::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'uso delle macro, consulta Eseguire l'elaborazione personalizzata su CloudFormation modelli con macro di modello nella Guida per l'utente.AWS CloudFormation