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 é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.
-
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-bucket
Remplacez-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.