Transformation AWS::Include - 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::Include

Utilisez la transformation AWS::Include, qui est une macro hébergée par AWS CloudFormation, pour insérer un contenu réutilisable dans vos modèles. La transformation AWS::Include vous permet de créer une référence à un extrait de modèle dans un compartiment Amazon S3. Lorsque Création d'un jeu de modifications ouMise à jour des piles à l'aide de jeux de modifications, et la référence du modèleAWS::Include, AWS CloudFormation insère le contenu du fichier spécifié à l'emplacement de la transformation dans le modèle. La fonction AWS::Include se comporte de la même manière qu'une directive include, copy ou import dans des langages de programmation.

Par exemple, vous pouvez disposer d'une fonction Lambda que vous souhaitez réutiliser dans un ou plusieurs modèles AWS CloudFormation .

Utilisation

Vous pouvez utiliser la transformation AWS::Include partout au sein du modèle AWS 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 inclure la transformation AWS::Include au niveau supérieur d'un modèle, dans la section Transform, utilisez la syntaxe suivante.

JSON

{ "Transform" : { "Name" : "AWS::Include", "Parameters" : { "Location" : "s3://DOC-EXAMPLE-BUCKET/MyFileName.json" } } }

YAML

Transform: Name: 'AWS::Include' Parameters: Location: 's3://DOC-EXAMPLE-BUCKET/MyFileName.yaml'

Syntaxe dans laquelle la transformation est intégrée dans une section d'un modèle

Pour inclure une transformation qui est intégrée dans une section, utilisez la fonction intrinsèque Fn::Transform et la syntaxe suivante.

JSON

{ "Fn::Transform" : { "Name" : "AWS::Include", "Parameters" : { "Location": "s3://DOC-EXAMPLE-BUCKET/MyFileName.json" } } }

YAML

'Fn::Transform': Name: 'AWS::Include' Parameters: Location: s3://DOC-EXAMPLE-BUCKET/MyFileName.yaml

Paramètres

Emplacement

Emplacement d'un URI Amazon S3 avec un nom de fichier spécifique dans un compartiment S3. Par exemple, s3://MyBucketName/MyFile.yaml.

Remarques

Lors de l'utilisation de la transformation AWS::Include, gardez à l'esprit les considérations suivantes : Pour obtenir les considérations générales sur l'utilisation des macros, consultez Considérations lors de la création de définitions de macros AWS CloudFormation.

  • Nous prenons en charge actuellement l'URI Amazon S3, mais aucun autre format Amazon S3 (comme un ARN Amazon S3). Il doit s'agir d'un compartiment Amazon S3, et non d'un GitHub dépôt.

  • 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::Include pour référencer un extrait de modèle qui utilise également AWS::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 entre régions.

Exemple

L'exemple suivant montre comment utiliser la transformation AWS::Include pour exécuter un descripteur de condition d'attente.

Les versions JSON et YAML utilisent toutes les deux l'extrait de condition d'attente suivant. Enregistrez le fichier sous et single_wait_condition.yaml stockez-le dans un compartiment S3 portant le même nom que DOC-EXAMPLE-BUCKET.

WebServerWaitHandle: Type: 'AWS::CloudFormation::WaitConditionHandle'

JSON

{ "Resources": { "MyWaitHandle": { "Type": "AWS::CloudFormation::WaitConditionHandle" }, "Fn::Transform": { "Name": "AWS::Include", "Parameters": { "Location": "s3://DOC-EXAMPLE-BUCKET/single_wait_condition.yaml" } } } }

YAML

Resources: MyWaitHandle: Type: 'AWS::CloudFormation::WaitConditionHandle' 'Fn::Transform': Name: 'AWS::Include' Parameters: Location: "s3://DOC-EXAMPLE-BUCKET/single_wait_condition.yaml"