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 AWS::Include transformation, une macro hébergée par AWS CloudFormation, pour insérer du contenu standard 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 ensemble de modifications pour une CloudFormation pile ouMettre à jour CloudFormation les piles à l'aide d'ensembles de modifications, et la référence du modèleAWS::Include, 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 CloudFormation .

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 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://amzn-s3-demo-bucket/MyFileName.json" } } }

YAML

Transform: Name: 'AWS::Include' Parameters: Location: 's3://amzn-s3-demo-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://amzn-s3-demo-bucket/MyFileName.json" } } }

YAML

'Fn::Transform': Name: 'AWS::Include' Parameters: Location: s3://amzn-s3-demo-bucket/MyFileName.yaml

Paramètres

Emplacement

L'emplacement est un Amazon S3URI, avec un nom de fichier spécifique dans un compartiment S3. Par exemple, s3://amzn-s3-demo-bucket/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.

  • Nous prenons actuellement en charge Amazon S3URI, mais aucun autre format Amazon S3 (tel qu'Amazon S3ARN). Il doit s'agir d'un compartiment Amazon S3, et non d'un GitHub dépôt.

  • Toute personne ayant accès à Amazon S3 URL peut inclure l'extrait dans son modèle.

  • Les extraits de votre modèle doivent être valides. 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.

  • Lorsque vous créez des modèles et des extraits de code, vous pouvez mélanger YAML et JSON modéliser les langues.

  • À l'heure actuelle, nous ne prenons pas en charge l'utilisation de notations abrégées pour les extraits de code. YAML

  • Vous pouvez fournir une réplication entre régions URI avec AWS::Include Amazon S3. 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 la section Réplication d'objets au sein des régions et entre elles dans le guide de l'utilisateur Amazon S3.

Exemple

Les exemples suivants montrent comment utiliser la AWS::Include transformation pour exécuter un gestionnaire de conditions d'attente. amzn-s3-demo-bucketRemplacez-le par le nom de votre bucket actuel. Dans votre compartiment S3, enregistrez un YAML fichier nommé single_wait_condition.yaml avec le contenu suivant :

MyWaitCondition: Type: AWS::CloudFormation::WaitCondition Properties: Handle: !Ref MyWaitHandle Timeout: '4500'

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 de plus amples informations, veuillez consulter Création de conditions d'attente dans un CloudFormation modèle.