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'
version
entrée initiale indique le numéro de version de l'événement. -
L'entrée
version
sousdetail
du pipeline indique le numéro de version de la structure du pipeline. -
L'entrée
execution-id
sousdetail
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-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 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é.
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 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'RetryStageExecution APIappel. |
|
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'RetryStageExecution APIappel. |
|
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.
Rubriques
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éé.
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.
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.
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.
É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.
Rubriques
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
.
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.
Rubriques
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
.
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.
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"
.
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.
Rubriques
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
Ouvrez la EventBridge console Amazon à l'adresse https://console.aws.amazon.com/events/
. -
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.
-
Dans Nom, saisissez 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 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 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.
-
-
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 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"] } }
-
-
Choisissez Suivant.
-
Dans Types de cibles, sélectionnez AWS service.
-
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
-
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.
-
-
Choisissez Suivant.
-
Sur la page Tags, choisissez Next.
-
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
-
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\"]}}"
-
Appelez la put-targets commande et incluez les paramètres suivants :
-
Le paramètre
--rule
s'utilise avec le la règlerule_name
que vous avez créée à l'aide de la commande put-rule. -
Le
--targets
paramètre est utilisé avec la listeId
des cibles dans la liste des cibles et avecARN
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 exempleARN
pour le SNS sujet Amazon.aws events put-targets --rule MyPipelineStateChanges --targets Id=1,Arn=arn:aws:sns:us-west-2:11111EXAMPLE:MyNotificationTopic
-
-
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