Trasformazione AWS::LanguageExtensions - AWS CloudFormation

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

L'operazione transform di AWS::LanguageExtensions è una macro ospitata da AWS CloudFormation che consente di utilizzare funzioni intrinseche e altre funzionalità non incluse in modo predefinito in AWS CloudFormation. Quando un modello fa riferimento a AWS::LanguageExtensions e stai creando o aggiornando stack utilizzando i set di modifiche, AWS CloudFormation aggiorna qualsiasi funzione intrinseca definita dalla trasformazione al relativo valore restituito all'interno del modello. Quando aggiungi la trasformazione AWS::LanguageExtensions in un modello AWS CloudFormation, puoi utilizzare funzioni intrinseche come parametri per Ref e Fn::GetAtt.

L'operazione transform di AWS::LanguageExtensions supporta le seguenti funzioni e attributi:

Utilizzo

Il valore della dichiarazione della trasformazione deve essere una stringa letterale. Non è possibile utilizzare un parametro o una funzione per specificare un valore di trasformazione. Il frammento seguente è un esempio di una dichiarazione della trasformazione:

Sintassi al livello superiore di un modello

Utilizza l'operazione transform di AWS::LanguageExtensions al livello superiore del modello. Non è possibile utilizzare l'operazione transform di AWS::LanguageExtensions come trasformazione incorporata in qualsiasi altra sezione del modello.

JSON

"Transform": "AWS::LanguageExtensions"

YAML

Transform: AWS::LanguageExtensions

Parametri

L'operazione transform di AWS::LanguageExtensions non accetta alcun parametro.

Remarks

Quando utilizzi l'operazione transform di AWS::LanguageExtensions, tieni presente le considerazioni riportate di seguito:

  • Se aggiorni uno stack utilizzando un valore di parametro diverso, non utilizzare l'opzione --use-previous-template se il modello originale contiene la trasformazione. Utilizza il modello originale, prima della trasformazione, nella chiamata UpdateStack. Lo stack verrà aggiornato con i nuovi valori dei parametri.

  • 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. Esempi di funzioni intrinseche disponibili solo nella trasformazione AWS::LanguageExtensions sono Fn::Length e Fn::ToJsonString. Utilizza riferimenti espliciti a queste funzioni. Ad esempio, utilizza Fn::Length anziché !Length.

  • 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 di un modello.

Per ulteriori informazioni sull'utilizzo delle macro, consulta la sezione Creazione di una definizione di AWS CloudFormation macro.

Esempio

Nell'esempio seguente viene mostrato come utilizzare l'operazione transform di 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