CloudFormationRéférence sur les propriétés de configuration - 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.

CloudFormationRéférence sur les propriétés de configuration

Lorsque vous créez un pipeline CodePipeline, vous ajoutez une action Deploy au pipeline avec CloudFormation comme fournisseur. Ensuite, vous devez spécifier l'action CloudFormation que le pipeline appelle et les paramètres de l'action. Cette rubrique décrit les propriétés de configuration CloudFormation. Pour spécifier des propriétés, vous pouvez utiliser la console CodePipeline ou créer un objet JSON à utiliser pour la AWS CLI, l’API CodePipeline ou les modèles CloudFormation.

Propriétés de configuration (Console)

La console CodePipeline affiche les propriétés de configuration et indique les propriétés qui sont requises en fonction du mode d'action que vous choisissez.

Note

Lorsque vous créez un nouveau pipeline, vous pouvez spécifier uniquement les modes d'action Créer ou mettre à jour une pile ou Créer ou remplacer un jeu de modifications. Les propriétés de la section Avancé sont disponibles uniquement lorsque vous modifiez un pipeline.

Mode d'action

Action CloudFormation que CodePipeline appelle lors du traitement de l'étape associée. Choisissez l'un des modes d'action suivants :

  • Créer ou remplacer un jeu de modifications permet de créer le jeu de modifications s'il n'existe pas, en fonction du nom de la pile et du modèle que vous soumettez. Si le jeu de modifications existe, CloudFormation le supprime, puis en crée un nouveau.

  • Créer ou mettre à jour une pile crée la pile si la pile spécifiée n'existe pas. Si la pile existe, CloudFormation la met à jour. Utilisez cette action pour mettre à jour les piles existantes. CodePipeline ne remplace pas la pile.

  • Supprimer une pile supprime une pile. Si vous spécifiez une pile qui n'existe pas, l'action se termine avec succès sans supprimer de pile.

  • Exécuter un jeu de modifications exécute un jeu de modifications.

  • Remplacer une pile ayant échoué crée la pile si la pile spécifiée n'existe pas. Si la pile existe et qu'elle est en état d'échec (présentée comme ROLLBACK_COMPLETE, ROLLBACK_FAILED, CREATE_FAILED ou DELETE_FAILED ou UPDATE_ROLLBACK_FAILED) CloudFormation supprime la pile et en crée une nouvelle. Si la pile n'est pas en état d'échec, CloudFormation la met à jour. Utilisez cette action pour remplacer les piles ayant échoué sans les récupérer ou les dépanner. Généralement, ce mode est choisi pour le test.

Nom de la pile

Nom associé à une pile existante ou à une pile que vous souhaitez créer. Le nom doit être unique dans la région AWS dans laquelle vous créez la pile.

Note

Un nom de pile ne peut contenir que des caractères alphanumériques (sensibles à la casse) et des traits d'union. Il doit commencer par un caractère alphabétique et ne doit pas dépasser 128 caractères.

Modifier le nom du jeu

Nom d'un jeu existant de modifications ou d'un nouveau jeu que vous souhaitez créer pour la pile spécifiée.

Modèle

Emplacement d'un fichier de modèle CloudFormation conforme au format ArtifactName::TemplateFileName.

Configuration de modèle

Emplacement d'un fichier de configuration de modèle conforme au format ArtifactName::TemplateConfigurationFileName. Le fichier de configuration de modèle peut contenir des valeurs de paramètres du modèle, une politique de pile et des balises. Si vous incluez des informations sensibles, telles que des mots de passe, limitez l'accès à ce fichier. Pour de plus amples informations, consultez CloudFormation artefacts.

Fonctionnalités

Pour les piles qui contiennent certaines ressources, reconnaissez de manière explicite que CloudFormation peut créer ou mettre à jour ces ressources. Par exemple, vous devez spécifier CAPABILITY_IAM si votre modèle de pile contient des ressources AWS Identity and Access Management (IAM). Pour plus d’informations, consultez les paramètres de requête de l’opération d’API CreateStack.

Si vous disposez de ressources IAM dans votre modèle de pile, vous devez spécifier cette propriété.

Vous pouvez spécifier plusieurs capacités.

Nom du rôle

Nom de la fonction du service IAM qu'CloudFormation assume lorsqu'il fonctionne sur des ressources dans la pile spécifiée.

Nom du fichier de sortie

Dans la section Avancé, vous pouvez spécifier un nom de fichier de sortie, comme CreateStackOutput.json, qu'CodePipeline ajoute à l'artefact de sortie après l'exécution de l'action spécifiée. L'artefact de sortie contient un fichier JSON avec le contenu de la section Outputs du modèle CloudFormation.

Si vous ne spécifiez pas de nom, CodePipeline ne génère pas d'artefact de sortie.

Remplacements de paramètres

Les paramètres sont définis dans votre modèle et vous permettent d'entrer des valeurs personnalisées lorsque vous créez ou mettez à jour une pile. Vous pouvez spécifier un objet JSON qui remplace les valeurs des paramètres du modèle dans le fichier de configuration du modèle. Tous les noms de paramètres doivent être présents dans le modèle de la pile. Pour de plus amples informations, consultez Syntaxe Parameters du modèle CloudFormation.

Note

Taille maximum de 1 kilo-octets pour l'objet JSON pouvant être stocké dans la propriété ParameterOverrides.

Nous vous recommandons d'utiliser le fichier de configuration du modèle pour spécifier la plupart des valeurs de paramètres. Utilisez les remplacements de paramètres pour spécifier des valeurs de paramètres dynamiques uniquement. Les paramètres dynamiques sont inconnus tant que vous n'exécutez pas le pipeline.

L'exemple suivant définit une valeur pour le paramètre ParameterName en utilisant une fonction de remplacement de paramètre. La fonction extrait une valeur à partir d'un artefact d'entrée CodePipeline. Pour plus d'informations sur les fonctions de remplacement des paramètres, consultez Utilisation de fonctions de remplacement de paramètres avec des pipelines CodePipeline .

{ "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]} }

Propriétés de configuration (objet JSON)

Lorsque vous spécifiez CloudFormation comme fournisseur d'une action d'étape, définissez les propriétés suivantes dans la propriété Configuration. Utilisez l’objet JSON pour la AWS CLI, l’API CodePipeline ou les modèles CloudFormation. Pour obtenir des exemples, consultez Procédure : Création d'un pipeline pour les piles de test et de production et CloudFormationRéférence sur les propriétés de configuration .

ActionMode

Action CloudFormation que CodePipeline appelle lors du traitement de l'étape associée. Spécifiez un seul des modes d'action suivants :

  • CHANGE_SET_EXECUTE exécute un jeu de modifications.

  • CHANGE_SET_REPLACE crée le jeu de modification, s'il n'existe pas, en fonction du nom de la pile et du modèle que vous soumettez. Si le jeu de modifications existe, CloudFormation le supprime, puis en crée un nouveau.

  • CREATE_UPDATE crée la pile si la pile spécifiée n'existe pas. Si la pile existe, CloudFormation la met à jour. Utilisez cette action pour mettre à jour les piles existantes. CodePipeline ne remplace pas la pile.

  • DELETE_ONLY supprime une pile. Si vous spécifiez une pile qui n'existe pas, l'action se termine avec succès sans supprimer de pile.

  • REPLACE_ON_FAILURE crée une pile si la pile spécifiée n'existe pas. Si la pile existe et qu'elle est en état d'échec (signalé comme ROLLBACK_COMPLETE, ROLLBACK_FAILED, CREATE_FAILED, DELETE_FAILED ou UPDATE_ROLLBACK_FAILED), CloudFormation supprime la pile et en crée une nouvelle. Si la pile n'est pas en état d'échec, CloudFormation la met à jour. Utilisez cette action pour remplacer automatiquement les piles ayant échoué sans les récupérer ou les dépanner. Généralement, ce mode est choisi pour le test.

Cette propriété est requise.

Capabilities

Pour les piles qui contiennent certaines ressources, reconnaissez de manière explicite que CloudFormation peut créer ou mettre à jour ces ressources. Par exemple, vous devez spécifier CAPABILITY_IAM si votre modèle de pile contient des ressources AWS Identity and Access Management (IAM). Pour plus d’informations, consultez les paramètres de requête de l’opération d’API CreateStack.

Cette propriété est conditionnelle. Si vous disposez de ressources IAM dans votre modèle de pile, vous devez spécifier cette propriété.

Vous pouvez spécifier plusieurs fonctionnalités. L’exemple suivant ajoute les propriétés CAPABILITY_IAM et CAPABILITY_AUTO_EXPAND au modèle :

YAML
configuration: ActionMode: CHANGE_SET_REPLACE Capabilities: CAPABILITY_IAM,CAPABILITY_AUTO_EXPAND ChangeSetName: pipeline-changeset RoleArn: CloudFormation_Role_ARN StackName: my-pipeline-stack TemplateConfiguration: 'my-pipeline-stack::template-configuration.json' TemplatePath: 'my-pipeline-stack::template-export.yml'
JSON
"configuration": { "ActionMode": "CHANGE_SET_REPLACE", "Capabilities": "CAPABILITY_IAM,CAPABILITY_AUTO_EXPAND", "ChangeSetName": "pipeline-changeset", "RoleArn": "CloudFormation_Role_ARN", "StackName": "my-pipeline-stack", "TemplateConfiguration": "my-pipeline-stack::template-configuration.json", "TemplatePath": "my-pipeline-stack::template-export.yml" }
ChangeSetName

Nom d'un jeu existant de modifications ou d'un nouveau jeu que vous souhaitez créer pour la pile spécifiée.

Cette propriété est requise pour les modes d'action suivants : CHANGE_SET_REPLACE et CHANGE_SET_EXECUTE. Pour tous les autres modes d'action, cette propriété est ignorée.

OutputFileName

Nom pour le fichier de sortie, tel que CreateStackOutput.json. CodePipeline ajoute le fichier à l'artefact de sortie après l'exécution de l'action spécifiée. L'artefact de sortie contient un fichier JSON avec le contenu de la section Outputs du modèle CloudFormation.

Cette propriété est facultative. Si vous ne spécifiez pas de nom, CodePipeline ne génère pas d'artefact de sortie.

ParameterOverrides

Les paramètres sont définis dans votre modèle et vous permettent d'entrer des valeurs personnalisées lorsque vous créez ou mettez à jour une pile. Vous pouvez spécifier un objet JSON qui remplace les valeurs des paramètres du modèle dans le fichier de configuration du modèle. Tous les noms de paramètres doivent être présents dans le modèle de la pile. Pour de plus amples informations, consultez Syntaxe Parameters du modèle CloudFormation.

L'exemple suivant ajoute les remplacements de paramètres InstanceType et KeyName au modèle :

YAML
configuration: ActionMode: CHANGE_SET_REPLACE Capabilities: CAPABILITY_NAMED_IAM ChangeSetName: pipeline-changeset ParameterOverrides: '{"InstanceType": "t2.small","KeyName": "my-keypair"}' RoleArn: CloudFormation_Role_ARN StackName: my-pipeline-stack TemplateConfiguration: 'my-pipeline-stack::template-configuration.json' TemplatePath: 'my-pipeline-stack::template-export.yml'
JSON
"configuration": { "ActionMode": "CHANGE_SET_REPLACE", "Capabilities": "CAPABILITY_NAMED_IAM", "ChangeSetName": "pipeline-changeset", "ParameterOverrides": "{\"InstanceType\": \"t2.small\",\"KeyName\": \"my-keypair\"}", "RoleArn": "CloudFormation_Role_ARN", "StackName": "my-pipeline-stack", "TemplateConfiguration": "my-pipeline-stack::template-configuration.json", "TemplatePath": "my-pipeline-stack::template-export.yml" }
Note

La taille maximale de l'objet JSON qui peut être stocké dans la propriété ParameterOverrides est de 1 kilo-octet.

Nous vous recommandons d'utiliser le fichier de configuration du modèle pour spécifier la plupart des valeurs de paramètres. Utilisez les remplacements de paramètres pour spécifier des valeurs de paramètres dynamiques uniquement. Les valeurs des paramètres dynamiques sont inconnues jusqu'à ce que vous exécutiez le pipeline.

L'exemple suivant définit une valeur pour le paramètre ParameterName en utilisant une fonction de remplacement de paramètre. La fonction extrait une valeur à partir d'un artefact d'entrée CodePipeline. Pour plus d'informations sur les fonctions de remplacement des paramètres, consultez Utilisation de fonctions de remplacement de paramètres avec des pipelines CodePipeline .

{ "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]} }

Cette propriété est facultative.

RoleArn

Amazon Resource Name (ARN) de la fonction du service IAM qu'CloudFormation assume lorsqu'il fonctionne sur des ressources dans une pile.

Cette propriété est obligatoire pour les modes d'action suivants : CREATE_UPDATE, REPLACE_ON_FAILURE, DELETE_ONLY, et CHANGE_SET_REPLACE. RoleArn n'est pas appliqué lors de l'exécution d'un jeu de modifications. Si vous n'utilisez pas CodePipeline pour créer le jeu de modifications, assurez-vous que le jeu de modifications ou la pile dispose d'un rôle associé.

StackName

Nom d'une pile existante ou d'une pile que vous souhaitez créer.

Cette propriété est requise pour tous les modes d'action.

TemplateConfiguration

TemplateConfiguration est le fichier de configuration de modèle. Vous incluez ce fichier dans un artefact d'entrée pour cette action. Le nom de fichier de configuration de modèle suit ce format :

Artifactname::TemplateConfigurationFileName

Artifactname est le nom de l'artefact d'entrée tel qu'il apparaît dans CodePipeline. Par exemple, une étape source avec le nom d'artefact SourceArtifact et un nom de fichier test-configuration.json crée un nom TemplateConfiguration, tel qu'illustré dans l'exemple suivant :

"TemplateConfiguration": "SourceArtifact::test-configuration.json"

Le fichier de configuration de modèle peut contenir des valeurs de paramètres du modèle et une politique de pile. Si vous incluez des informations sensibles, telles que des mots de passe, limitez l'accès à ce fichier. Pour un exemple de fichier de configuration, veuillez consulter la rubrique CloudFormation artefacts.

Cette propriété est facultative.

TemplatePath

TemplatePath représente le fichier de modèle CloudFormation. Vous incluez ce fichier dans un artefact d'entrée pour cette action. Le nom de fichier respecte le format suivant :

Artifactname::TemplateFileName

Artifactname est le nom de l'artefact d'entrée tel qu'il apparaît dans CodePipeline. Par exemple, une étape source avec le nom d'artefact SourceArtifact et un nom de fichier template.yaml crée un nom TemplatePath, tel qu'illustré dans l'exemple suivant :

"TemplatePath": "SourceArtifact::template.yaml"

Cette propriété est requise pour les modes d'action suivants : CREATE_UPDATE, REPLACE_ON_FAILURE et CHANGE_SET_REPLACE. Pour tous les autres modes d'action, cette propriété est ignorée.

Consultez aussi

Les ressources connexes suivantes peuvent s'avérer utiles lors de l'utilisation de ces paramètres.