

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
<a name="detect-state-changes-cloudwatch-events"></a>



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 ?](https://docs.aws.amazon.com/eventbridge/latest/userguide/) 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 est le même service sous-jacent et la même API, mais EventBridge ils EventBridge fournissent davantage 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'`version`entré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'appel d'**GetPipelineExecution**API dans la [référence AWS CodePipeline d'API](https://docs.aws.amazon.com/codepipeline/latest/APIReference/).
+ L'`pipeline-execution-attempt`entré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 en`detailType`. Pour plus d'informations, reportez-vous à l'appel **PutEvents** d'API dans le [Amazon EventBridge API Reference](https://docs.aws.amazon.com/eventbridge/latest/APIReference/).

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

**Topics**
+ [Types de détails](#detect-state-events-types)
+ [Événements au niveau du pipeline](#detect-state-events-pipeline)
+ [Événements au niveau de la scène](#detect-state-events-stage)
+ [Événements au niveau de l'action](#detect-state-events-action)
+ [Création d'une règle qui envoie une notification sur un événement de pipeline](#create-cloudwatch-notifications)

## Types de détails
<a name="detect-state-events-types"></a>

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.


****  


- **CodePipeline Modification de l'état d'exécution du pipeline**
  - **State:** ANNULÉE / **Description:** L'exécution du pipeline a été annulée en raison de la mise à jour de la structure du pipeline.
  - **State:** ÉCHEC / **Description:** L'exécution de pipeline ne s'est pas terminée avec succès.
  - **State:** REPRISE / **Description:** Une exécution de pipeline échouée été retentée en réponse à l'appel d'API RetryStageExecution.
  - **State:** DÉMARRÉE / **Description:** L'exécution du pipeline est en cours d'exécution.
  - **State:** STOPPED / **Description:** Le processus d'arrêt aboutit et l'exécution du pipeline est arrêtée.
  - **State:** STOPPING / **Description:** 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.
  - **State:** RÉUSSI / **Description:** L'exécution de pipeline s'est terminée avec succès.
  - **State:** REMPLACÉE / **Description:** 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**
  - **State:** ANNULÉE / **Description:** L'étape a été annulée en raison de la mise à jour de la structure du pipeline.
  - **State:** ÉCHEC / **Description:** L'étape ne s'est pas terminée avec succès.
  - **State:** REPRISE / **Description:** Une étape échouée été retentée en réponse à l'appel d'API RetryStageExecution.
  - **State:** DÉMARRÉE / **Description:** L'étape est en cours d'exécution.
  - **State:** STOPPED / **Description:** Le processus d'arrêt aboutit et l'exécution de la phase est arrêtée.
  - **State:** STOPPING / **Description:** 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.
  - **State:** RÉUSSI / **Description:** L'étape s'est terminée avec succès.

- **CodePipeline Modification de l'état d'exécution de l'action**
  - **State:** ABANDONNÉ / **Description:** L'action est abandonnée en raison d'une demande d'arrêt et d'abandon de l'exécution du pipeline.
  - **State:** ANNULÉE / **Description:** L'action a été annulée en raison de la mise à jour de la structure du pipeline.
  - **State:** ÉCHEC / **Description:** Pour les action d'approbation, l'état FAILED signifie que l'action a été rejetée par le réviseur ou a échoué en raison d'une configuration d'action incorrecte.
  - **State:** DÉMARRÉE / **Description:** L'action est en cours d'exécution.
  - **State:** RÉUSSI / **Description:** L'action s'est terminée avec succès.



## Événements au niveau du pipeline
<a name="detect-state-events-pipeline"></a>

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

**Topics**
+ [Événement Pipeline STARTED](#detect-state-events-pipeline-started)
+ [Événement d'arrêt du pipeline](#detect-state-events-pipeline-stopping)
+ [Événement PIPELINE SUCCED](#detect-state-events-pipeline-succeeded)
+ [PIPELINE SUCCEDED (exemple avec des balises Git)](#w2aac42c13c29c15)
+ [Événement d'échec du pipeline](#detect-state-events-pipeline-failed)
+ [ÉCHEC DU PIPELINE (exemple avec des balises Git)](#w2aac42c13c29c23)

### Événement Pipeline STARTED
<a name="detect-state-events-pipeline-started"></a>

 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'ID de l'événement et le `account` champ représente l'ID 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": {}
}
```

------

### Événement d'arrêt du pipeline
<a name="detect-state-events-pipeline-stopping"></a>

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"
    }
}
```

### Événement PIPELINE SUCCED
<a name="detect-state-events-pipeline-succeeded"></a>

 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 SUCCEDED (exemple avec des balises Git)
<a name="w2aac42c13c29c15"></a>

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 ou`branch-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
    }
}
```

### Événement d'échec du pipeline
<a name="detect-state-events-pipeline-failed"></a>

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"
    }
```

------

### ÉCHEC DU PIPELINE (exemple avec des balises Git)
<a name="w2aac42c13c29c23"></a>

À 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 ou`branch-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
<a name="detect-state-events-stage"></a>

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.

**Topics**
+ [Événement Stage STARTED](#detect-state-events-stage-started)
+ [Événement Stage STOPPING](#detect-state-events-stage-stopping)
+ [événement Stage STOPPED](#detect-state-events-stage-stopped)
+ [Reprise de l'étape après une nouvelle tentative](#w2aac42c13c31c15)

### Événement Stage STARTED
<a name="detect-state-events-stage-started"></a>

Lorsque l'exécution d'une étape commence, 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'étape`Prod`.

------
#### [ 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"
                }
            }
        ]
    }
}
```

------

### Événement Stage STOPPING
<a name="detect-state-events-stage-stopping"></a>

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'étape`Deploy`.

```
{
    "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
    }
}
```

### événement Stage STOPPED
<a name="detect-state-events-stage-stopped"></a>

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'étape`Deploy`.

```
{
    "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
    }
}
```

### Reprise de l'étape après une nouvelle tentative
<a name="w2aac42c13c31c15"></a>

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
<a name="detect-state-events-action"></a>

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.

**Topics**
+ [Événement Action STARTED](#detect-state-events-action-started)
+ [Événement Action SUCCEDED](#detect-state-events-action-succeeded)
+ [Événement d'échec de l'action](#detect-state-events-action-failed)
+ [Événement Action ABANDONNED](#detect-state-events-action-abandoned)

### Événement Action STARTED
<a name="detect-state-events-action-started"></a>

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éploiement`myAction`.

------
#### [ 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": {}
}
```

------

### Événement Action SUCCEDED
<a name="detect-state-events-action-succeeded"></a>

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": {}
}
```

------

### Événement d'échec de l'action
<a name="detect-state-events-action-failed"></a>

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"
    }
}
```

------

### Événement Action ABANDONNED
<a name="detect-state-events-action-abandoned"></a>

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
<a name="create-cloudwatch-notifications"></a>

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.

**Topics**
+ [Envoyer une notification lorsque l'état du pipeline change (console)](#monitoring-cloudwatch-events-console)
+ [Envoyer une notification lorsque l'état du pipeline change (CLI)](#monitoring-cloudwatch-events-cli)

### Envoyer une notification lorsque l'état du pipeline change (console)
<a name="monitoring-cloudwatch-events-console"></a>

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/](https://console.aws.amazon.com/events/).

1. Dans le panneau de navigation, choisissez **Rules**. Laissez le bus par défaut sélectionné ou choisissez un bus d'événements. Choisissez **Créer une règle**.

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

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

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

1. 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**.

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

1. 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 format JSON.
**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**.
   +   
**Example**  

     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"]
         }
       }
     }
     ```
   +   
**Example**  

     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"]
         }
       }
     }
     ```
   +   
**Example**  

     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"]
       }
     }
     ```

1. Choisissez **Suivant**.

1. Dans **Types de cibles**, sélectionnez **AWS service**.

1. Dans **Sélectionnez une cible**, choisissez **CodePipeline**. Dans **ARN du pipeline**, entrez l'ARN du pipeline à démarrer selon cette règle.
**Note**  
Pour l'obtenir l'ARN de pipeline, exécutez la commande **get-pipeline**. L'ARN de pipeline apparaît dans la sortie. Il est créé dans ce format :   
arn:aws:codepipeline : : : {{region}} {{account}} {{pipeline-name}}  
Exemple d'ARN de pipeline :  
arn:aws:codepipeline:us-east- 2:80398 EXEMPLE : MyFirstPipeline 

1. Pour créer ou spécifier un rôle de service IAM autorisant EventBridge 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.

1. Choisissez **Suivant**.

1. Sur la page **Tags**, choisissez **Next**.

1. 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)
<a name="monitoring-cloudwatch-events-cli"></a>

Ces étapes montrent comment utiliser la CLI pour créer une règle d' CloudWatch événements 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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html).

**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 permet **--event-pattern** 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\"]}}"
   ```

1. 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 celle `ARN` de la rubrique Amazon SNS.

   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 la rubrique Amazon SNS.

   ```
   aws events put-targets --rule MyPipelineStateChanges --targets Id=1,Arn=arn:aws:sns:us-west-2:11111EXAMPLE:MyNotificationTopic
   ```

1. 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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-use-resource-based.html). EventBridge