AWS CloudFormation référence d'action de déploiement - AWS CodePipeline

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 d'action de déploiement

Exécute une opération sur une AWS CloudFormation pile. Une pile est un ensemble de AWS ressources que vous pouvez gérer comme une seule unité. Les ressources d'une pile sont définies par son modèle AWS CloudFormation . Un jeu de modifications crée une comparaison qui peut être affichée sans modifier la pile d'origine. Pour plus d'informations sur les types d' AWS CloudFormation actions pouvant être effectuées sur les piles et les ensembles de modifications, consultez le ActionMode paramètre.

Pour créer un message d'erreur pour une AWS CloudFormation action où une opération de pile a échoué, CodePipeline appelle le AWS CloudFormation DescribeStackEventsAPI. Si un IAM rôle d'action est autorisé à y accéderAPI, les détails relatifs à la première ressource défaillante seront inclus dans le message CodePipeline d'erreur. Sinon, si la politique de rôle ne dispose pas de l'autorisation appropriée, elle CodePipeline ignorera l'accès au API et affichera un message d'erreur générique à la place. Pour ce faire, l'cloudformation:DescribeStackEventsautorisation doit être ajoutée au rôle de service ou à d'autres IAM rôles pour le pipeline.

Si vous ne souhaitez pas que les détails des ressources apparaissent dans les messages d'erreur du pipeline, vous pouvez révoquer cette autorisation pour le IAM rôle d'action en la cloudformation:DescribeStackEvents supprimant.

Type d'action

  • Catégorie : Deploy

  • Propriétaire : AWS

  • Fournisseur : CloudFormation

  • Version : 1

Paramètres de configuration

ActionMode

Obligatoire : oui

ActionModeest le nom de l'action exécutée AWS CloudFormation sur une pile ou un ensemble de modifications. Les modes d'action suivants sont disponibles :

  • CHANGE_SET_EXECUTE exécute un jeu de modifications pour la pile de ressources basé sur un ensemble de mises à jour de ressources spécifiées. Avec cette action, AWS CloudFormation commence à modifier la pile.

  • 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 elle n'existe pas. Si la pile existe, AWS CloudFormation met à jour la pile. Utilisez cette action pour mettre à jour les piles existantes. Au contraireREPLACE_ON_FAILURE, si la pile existe et est en état d'échec, elle CodePipeline ne sera ni supprimée ni remplacée.

  • 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 elle n'existe pas. Si la pile existe et est en état d'échec, AWS CloudFormation supprime la pile, puis crée une nouvelle pile. Si la pile n'est pas en état d'échec, mettez-la AWS CloudFormation à jour.

    La pile présente un état d'échec lorsque l'un des types d'état suivants est affiché dans AWS CloudFormation :

    • ROLLBACK_FAILED

    • CREATE_FAILED

    • DELETE_FAILED

    • UPDATE_ROLLBACK_FAILED

    Utilisez cette action pour remplacer automatiquement les piles ayant échoué sans les récupérer ou les dépanner.

    Important

    Nous vous recommandons d'utiliser REPLACE_ON_FAILURE à des fins de test uniquement, car cela peut supprimer votre pile.

StackName

Obligatoire : oui

StackName correspond au nom d'une pile existante ou d'une pile que vous souhaitez créer.

Fonctionnalités

Obligatoire : Conditionnelle

L'utilisation de Capabilities confirme que le modèle peut avoir les capacités de créer et de mettre à jour certaines ressources par lui-même, et que ces capacités sont déterminées en fonction des types de ressources figurant dans le modèle.

Cette propriété est obligatoire si votre modèle de pile contient IAM des ressources ou si vous créez une pile directement à partir d'un modèle contenant des macros. Pour que l' AWS CloudFormation action fonctionne correctement de cette manière, vous devez explicitement reconnaître que vous souhaitez qu'elle le fasse avec l'une des fonctionnalités suivantes :

  • CAPABILITY_IAM

  • CAPABILITY_NAMED_IAM

  • CAPABILITY_AUTO_EXPAND

Vous pouvez spécifier plusieurs capacités en utilisant une virgule (pas d'espace) entre les capacités. L'exemple ci-dessous Déclaration d'action montre une entrée avec à la fois les EXPAND propriétés CAPABILITY CAPABILITY _ IAM et AUTO _ _.

Pour plus d'informationsCapabilities, consultez les propriétés ci-dessous UpdateStackdans la AWS CloudFormation APIréférence.

ChangeSetName

Obligatoire : Conditionnelle

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

Cette propriété est obligatoire 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.

RoleArn

Obligatoire : Conditionnelle

RoleArnIl s'agit ARN du rôle de IAM service qui AWS CloudFormation assume lorsqu'il agit sur les ressources de la pile spécifiée. RoleArnn'est pas appliqué lors de l'exécution d'un ensemble 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.

Note

Ce rôle doit se trouver dans le même compte que le rôle de l'action en cours d'exécution, tel que configuré dans la déclaration d'actionRoleArn.

Cette propriété est requise pour les modes d'action suivants :

  • CREATE_UPDATE

  • REPLACE_ON_ FAILURE

  • DELETE_ONLY

  • CHANGE_SET_REPLACE

Note

AWS CloudFormation reçoit une signature S3 URL sur le modèle ; par conséquent, aucune autorisation RoleArn n'est requise pour accéder au compartiment d'artefacts. Toutefois, l'action RoleArn nécessite une autorisation pour accéder au compartiment d'artefacts afin de générer le document signéURL.

TemplatePath

Obligatoire : Conditionnelle

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-export.json crée un nom TemplatePath, tel qu'illustré dans l'exemple suivant :

"TemplatePath": "SourceArtifact::template-export.json"

Cette propriété est requise pour les modes d'action suivants :

  • CREATE_UPDATE

  • REPLACE_ON_ FAILURE

  • CHANGE_SET_REPLACE

Pour tous les autres modes d'action, cette propriété est ignorée.

Note

Le fichier AWS CloudFormation modèle contenant le corps du modèle a une longueur minimale de 1 octet et une longueur maximale de 1 Mo. Pour les actions de AWS CloudFormation déploiement dans CodePipeline, la taille maximale de l'artefact en entrée est toujours de 256 Mo. Pour plus d'informations, consultez Quotas dans AWS CodePipeline et Limites AWS CloudFormation.

OutputFileName

Obligatoire : non

OutputFileNameÀ utiliser pour spécifier un nom de fichier de sortie, tel queCreateStackOutput.json, qui s' CodePipeline ajoute à l'artefact de sortie du pipeline pour cette action. Le JSON fichier contient le contenu de la Outputs section issue de la AWS CloudFormation pile.

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

ParameterOverrides

Obligatoire : non

Les paramètres sont définis dans votre modèle de pile et vous permettent de fournir leurs valeurs au moment de la création ou de la mise à jour de la pile. Vous pouvez utiliser un JSON objet pour définir des valeurs de paramètres dans votre modèle. (Ces valeurs remplacent celles définies dans le fichier de configuration du modèle.) Pour plus d'informations sur l'utilisation des remplacements de paramètres, consultez Propriétés de configuration (JSONobjet).

Nous vous recommandons d'utiliser le fichier de configuration de modèle pour la plupart de vos valeurs de paramètres. Utilisez des remplacements de paramètres uniquement pour les valeurs qui ne sont pas connues tant que le pipeline n'est pas en cours d'exécution. Pour plus d'informations, consultez la section Utilisation des fonctions de remplacement de paramètres avec des CodePipeline pipelines dans le guide de l'AWS CloudFormation utilisateur.

Note

Tous les noms de paramètres doivent être présents dans le modèle de la pile.

TemplateConfiguration

Obligatoire : non

TemplateConfiguration est le fichier de configuration de modèle. Vous incluez ce fichier dans un artefact d'entrée pour cette action. Il peut contenir des valeurs de paramètre de modèle et une stratégie de pile. Pour plus d'informations sur le format de fichier de configuration du modèle, consultez AWS CloudFormation Artefacts.

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"

Artefacts d'entrée

  • Nombre d'objets : 0 to 10

  • Description : en entrée, l' AWS CloudFormation action accepte éventuellement des artefacts aux fins suivantes :

    • Pour fournir le fichier de modèle de pile à exécuter. (Voir le paramètre TemplatePath.)

    • Pour fournir le fichier de configuration de modèle à utiliser. (Voir le paramètre TemplateConfiguration.) Pour plus d'informations sur le format de fichier de configuration du modèle, consultez AWS CloudFormation Artefacts.

    • Fournir l'artefact pour une fonction Lambda à déployer dans le cadre de la AWS CloudFormation pile.

Artefacts de sortie

  • Nombre d'objets : 0 to 1

  • Description : si le OutputFileName paramètre est spécifié, un artefact de sortie produit par cette action contient un JSON fichier portant le nom spécifié. Le JSON fichier contient le contenu de la section Outputs de la AWS CloudFormation pile.

    Pour de plus amples informations sur la section Outputs que vous pouvez créer pour votre action AWS CloudFormation , veuillez consulter Sorties.

Variables de sortie

Lorsque cette action est configurée, elle produit des variables qui peuvent être référencées par la configuration d'action d'une action en aval dans le pipeline. Vous configurez une action avec un espace de noms pour rendre ces variables disponibles pour la configuration des actions en aval.

Pour les AWS CloudFormation actions, les variables sont produites à partir de toutes les valeurs désignées dans la Outputs section d'un modèle de pile. Notez que les seuls modes CloudFormation d'action qui génèrent des sorties sont ceux qui aboutissent à la création ou à la mise à jour d'une pile, tels que la création de pile, les mises à jour de piles et l'exécution d'ensembles de modifications. Les modes d'action correspondants qui génèrent des variables sont les suivants :

  • CHANGE_SET_EXECUTE

  • CHANGE_SET_REPLACE

  • CREATE_UPDATE

  • REPLACE_ON_FAILURE

Pour de plus amples informations, veuillez consulter Référence aux variables. Pour un didacticiel qui explique comment créer un pipeline avec une action de CloudFormation déploiement dans un pipeline utilisant des variables CloudFormation de sortie, voirTutoriel : Création d'un pipeline qui utilise des variables issues d'actions de AWS CloudFormation déploiement.

Déclaration d'action

YAML
Name: ExecuteChangeSet ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormation Version: '1' RunOrder: 2 Configuration: ActionMode: CHANGE_SET_EXECUTE Capabilities: CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND ChangeSetName: pipeline-changeset ParameterOverrides: '{"ProjectId": "my-project","CodeDeployRole": "CodeDeploy_Role_ARN"}' RoleArn: CloudFormation_Role_ARN StackName: my-project--lambda TemplateConfiguration: 'my-project--BuildArtifact::template-configuration.json' TemplatePath: 'my-project--BuildArtifact::template-export.yml' OutputArtifacts: [] InputArtifacts: - Name: my-project-BuildArtifact
JSON
{ "Name": "ExecuteChangeSet", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormation", "Version": "1" }, "RunOrder": 2, "Configuration": { "ActionMode": "CHANGE_SET_EXECUTE", "Capabilities": "CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND", "ChangeSetName": "pipeline-changeset", "ParameterOverrides": "{\"ProjectId\": \"my-project\",\"CodeDeployRole\": \"CodeDeploy_Role_ARN\"}", "RoleArn": "CloudFormation_Role_ARN", "StackName": "my-project--lambda", "TemplateConfiguration": "my-project--BuildArtifact::template-configuration.json", "TemplatePath": "my-project--BuildArtifact::template-export.yml" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "my-project-BuildArtifact" } ] },

Les ressources connexes suivantes peuvent s'avérer utiles dans le cadre de l'utilisation de cette action.