Transformation AWS::LanguageExtensions - AWS CloudFormation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Transformation AWS::LanguageExtensions

La AWS::LanguageExtensions transformation est une macro hébergée par AWS CloudFormation qui vous permet d'utiliser des fonctions intrinsèques et d'autres fonctionnalités non incluses par défaut dans AWS CloudFormation. Lorsqu'un modèle fait référenceAWS::LanguageExtensions, et que vous créez ou mettez à jour des piles à l'aide d'ensembles de modifications, AWS CloudFormation met à jour toute fonction intrinsèque définie par la transformation à sa valeur résolue dans le modèle. Lorsque vous ajoutez la AWS::LanguageExtensions transformation dans un AWS CloudFormation modèle, vous pouvez utiliser des fonctions intrinsèques en tant que paramètre de Ref etFn::GetAtt.

La transformation AWS::LanguageExtensions prend en charge les fonctions et attributs suivants :

Utilisation

La valeur de la déclaration de transformation doit être une chaîne littérale. Vous ne pouvez pas utiliser de paramètre ou de fonction pour spécifier la valeur de transformation. Voir cet extrait pour un exemple de déclaration de transformation :

Syntaxe au niveau supérieur d'un modèle

Utilisez la transformation AWS::LanguageExtensions au niveau supérieur d'un modèle. Vous ne pouvez pas utiliser la transformation AWS::LanguageExtensions comme une transformation intégrée dans une autre section de modèle.

JSON

"Transform": "AWS::LanguageExtensions"

YAML

Transform: AWS::LanguageExtensions

Paramètres

La transformation AWS::LanguageExtensions n'accepte pas de paramètres.

Remarques

Lors de l'utilisation de la transformation AWS::LanguageExtensions, gardez à l'esprit les considérations suivantes :

  • Si vous mettez à jour une pile en utilisant une valeur de paramètre différente, n'utilisez pas l'option --use-previous-template où le modèle original contient la transformation. Utilisez le modèle original, avant transformation, dans l'appel UpdateStack. La pile sera mise à jour avec les nouvelles valeurs des paramètres.

  • La forme courte YAML abrégée n'est pas prise en charge dans un modèle pour les fonctions intrinsèques fournies par la transformation AWS::LanguageExtensions. Des exemples de fonctions intrinsèques uniquement disponibles dans la transformation AWS::LanguageExtensions sont Fn::Length et Fn::ToJsonString. Utilisez des références explicites aux fonctions. Par exemple, utilisez Fn::Length plutôt que !Length.

  • Si vous utilisez plusieurs transformations, utilisez un format de liste. Si vous utilisez des macros personnalisées, placez les transformations AWS fournies après vos macros personnalisées. Si vous utilisez à la fois les transformations AWS::LanguageExtensions et AWS::Serverless, la transformation AWS::LanguageExtensions doit venir avant la transformation AWS::Serverless dans la liste.

  • Les fonctions et attributs fournis par la transformation AWS::LanguageExtensions ne sont pris en charge que dans les sections Resources, Conditions et Outputs d'un modèle.

Pour plus d'informations sur l'utilisation des macros, voir Création d'une définition de CloudFormation macro.

Exemple

L'exemple suivant montre comment utiliser la transformation AWS::LanguageExtensions pour utiliser la fonction intrinsèque Fn::Length, définie par la transformation.

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