Surveillance des CodePipeline événements - 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.

Surveillance des CodePipeline événements

Vous pouvez surveiller les CodePipeline événements dans EventBridge, qui fournit un flux de données en temps réel provenant de vos propres applications, applications software-as-a-service (SaaS) et Services AWS. EventBridge achemine ces données vers des cibles telles qu' AWS Lambda Amazon Simple Notification Service. Ces événements sont les mêmes que ceux qui apparaissent dans Amazon CloudWatch Events, qui fournit un flux quasi en temps réel d'événements système décrivant les modifications apportées aux AWS ressources. Pour plus d'informations, consultez Qu'est-ce qu'Amazon EventBridge ? dans le guide de EventBridge l'utilisateur Amazon.

Note

Amazon EventBridge est le moyen préféré pour gérer vos événements. Amazon CloudWatch Events et EventBridge 2 sont le même service sous-jacentAPI, mais ils EventBridge fournissent plus de fonctionnalités. Les modifications que vous apportez dans l'un ou l'autre des CloudWatch événements EventBridge apparaîtront dans chaque console.

Les événements sont composés de règles. Une règle est configurée en choisissant les options suivantes :

  • Schéma d'événement. Chaque règle est exprimée sous la forme d'un modèle d'événements avec la source et le type d'événements à surveiller, ainsi que les cibles des événements. Pour surveiller les événements, vous créez une règle avec le service que vous surveillez comme source d'événements, par exemple CodePipeline. Par exemple, vous pouvez créer une règle avec un modèle d'événement utilisé CodePipeline comme source d'événement pour déclencher la règle en cas de modification de l'état d'un pipeline, d'une étape ou d'une action.

  • Cibles La nouvelle règle reçoit un service sélectionné en tant que cible d'événement. Vous souhaiterez peut-être configurer un service cible pour envoyer des notifications, capturer des informations d'état, prendre des mesures correctives, initier des événements ou prendre d'autres mesures. Lorsque vous ajoutez votre cible, vous devez également lui EventBridge accorder des autorisations lui permettant d'appeler le service cible sélectionné.

Chaque type d'événement de changement d'état d'exécution émet des notifications avec un contenu de message spécifique dans lequel :

  • L'versionentrée initiale indique le numéro de version de l'événement.

  • L'entrée version sous detail du pipeline indique le numéro de version de la structure du pipeline.

  • L'entrée execution-id sous detail du pipeline indique l'ID d'exécution pour l'exécution du pipeline ayant causé le changement d'état. Reportez-vous à l'GetPipelineExecutionAPIappel dans la AWS CodePipeline APIréférence.

  • L'pipeline-execution-attemptentrée indique le nombre de tentatives, ou de nouvelles tentatives, pour l'ID d'exécution spécifique.

CodePipeline signale un événement EventBridge chaque fois que l'état d'une ressource Compte AWS change dans vos paramètres. Les événements sont émis sur une at-least-once base garantie pour les ressources suivantes :

  • Exécutions de pipeline

  • Exécutions scéniques

  • Exécutions d'actions

Les événements sont émis selon EventBridge le modèle et le schéma d'événements détaillés ci-dessus. Pour les événements traités, tels que les événements que vous recevez par le biais de notifications que vous avez configurées dans la console Developer Tools, le message d'événement inclut des champs de modèle d'événements avec certaines variantes. Par exemple, le detail-type champ est converti endetailType. Pour plus d'informations, reportez-vous à l'PutEventsAPIappel dans le Amazon EventBridge API Reference.

Les exemples suivants présentent des événements pour CodePipeline. Dans la mesure du possible, chaque exemple montre le schéma d'un événement émis ainsi que le schéma d'un événement traité.

Types de détails

Lorsque vous configurez des événements à surveiller, vous pouvez choisir le type de détail de l'événement.

Vous pouvez configurer des notifications à envoyer lorsque l'état passe à :

  • Les pipelines spécifiés ou tous vos pipelines. Vous pouvez contrôler cet élément à l'aide de "detail-type": "CodePipeline Pipeline Execution State Change"

  • Les étapes spécifiées ou toutes vos étapes, dans un pipeline spécifié ou tous vos pipelines. Vous pouvez contrôler cet élément à l'aide de "detail-type": "CodePipeline Stage Execution State Change"

  • Les actions spécifiées ou toutes les actions, dans une étape spécifiées ou toutes les étapes, dans un pipeline spécifié ou tous vos pipelines. Vous pouvez contrôler cet élément à l'aide de "detail-type": "CodePipeline Action Execution State Change"

Note

Les événements émis par EventBridge contiennent le detail-type paramètre, qui est converti detailType lorsque les événements sont traités.

Type de détail État Description
CodePipeline Modification de l'état d'exécution du pipeline CANCELED L'exécution du pipeline a été annulée en raison de la mise à jour de la structure du pipeline.
FAILED L'exécution de pipeline ne s'est pas terminée avec succès.
RESUMED Une exécution de pipeline ayant échoué a été réessayée en réponse à l'RetryStageExecutionAPIappel.
STARTED L'exécution du pipeline est en cours d'exécution.
STOPPED Le processus d'arrêt aboutit et l'exécution du pipeline est arrêtée.
STOPPING L'exécution du pipeline s'arrête en raison d'une demande d'arrêt et d'attente ou d'arrêt et d'abandon de l'exécution du pipeline.
SUCCEEDED L'exécution de pipeline s'est terminée avec succès.
SUPERSEDED

Tandis que l'exécution de ce pipeline était en attente de l'achèvement de l'étape suivante, une autre exécution de pipeline plus récente a avancé et a poursuivi via ce pipeline.

CodePipeline Modification de l'état d'exécution de l'étape CANCELED L'étape a été annulée en raison de la mise à jour de la structure du pipeline.
FAILED L'étape ne s'est pas terminée avec succès.
RESUMED Une étape ayant échoué a été réessayée en réponse à l'RetryStageExecutionAPIappel.
STARTED L'étape est en cours d'exécution.
STOPPED Le processus d'arrêt aboutit et l'exécution de la phase est arrêtée.
STOPPING L'exécution de la phase s'arrête en raison d'une demande d'arrêt et d'attente ou d'arrêt et d'abandon de l'exécution du pipeline.
SUCCEEDED L'étape s'est terminée avec succès.
CodePipeline Modification de l'état d'exécution de l'action ABANDONED L'action est abandonnée en raison d'une demande d'arrêt et d'abandon de l'exécution du pipeline.
CANCELED L'action a été annulée en raison de la mise à jour de la structure du pipeline.
FAILED Pour les actions d'approbation, l'FAILEDétat signifie que l'action a été rejetée par le réviseur ou a échoué en raison d'une configuration d'action incorrecte.
STARTED L'action est en cours d'exécution.
SUCCEEDED L'action s'est terminée avec succès.

Événements au niveau du pipeline

Des événements au niveau du pipeline sont émis en cas de changement d'état pour l'exécution d'un pipeline.

STARTEDÉvénement lié au pipeline

Lorsqu'une exécution de pipeline démarre, elle émet un événement qui envoie des notifications avec le contenu suivant. Cet exemple concerne le pipeline nommé "myPipeline" dans la us-east-1 région. Le id champ représente l'identifiant de l'événement et le account champ représente l'identifiant du compte sur lequel le pipeline est créé.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:03:07Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "trigger-type": "StartPipelineExecution", "trigger-detail": "arn:aws:sts::123456789012:assumed-role/Admin/my-user" }, "state": "STARTED", "version": 1.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-east-1", "source": "aws.codepipeline", "time": "2021-06-24T00:44:50Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "trigger-type": "StartPipelineExecution", "trigger-detail": "arn:aws:sts::123456789012:assumed-role/Admin/my-user" }, "state": "STARTED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "additionalAttributes": {} }

STOPPINGÉvénement lié au pipeline

Lorsqu'une exécution de pipeline s'arrête, elle émet un événement qui envoie des notifications avec le contenu suivant. Cet exemple concerne le pipeline nommé myPipeline dans la us-west-2 région.

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:02:20Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "STOPPING", "version": 3.0, "pipeline-execution-attempt": 1.0 "stop-execution-comments": "Stopping the pipeline for an update" } }

SUCCEEDEDÉvénement lié au pipeline

Lorsqu'une exécution de pipeline réussit, elle émet un événement qui envoie des notifications avec le contenu suivant. Cet exemple concerne le pipeline nommé myPipeline dans la us-east-1 région.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:03:44Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "SUCCEEDED", "version": 3.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-east-1", "source": "aws.codepipeline", "time": "2021-06-30T22:13:51Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "SUCCEEDED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": {} }

Pipeline SUCCEEDED (exemple avec des balises Git)

Lorsqu'une étape d'exécution d'un pipeline a été réessayée et a réussi, elle émet un événement qui envoie des notifications avec le contenu suivant. Cet exemple concerne le pipeline nommé myPipeline dans la eu-central-1 région où il execution-trigger est configuré pour les balises Git.

Note

Le execution-trigger champ contiendra l'un tag-name ou l'autre oubranch-name, selon le type d'événement qui a déclenché le pipeline.

{ "version": "0", "id": "b128b002-09fd-4574-4eba-27152726c777", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2023-10-26T13:50:53Z", "region": "eu-central-1", "resources": [ "arn:aws:codepipeline:eu-central-1:123456789012:BuildFromTag" ], "detail": { "pipeline": "BuildFromTag", "execution-id": "e17b5773-cc0d-4db2-9ad7-594c73888de8", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "author-display-name": "Mary Major", "full-repository-name": "mmajor/sample-project", "provider-type": "GitLab", "author-email": "email_address", "commit-message": "Update file README.md", "author-date": "2023-08-16T21:08:08Z", "tag-name": "gitlab-v4.2.1", "commit-id": "commit_ID", "connection-arn": "arn:aws:codestar-connections:eu-central-1:123456789012:connection/0f5b706a-1a1d-46c5-86b6-f177321bcfb2", "author-id": "Mary Major" }, "state": "SUCCEEDED", "version": 32.0, "pipeline-execution-attempt": 1.0 } }

FAILEDÉvénement lié au pipeline

Lorsqu'une exécution de pipeline échoue, elle émet un événement qui envoie des notifications avec le contenu suivant. Cet exemple concerne le pipeline nommé "myPipeline" dans la us-west-2 région.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:55:43Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "FAILED", "version": 4.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:46:16Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "state": "FAILED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": { "failedActionCount": 1, "failedActions": [ { "action": "Deploy", "additionalInformation": "Deployment <ID> failed" } ], "failedStage": "Deploy" }

Pipeline FAILED (exemple avec des balises Git)

À moins qu'il n'échoue au stade source, pour un pipeline configuré avec des déclencheurs, il émet un événement qui envoie des notifications avec le contenu suivant. Cet exemple concerne le pipeline nommé myPipeline dans la eu-central-1 région où il execution-trigger est configuré pour les balises Git.

Note

Le execution-trigger champ contiendra l'un tag-name ou l'autre oubranch-name, selon le type d'événement qui a déclenché le pipeline.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Pipeline Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:55:43Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "author-display-name": "Mary Major", "full-repository-name": "mmajor/sample-project", "provider-type": "GitLab", "author-email": "email_address", "commit-message": "Update file README.md", "author-date": "2023-08-16T21:08:08Z", "tag-name": "gitlab-v4.2.1", "commit-id": "commit_ID", "connection-arn": "arn:aws:codestar-connections:eu-central-1:123456789012:connection/0f5b706a-1a1d-46c5-86b6-f177321bcfb2", "author-id": "Mary Major" }, "state": "FAILED", "version": 4.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Pipeline Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:46:16Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "execution-trigger": { "author-display-name": "Mary Major", "full-repository-name": "mmajor/sample-project", "provider-type": "GitLab", "author-email": "email_address", "commit-message": "Update file README.md", "author-date": "2023-08-16T21:08:08Z", "tag-name": "gitlab-v4.2.1", "commit-id": "commit_ID", "connection-arn": "arn:aws:codestar-connections:eu-central-1:123456789012:connection/0f5b706a-1a1d-46c5-86b6-f177321bcfb2", "author-id": "Mary Major" }, "state": "FAILED", "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": { "failedActionCount": 1, "failedActions": [ { "action": "Deploy", "additionalInformation": "Deployment <ID> failed" } ], "failedStage": "Deploy" }

Événements au niveau de la scène

Des événements au niveau de l'étape sont émis lorsqu'il y a un changement d'état pour l'exécution d'une étape.

STARTEDÉvénement scénique

Lorsque l'exécution d'une étape démarre, elle émet un événement qui envoie des notifications avec le contenu suivant. Cet exemple concerne le pipeline nommé "myPipeline" dans la us-east-1 région, pour l'étapeProd.

Emitted event
{ "version": "0", "id": 01234567-EXAMPLE, "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": 123456789012, "time": "2020-01-24T22:03:07Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "version": 1.0, "execution-id": 12345678-1234-5678-abcd-12345678abcd, "start-time": "2023-10-26T13:49:39.208Z", "stage": "Prod", "state": "STARTED", "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Stage Execution State Change", "region": "us-east-1", "source": "aws.codepipeline", "time": "2021-06-24T00:45:40Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "stage": "Source", "state": "STARTED", "version": 1.0, "pipeline-execution-attempt": 0.0 }, "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "additionalAttributes": { "sourceActions": [ { "sourceActionName": "Source", "sourceActionProvider": "CodeCommit", "sourceActionVariables": { "BranchName": "main", "CommitId": "<ID>", "RepositoryName": "my-repo" } } ] } }

STOPPINGÉvénement scénique

Lorsque l'exécution d'une étape s'arrête, elle émet un événement qui envoie des notifications avec le contenu suivant. Cet exemple concerne le pipeline nommé myPipeline dans la us-west-2 région, pour l'étapeDeploy.

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:02:20Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "stage": "Deploy", "state": "STOPPING", "version": 3.0, "pipeline-execution-attempt": 1.0 } }

STOPPEDÉvénement scénique

Lorsque l'exécution d'une étape est arrêtée, elle émet un événement qui envoie des notifications avec le contenu suivant. Cet exemple concerne le pipeline nommé myPipeline dans la us-west-2 région, pour l'étapeDeploy.

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:21:39Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:49:39.208Z", "stage": "Deploy", "state": "STOPPED", "version": 3.0, "pipeline-execution-attempt": 1.0 } }

Événement de nouvelle tentative étape RESUMED après étape

Lorsque l'exécution d'une étape reprend et qu'une étape a été réessayée, elle émet un événement qui envoie des notifications avec le contenu suivant.

Lorsqu'une étape a été réessayée, le stage-last-retry-attempt-time champ s'affiche, comme indiqué dans l'exemple. Le champ s'affiche sur tous les événements de la scène si une nouvelle tentative a été effectuée.

Note

Le stage-last-retry-attempt-time champ sera présent dans toutes les étapes suivantes une fois qu'une étape aura été réessayée.

{ "version": "0", "id": "38656bcd-a798-5f92-c738-02a71be484e1", "detail-type": "CodePipeline Stage Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2023-10-26T14:14:56Z", "region": "eu-central-1", "resources": [ "arn:aws:codepipeline:eu-central-1:123456789012:BuildFromTag" ], "detail": { "pipeline": "BuildFromTag", "execution-id": "05dafb6a-5a56-4951-a858-968795364846", "stage-last-retry-attempt-time": "2023-10-26T14:14:56.305Z", "stage": "Build", "state": "RESUMED", "version": 32.0, "pipeline-execution-attempt": 2.0 } }

Événements au niveau de l'action

Des événements au niveau de l'action sont émis lorsqu'il y a un changement d'état pour l'exécution d'une action.

STARTEDÉvénement d'action

Lorsque l'exécution d'une action démarre, elle émet un événement qui envoie des notifications avec le contenu suivant. Cet exemple concerne le pipeline nommé myPipeline dans la us-east-1 région, pour l'action de déploiementmyAction.

Emitted event
{ "version": "0", "id": 01234567-EXAMPLE, "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": 123456789012, "time": "2020-01-24T22:03:07Z", "region": "us-east-1", "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": 12345678-1234-5678-abcd-12345678abcd, "start-time": "2023-10-26T13:51:09.981Z", "stage": "Prod", "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "myAction", "state": "STARTED", "type": { "owner": "AWS", "category": "Deploy", "provider": "CodeDeploy", "version": "1" }, "version": 2.0 "pipeline-execution-attempt": 1.0 "input-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-east-1-BUCKETEXAMPLE", "key": "myPipeline/SourceArti/KEYEXAMPLE" } } ] } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Action Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:45:44Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Deploy", "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "input-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-east-1-EXAMPLE", "key": "myPipeline/SourceArti/EXAMPLE" } } ], "state": "STARTED", "region": "us-east-1", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-east-1:123456789012:myPipeline" ], "additionalAttributes": {} }

SUCCEEDEDÉvénement d'action

Lorsqu'une action est exécutée avec succès, elle émet un événement qui envoie des notifications avec le contenu suivant. Cet exemple concerne le pipeline nommé "myPipeline" dans la us-west-2 région, pour l'action source"Source". Pour ce type d'événement, il existe deux region champs différents. Le region champ d'événement indique la région de l'événement de pipeline. Le region champ situé sous la detail section indique la région de l'action.

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-24T22:03:11Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Source", "execution-result": { "external-execution-url": "https://us-west-2.console.aws.amazon.com/codecommit/home#/repository/my-repo/commit/8cf40f2EXAMPLE", "external-execution-summary": "Added LICENSE.txt", "external-execution-id": "8cf40fEXAMPLE" }, "output-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-west-2-BUCKETEXAMPLE", "key": "myPipeline/SourceArti/KEYEXAMPLE" } } ], "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Source", "state": "SUCCEEDED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeCommit", "category": "Source", "version": "1" }, "version": 3.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Action Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:45:44Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:ACCOUNT:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "arn:aws:codepipeline:us-west-2:123456789012:myPipeline", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Source", "execution-result": { "external-execution-url": "https://us-west-2.console.aws.amazon.com/codecommit/home#/repository/my-repo/commit/8cf40f2EXAMPLE", "external-execution-summary": "Edited index.html", "external-execution-id": "36ab3ab7EXAMPLE" }, "output-artifacts": [ { "name": "SourceArtifact", "s3location": { "bucket": "codepipeline-us-west-2-EXAMPLE", "key": "myPipeline/SourceArti/EXAMPLE" } } ], "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Source", "state": "SUCCEEDED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeCommit", "category": "Source", "version": "1" }, "version": 1.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": {} }

FAILEDÉvénement d'action

Lorsque l'exécution d'une action échoue, elle émet un événement qui envoie des notifications avec le contenu suivant. Cet exemple concerne le pipeline nommé "myPipeline" dans la us-west-2 région, pour l'action"Deploy".

Emitted event
{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:55:43Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "start-time": "2023-10-26T13:51:09.981Z", "stage": "Deploy", "execution-result": { "external-execution-url": "https://us-west-2.console.aws.amazon.com/codedeploy/home?#/deployments/<ID>", "external-execution-summary": "Deployment <ID> failed", "external-execution-id": "<ID>", "error-code": "JobFailed" }, "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "state": "FAILED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 4.0, "pipeline-execution-attempt": 1.0 } }
Processed event
{ "account": "123456789012", "detailType": "CodePipeline Action Execution State Change", "region": "us-west-2", "source": "aws.codepipeline", "time": "2021-06-24T00:46:16Z", "notificationRuleArn": "arn:aws:codestar-notifications:us-west-2:123456789012:notificationrule/a69c62c21EXAMPLE", "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "stage": "Deploy", "execution-result": { "external-execution-url": "https://console.aws.amazon.com/codedeploy/home?region=us-west-2#/deployments/<ID>", "external-execution-summary": "Deployment <ID> failed", "external-execution-id": "<ID>", "error-code": "JobFailed" }, "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "state": "FAILED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 13.0, "pipeline-execution-attempt": 1.0 }, "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "additionalAttributes": { "additionalInformation": "Deployment <ID> failed" } }

ABANDONEDÉvénement d'action

Lorsqu'une exécution d'action est abandonnée, elle émet un événement qui envoie des notifications avec le contenu suivant. Cet exemple concerne le pipeline nommé "myPipeline" dans la us-west-2 région, pour l'action"Deploy".

{ "version": "0", "id": "01234567-EXAMPLE", "detail-type": "CodePipeline Action Execution State Change", "source": "aws.codepipeline", "account": "123456789012", "time": "2020-01-31T18:21:39Z", "region": "us-west-2", "resources": [ "arn:aws:codepipeline:us-west-2:123456789012:myPipeline" ], "detail": { "pipeline": "myPipeline", "execution-id": "12345678-1234-5678-abcd-12345678abcd", "stage": "Deploy", "action-execution-id": "47f821c5-a902-44b2-ae61-b878d31ecd21", "action": "Deploy", "state": "ABANDONED", "region": "us-west-2", "type": { "owner": "AWS", "provider": "CodeDeploy", "category": "Deploy", "version": "1" }, "version": 3.0, "pipeline-execution-attempt": 1.0 } }

Création d'une règle qui envoie une notification sur un événement de pipeline

Une règle surveille certains événements, puis les achemine vers les AWS cibles que vous choisissez. Vous pouvez créer une règle qui exécute une AWS action automatiquement lorsqu'une autre AWS action se produit, ou une règle qui exécute une AWS action régulièrement selon un calendrier défini.

Envoyer une notification lorsque l'état du pipeline change (console)

Ces étapes indiquent comment utiliser la EventBridge console pour créer une règle permettant d'envoyer des notifications de modifications CodePipeline.

Pour créer une EventBridge règle qui cible votre pipeline avec une source Amazon S3
  1. Ouvrez la EventBridge console Amazon à l'adresse https://console.aws.amazon.com/events/.

  2. Dans le volet de navigation, choisissez Règles. Laissez le bus par défaut sélectionné ou choisissez un bus d'événements. Choisissez Créer une règle.

  3. Dans Nom, saisissez le nom de votre règle.

  4. Sous Type de règle, choisissez Règle avec un modèle d'événement. Choisissez Suivant.

  5. Sous Modèle d'événement, sélectionnez AWS services.

  6. Depuis la liste déroulante Type d'événement, choisissez le niveau de changement d'état pour la notification.

    • Pour une règle qui s'applique aux événements au niveau du pipeline, choisissez CodePipelinePipeline Execution State Change.

    • Pour une règle qui s'applique aux événements au niveau de l'CodePipelineétape, choisissez Stage Execution State Change.

    • Pour une règle qui s'applique aux événements de niveau action, choisissez CodePipelineAction Execution State Change.

  7. Spécifiez les modifications d'état auxquelles la règle s'applique :

    • Pour une règle qui s'applique à tous les changements d'état, choisissez Tous les états.

    • Pour une règle qui s'applique à certaines modifications d'état uniquement, choisissez État(s) spécifique(s), puis sélectionnez une ou plusieurs valeurs d'état dans la liste.

  8. Pour les modèles d'événements plus détaillés que ne le permettent les sélecteurs, vous pouvez également utiliser l'option Modifier le modèle dans la fenêtre Modèle d'événement pour désigner un modèle d'événement au JSON format.

    Note

    Sauf indication contraire, le modèle d'événement est créé pour tous les états pipelines/stages/actions et.

    Pour des modèles d'événements plus détaillés, vous pouvez copier et coller les exemples de modèles d'événements suivants dans la fenêtre Modèles d'événements.

    • Utilisez cet exemple de modèle d'événement pour capturer les actions de déploiement et de build échouées parmi tous les pipelines.

      { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Action Execution State Change" ], "detail": { "state": [ "FAILED" ], "type": { "category": ["Deploy", "Build"] } } }
    • Utilisez cet exemple de modèle d'événement pour capturer les actions rejetés ou en échec d'approbation parmi tous les pipelines.

      { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Action Execution State Change" ], "detail": { "state": [ "FAILED" ], "type": { "category": ["Approval"] } } }
    • Utilisez cet exemple de modèle d'événement pour capturer tous les événements depuis les pipelines spécifiés.

      { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Pipeline Execution State Change", "CodePipeline Action Execution State Change", "CodePipeline Stage Execution State Change" ], "detail": { "pipeline": ["myPipeline", "my2ndPipeline"] } }
  9. Choisissez Suivant.

  10. Dans Types de cibles, sélectionnez AWS service.

  11. Dans Sélectionnez une cible, choisissez CodePipeline. Dans Pipeline ARN, entrez le pipeline ARN à démarrer selon cette règle.

    Note

    Pour obtenir le pipelineARN, exécutez la get-pipeline commande. Le pipeline ARN apparaît dans la sortie. Il est créé dans ce format :

    arn:aws:codepipeline :region:account:pipeline-name

    Exemple de pipeline ARN :

    arn:aws:codepipeline:us-east- 2:80398 : EXAMPLE MyFirstPipeline

  12. Pour créer ou spécifier un rôle de IAM service qui EventBridge autorise l'appel de la cible associée à votre EventBridge règle (dans ce cas, la cible est CodePipeline) :

    • Choisissez Créer un nouveau rôle pour cette ressource spécifique afin de créer un rôle de service qui vous EventBridge autorise à démarrer les exécutions de votre pipeline.

    • Choisissez Utiliser un rôle existant pour saisir un rôle de service qui vous EventBridge autorise à démarrer les exécutions de votre pipeline.

  13. Choisissez Suivant.

  14. Sur la page Tags, choisissez Next.

  15. Sur la page Réviser et créer, passez en revue la configuration des règles. Si la règle vous convient, choisissez Créer une règle.

Envoyer une notification lorsque l'état du pipeline change (CLI)

Ces étapes montrent comment utiliser la règle CLI pour créer un CloudWatch événement afin d'envoyer des notifications de modifications CodePipeline.

Pour utiliser le AWS CLI pour créer une règle, appelez la put-rule commande en spécifiant :

  • Un nom qui identifie de façon unique la règle que vous créez. Ce nom doit être unique pour tous les pipelines que vous créez CodePipeline associés à votre AWS compte.

  • Le modèle d'événement pour la source et les champs de détails utilisés par la règle. Pour plus d'informations, consultez Amazon EventBridge et Event Patterns.

Pour créer une EventBridge règle avec CodePipeline comme source d'événement
  1. Appelez la commande put-rule pour créer une règle spécifiant le modèle d'événement. (Voir les tables précédentes pour obtenir les états valides.)

    L'exemple de commande suivant --event-pattern permet de créer une règle appelée “MyPipelineStateChanges” qui émet l' CloudWatch événement lorsqu'une exécution de pipeline échoue pour le pipeline nommé « »myPipeline.

    aws events put-rule --name "MyPipelineStateChanges" --event-pattern "{\"source\":[\"aws.codepipeline\"],\"detail-type\":[\"CodePipeline Pipeline Execution State Change\"],\"detail\":{\"pipeline\":[\"myPipeline\"],\"state\":[\"FAILED\"]}}"
  2. Appelez la put-targets commande et incluez les paramètres suivants :

    • Le paramètre --rule s'utilise avec le la règle rule_name que vous avez créée à l'aide de la commande put-rule.

    • Le --targets paramètre est utilisé avec la liste Id des cibles dans la liste des cibles et avec ARN la SNS rubrique Amazon.

    L'exemple de commande suivant spécifie que pour la règle appelée MyPipelineStateChanges, l'Id cible est composé du numéro un, ce qui indique qu'il s'agit de la règle 1 dans une liste de cibles pour la règle. La commande sample fournit également un exemple ARN pour le SNS sujet Amazon.

    aws events put-targets --rule MyPipelineStateChanges --targets Id=1,Arn=arn:aws:sns:us-west-2:11111EXAMPLE:MyNotificationTopic
  3. Ajoutez des autorisations EventBridge permettant d'utiliser le service cible désigné pour appeler la notification. Pour plus d'informations, consultez Utiliser des politiques basées sur les ressources pour Amazon. EventBridge