AWS::LanguageExtensionsTransformation - AWS CloudFormation

Il s’agit du nouveau Guide de référence des modèles CloudFormation . Veuillez mettre à jour vos favoris et vos liens. Pour obtenir de l'aide pour démarrer CloudFormation, consultez le guide de AWS CloudFormation l'utilisateur.

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.

AWS::LanguageExtensionsTransformation

Cette rubrique décrit comment utiliser la transformation AWS::LanguageExtensions pour activer des fonctions et capacités supplémentaires non disponibles par défaut.

AWS::LanguageExtensions est une macro CloudFormation qui, lorsqu’elle est appelée dans un modèle de pile, remplace toute fonction intrinsèque définie par la transformation par sa valeur résolue dans le modèle lors de la création ou de la mise à jour d’une pile via un jeu de modifications.

En ajoutant cette transformation à votre modèle CloudFormation, vous pouvez accéder à des caractéristiques supplémentaires, comme Fn::ForEach, qui permet des opérations avancées, notamment l’itération. Vous pouvez également utiliser des fonctions intrinsèques dans des emplacements où elles ne sont normalement pas autorisées, tels que dans les fonctions Ref et Fn::GetAtt.

Utilisation

Pour utiliser la transformation AWS::LanguageExtensions, vous devez la déclarer au niveau supérieur de votre modèle CloudFormation. Vous ne pouvez pas utiliser AWS::LanguageExtensions comme transformation incorporée dans une autre section de modèle.

La déclaration doit utiliser la chaîne littérale AWS::LanguageExtensions comme valeur. Vous ne pouvez pas utiliser de paramètre ou de fonction pour spécifier la valeur de transformation.

Syntaxe

Pour déclarer cette transformation dans votre modèle CloudFormation, utilisez la syntaxe suivante :

JSON

{ "Transform":"AWS::LanguageExtensions", "Resources":{ ... } }

YAML

Transform: AWS::LanguageExtensions Resources: ...

La transformation AWS::LanguageExtensions est une déclaration autonome sans paramètres supplémentaires.

Prise en charge de fonctions supplémentaires

La transformation AWS::LanguageExtensions prend en charge les fonctions supplémentaires suivantes :

Considérations

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

  • Lorsque vous mettez à jour une pile utilisant la transformation AWS::LanguageExtensions, nous recommandons de ne pas utiliser l’option Utiliser le modèle existant dans la console CloudFormation, ni l’option équivalente--use-previous-template en ligne de commande. La transformation AWS::LanguageExtensions résout les paramètres en valeurs littérales pendant le traitement. Si vous utilisez l’option --use-previous-template, CloudFormation réutilisera un modèle déjà transformé contenant d’anciennes valeurs littérales, empêchant l’application de nouvelles valeurs de paramètres ou de mises à jour provenant de Systems Manager. Pour garantir une résolution correcte et à jour des paramètres, fournissez toujours le modèle original non transformé.

  • 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. Utilisez des références explicites aux fonctions. Par exemple, utilisez Fn::Length plutôt que !Length.

  • La CLI AWS SAM ne prend actuellement pas en charge la fonction intrinsèque Fn::ForEach de la transformation AWS::LanguageExtensions.

  • Si vous utilisez plusieurs transformations, utilisez un format de liste. Si vous utilisez des macros personnalisées, placez les transformations fournies par AWS 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 de votre modèle.

Exemples

Les exemples suivants montrent 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

Pour d’autres exemples, consultez les rubriques suivantes.

Pour plus d’informations, consultez Traitement personnalisé des modèles CloudFormation à l’aide de macros de modèle dans le Guide de l’utilisateur AWS CloudFormation.