AWS CloudFormation référence aux 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.

AWS CloudFormation référence aux propriétés de configuration

Lorsque vous créez un CodePipeline pipeline, vous ajoutez une Deploy action au pipeline en AWS CloudFormation tant que fournisseur. Vous devez ensuite spécifier l' AWS CloudFormation action invoquée par le pipeline et les paramètres de l'action. Cette rubrique décrit les propriétés de configuration AWS CloudFormation . Pour définir les propriétés, vous pouvez utiliser la CodePipeline console ou créer un JSON objet à utiliser pour les AWS CloudFormation modèles AWS CLI CodePipeline API, ou.

Propriétés de configuration (Console)

La CodePipeline console affiche les propriétés de configuration et indique les propriétés 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

L' AWS CloudFormation action qui est CodePipeline invoquée 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 l'ensemble de modifications existe, AWS CloudFormation il est supprimé, 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, AWS CloudFormation met à jour la pile. Utilisez cette action pour mettre à jour les piles existantes. CodePipeline ne remplacera 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 est dans un état défaillant (signalé comme ROLLBACK_COMPLETE ROLLBACK_FAILEDCREATE_FAILED,DELETE_FAILED,, ouUPDATE_ROLLBACK_FAILED), AWS CloudFormation supprime la pile puis en crée une nouvelle. Si la pile n'est pas en état d'échec, mettez-la AWS CloudFormation à 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 AWS région 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 AWS CloudFormation modèle, qui suit le formatArtifactName::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, veuillez consulter AWS CloudFormation artefacts.

Capacités

Pour les piles contenant certaines ressources, reconnaissance explicite AWS CloudFormation susceptible de créer ou de 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 .CreateStackAPIparamètres de demande d'opération.

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 de rôle

Nom du rôle de IAM service AWS CloudFormation assumé lorsqu'il agit sur les ressources de la pile spécifiée.

Nom du fichier de sortie

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

Si vous ne spécifiez pas de nom, CodePipeline cela ne génère pas d'artefact en 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 JSON objet 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, veuillez consulter CloudFormation modèle Parameters syntaxe.

Note

La taille maximale de l'JSONobjet pouvant être stocké dans la propriété est de 1 kilo-octet. 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 récupère une valeur à partir d'un artefact CodePipeline d'entrée. 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 (JSONobjet)

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'JSONobjet pour AWS CLI le ou CodePipeline API les AWS CloudFormation modèles. Pour obtenir des exemples, veuillez consulter Procédure : Création d'un pipeline pour les piles de test et de production et AWS CloudFormation référence aux propriétés de configuration.

ActionMode

L' AWS CloudFormation action qui est CodePipeline invoquée lorsqu'elle traite 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 l'ensemble de modifications existe, AWS CloudFormation il est supprimé, 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, AWS CloudFormation la met à jour. Utilisez cette action pour mettre à jour les piles existantes. CodePipeline ne remplacera 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 est dans un état défaillant (signalé comme ROLLBACK_COMPLETE ROLLBACK_FAILEDCREATE_FAILED,DELETE_FAILED,, ouUPDATE_ROLLBACK_FAILED), AWS CloudFormation supprime la pile puis en crée une nouvelle. Si la pile n'est pas en état d'échec, mettez-la AWS CloudFormation à 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 contenant certaines ressources, reconnaissance explicite AWS CloudFormation susceptible de créer ou de 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 .CreateStackAPIparamètres de demande d'opération.

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 CAPABILITY_AUTO_EXPAND propriétés CAPABILITY_IAM et 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 du fichier de sortie, tel queCreateStackOutput.json. CodePipeline ajoute le fichier à l'artefact de sortie après avoir effectué l'action spécifiée. L'artefact de sortie contient un JSON fichier contenant le contenu de la Outputs section du AWS CloudFormation modèle.

Cette propriété est facultative. Si vous ne spécifiez pas de nom, CodePipeline cela ne génère pas d'artefact en 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 JSON objet 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, veuillez consulter CloudFormation modèle Parameters syntaxe.

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'JSONobjet pouvant être stocké dans la ParameterOverrides propriété 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 récupère une valeur à partir d'un artefact CodePipeline d'entrée. 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

Le nom de ressource Amazon (ARN) du rôle de IAM service AWS CloudFormation assumé lorsqu'il fonctionne sur des ressources d'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 ne l'utilisez pas CodePipeline pour créer l'ensemble de modifications, assurez-vous qu'un rôle est associé à l'ensemble ou à la pile de modifications.

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

Artifactnameest 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, consultez AWS CloudFormation artefacts.

Cette propriété est facultative.

TemplatePath

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

Artifactname::TemplateFileName

Artifactnameest 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.