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 CodePipeline les événements dans EventBridge, qui fournit un flux de données en temps réel provenant de vos propres applications, applications 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 diffuse en temps quasi réel un flux d'événements système décrivant l'évolution des 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 la solution préférée pour gérer vos événements. Amazon CloudWatch Events et Amazon EventBridge constituent le même service sous-jacent et la même API, mais EventBridge proposent davantage de fonctionnalités. Les modifications que vous apportez dans CloudWatch Événements ou 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 des événements. Chaque règle est exprimée sous la forme d'un modèle d'événement 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 qui est 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, lancer des événements ou prendre d'autres mesures. Lorsque vous ajoutez votre cible, vous devez également lui accorder des autorisations EventBridge pour lui permettre d'invoquer 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
versionsousdetaildu pipeline indique le numéro de version de la structure du pipeline. -
L'entrée
execution-idsousdetaildu pipeline indique l'ID d'exécution pour l'exécution du pipeline ayant causé le changement d'état. Reportez-vous à l'appel d'GetPipelineExecutionAPI dans la référence AWS CodePipeline d'API. -
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 de votre site Compte AWS change. Les événements sont émis au moins une fois de manière 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énement avec certaines variantes. Par exemple, le detail-type champ est converti endetailType. Pour plus d'informations, reportez-vous à l'appel PutEvents d'API dans le manuel 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é.
Rubriques
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 en detailType date de traitement des événements.
| Type de détail | State | Description |
|---|---|---|
| CodePipeline Changement de l'état d'exécution du pipeline | ANNULÉE | L'exécution du pipeline a été annulée en raison de la mise à jour de la structure du pipeline. |
| ÉCHEC | L'exécution de pipeline ne s'est pas terminée avec succès. | |
| REPRISE | Une exécution de pipeline échouée été retentée en réponse à l'appel d'API RetryStageExecution. |
|
| DÉMARRÉE | 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. | |
| RÉUSSI | L'exécution de pipeline s'est terminée avec succès. | |
| REMPLACÉE |
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 Changement d'état d'exécution de la phase | ANNULÉE | L'étape a été annulée en raison de la mise à jour de la structure du pipeline. |
| ÉCHEC | L'étape ne s'est pas terminée avec succès. | |
| REPRISE | Une étape échouée été retentée en réponse à l'appel d'API RetryStageExecution. |
|
| DÉMARRÉE | 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. | |
| RÉUSSI | L'étape s'est terminée avec succès. | |
| CodePipeline Changement de l'état d'exécution de l'action | ABANDONNÉ | L'action est abandonnée en raison d'une demande d'arrêt et d'abandon de l'exécution du pipeline. |
| ANNULÉE | L'action a été annulée en raison de la mise à jour de la structure du pipeline. | |
| ÉCHEC | 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. | |
| DÉMARRÉE | L'action est en cours d'exécution. | |
| RÉUSSI | L'action s'est terminée avec succès. |
Pipeline-level événements
Pipeline-level des événements sont émis lors d'un changement d'état pour l'exécution d'un pipeline.
Rubriques
Évènement Pipeline STARTED
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éé.
événement Pipeline STOPPING
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 SUCCEE
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.
Pipeline réussi (exemple avec des balises Git)
Lorsqu'une étape de l'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ù execution-trigger est configuré pour les balises Git.
Note
Le execution-trigger champ comportera l'une tag-name ou l'autre des deuxbranch-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 Pipeline FAILED
Lorsqu'une exécution de pipeline échoue, il é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.
ÉCHEC DU PIPELINE (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ù execution-trigger est configuré pour les balises Git.
Note
Le execution-trigger champ comportera l'une tag-name ou l'autre des deuxbranch-name, selon le type d'événement qui a déclenché le pipeline.
Stage-level événements
Stage-level des événements sont émis lorsqu'il y a un changement d'état pour l'exécution d'une étape.
Rubriques
Événement Stage STARTED
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.
Événement Stage STOPPING
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 } }
Événement Stage STOPLED
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 } }
Reprise de l'étape après une nouvelle tentative
Lorsque l'exécution d'une étape est reprise 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 lors de 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 } }
Action-level événements
Action-level des événements sont émis lorsqu'il y a un changement d'état pour l'exécution d'une action.
Rubriques
Événement Action STARTED
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.
Événement Action SUCCEE
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 spécifie la région pour l'événement de pipeline. Le region champ situé sous detail cette section indique la région de l'action.
Événement Action FAILED
Lorsqu'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".
Événement Action ABANDONED
Lorsqu'une 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 concernant 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.
Rubriques
Envoyer une notification lorsque l'état du pipeline change (console)
Ces étapes montrent comment utiliser la EventBridge console pour créer une règle afin d'envoyer des notifications de modifications apportées à CodePipeline.
Pour créer une EventBridge règle qui cible votre pipeline avec une source Amazon S3
Ouvrez la EventBridge console Amazon à l'adresse https://console.aws.amazon.com/events/
. -
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.
-
Dans Nom, entrez le nom de votre règle.
-
Sous Type de règle, choisissez Règle avec un modèle d'événement. Choisissez Suivant.
-
Sous Modèle d'événement, sélectionnez AWS les services.
-
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 CodePipeline Pipeline Execution State Change.
-
Pour une règle qui s'applique aux événements au niveau de l'étape, choisissez CodePipeline Stage Execution State Change.
-
Pour une règle qui s'applique aux événements au niveau de l'action, choisissez CodePipeline Action Execution State Change.
-
-
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.
-
-
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 pipelines/stages /actions et les états.
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èle d'événement.
-
Exemple
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"] } } } -
Exemple
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"] } } } -
Exemple
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"] } }
-
-
Choisissez Suivant.
-
Dans Types de cibles, choisissez AWS service.
-
Dans Sélectionnez une cible, choisissez CodePipeline. Dans Pipeline ARN, entrez l'ARN du pipeline pour le 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 : : :
regionaccountpipeline-nameExemple d'ARN de pipeline :
arn:aws:codepipeline:us-east- 2:80398 EXAMPLE:MyFirstPipeline
-
Pour créer ou spécifier un rôle de service IAM qui accorde EventBridge des autorisations pour appeler 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 donne EventBridge les autorisations nécessaires pour démarrer les exécutions de votre pipeline.
-
Choisissez Utiliser le rôle existant pour saisir un rôle de service qui autorise EventBridge le démarrage des exécutions de votre pipeline.
-
-
Choisissez Suivant.
-
Sur la page Tags, choisissez Suivant.
-
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 l'interface de ligne de commande pour créer une règle d' CloudWatch événements afin d'envoyer des notifications de modifications dans 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 et qui CodePipeline sont 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
-
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 en cas d'échec de l'exécution d'un pipeline 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\"]}}" -
Appelez la put-targets commande et incluez les paramètres suivants :
-
Le paramètre
--rules'utilise avec le la règlerule_nameque vous avez créée à l'aide de la commande put-rule. -
Le
--targetsparamètre est utilisé avec la listeIddes cibles dans la liste des cibles et dansARNla rubrique Amazon SNS.
L'exemple de commande suivant spécifie que pour la règle appelée
MyPipelineStateChanges, l'Idcible 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. L'exemple de commande spécifie également un exempleARNpour la rubrique Amazon SNS.aws events put-targets --rule MyPipelineStateChanges --targets Id=1,Arn=arn:aws:sns:us-west-2:11111EXAMPLE:MyNotificationTopic -
-
Ajoutez des autorisations EventBridge pour utiliser le service cible désigné afin d'appeler la notification. Pour plus d'informations, consultez la section Utilisation de politiques basées sur les ressources pour Amazon. EventBridge