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::IncludeTransformation
Cette rubrique explique comment utiliser la transformation AWS::Include pour insérer du contenu standard dans vos modèles CloudFormation.
AWS::Include est une macro CloudFormation qui, lorsqu’elle est appelée dans un modèle de pile, insère le contenu du fichier spécifié à l’emplacement de la transformation lors de la création ou de la mise à jour d’une pile à l’aide d’un jeu de modifications. La fonction AWS::Include se comporte de la même manière qu'une directive include, copy ou import dans des langages de programmation.
Utilisation
Vous pouvez utiliser la transformation AWS::Include partout au sein du modèle CloudFormation, sauf dans la section des paramètres du modèle ou le champ de version du modèle. Par exemple, vous pouvez utiliser AWS::Include dans la section des mappages.
Syntaxe au niveau supérieur d'un modèle
Pour déclarer cette transformation au niveau supérieur de votre modèle CloudFormation, en tant que section Transform, utilisez la syntaxe suivante :
JSON
{ "Transform":{ "Name":"AWS::Include", "Parameters":{ "Location":"s3://amzn-s3-demo-bucket/MyFileName.json" } }, "Resources":{...} }
YAML
Transform: Name: AWS::Include Parameters: Location: 's3://amzn-s3-demo-bucket/MyFileName.yaml' Resources:...
Syntaxe dans laquelle la transformation est intégrée dans une section d'un modèle
Pour déclarer cette transformation dans une section interne du modèle CloudFormation, utilisez la fonction intrinsèque Fn::Transform avec la syntaxe suivante :
JSON
{ "Fn::Transform":{ "Name":"AWS::Include", "Parameters":{ "Location":"s3://amzn-s3-demo-bucket/MyFileName.json" } } }
YAML
Fn::Transform: Name: AWS::Include Parameters: Location: s3://amzn-s3-demo-bucket/MyFileName.yaml
Pour de plus amples informations, consultez Fn::Transform.
Paramètres
Location
Emplacement d'un URI Amazon S3 avec un nom de fichier spécifique dans un compartiment S3. Par exemple, s3://.amzn-s3-demo-bucket/MyFile.yaml
Considérations
Lors de l'utilisation de la transformation AWS::Include, gardez à l'esprit les considérations suivantes : Pour des considérations supplémentaires concernant les macros, consultez Considérations relatives aux macros dans le Guide de l’utilisateur AWS CloudFormation.
-
Nous prenons en charge actuellement l'URI Amazon S3, mais aucun autre format Amazon S3 (comme un ARN Amazon S3). La transformation doit être dans un compartiment Amazon S3 et non dans un élément comme un référentiel GitHub.
-
Toute personne avec un accès à l'URL Amazon S3 peut inclure l'extrait dans son modèle.
-
Vos extraits de modèle doivent être au format JSON.
-
Vos extraits de modèle doivent être des objets clé-valeur valides, par exemple
"KeyName": "keyValue". -
Vous ne pouvez pas utiliser
AWS::Includepour référencer un extrait de modèle qui utilise égalementAWS::Include. -
Si votre extrait est modifié, votre pile ne récupère pas automatiquement ces modifications. Pour obtenir ces modifications, vous devez mettre à jour la pile avec les extraits mis à jour. Si vous mettez à jour votre pile, assurez-vous que les extraits inclus n'ont pas été modifiés sans que vous le sachiez. Vérifiez le jeu de modifications pour vous en assurer avant de mettre à jour la pile.
-
Lors de la création de modèles et d'extraits, vous pouvez combiner des langages de modèle YAML et JSON.
-
Nous ne prenons pas actuellement en charge l'utilisation des notations raccourcies pour les extraits YAML.
-
Vous pouvez fournir un URI Amazon S3 de réplication entre régions avec
AWS::Include. Veillez à vérifier les noms des compartiments Amazon S3 lorsque vous accédez à des objets de réplication entre régions. Pour plus d’informations, consultez Réplication d’objets à l’intérieur et entre régions dans le Guide de l’utilisateur Amazon S3.
Exemples
Les exemples suivants montrent comment utiliser la transformation AWS::Include pour exécuter un gestionnaire de condition d’attente. Remplacez amzn-s3-demo-bucket par le nom réel de votre compartiment.
Enregistrez d’abord un fichier YAML nommé single_wait_condition.yaml dans votre compartiment S3, avec le contenu suivant :
MyWaitCondition: Type: AWS::CloudFormation::WaitCondition Properties: Handle:!Ref MyWaitHandleTimeout:'4500'
Vous pouvez ensuite référencer ce fichier au format JSON ou YAML.
JSON
{ "Resources": { "MyWaitHandle": { "Type": "AWS::CloudFormation::WaitConditionHandle" }, "Fn::Transform": { "Name": "AWS::Include", "Parameters": { "Location": "s3://amzn-s3-demo-bucket/single_wait_condition.yaml" } } } }
YAML
Resources: MyWaitHandle: Type: AWS::CloudFormation::WaitConditionHandle Fn::Transform: Name: AWS::Include Parameters: Location: "s3://amzn-s3-demo-bucket/single_wait_condition.yaml"
Pour plus d’informations, consultez Création de conditions d’attente dans un modèle CloudFormation dans le Guide de l’utilisateur AWS CloudFormation.