Monitoraggio CodePipeline degli eventi - AWS CodePipeline

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Monitoraggio CodePipeline degli eventi

Puoi monitorare CodePipeline gli eventi in EventBridge, il che fornisce un flusso di dati in tempo reale dalle tue applicazioni, applicazioni software-as-a-service (SaaS) e. Servizi AWS EventBridge indirizza tali dati verso obiettivi come Amazon AWS Lambda Simple Notification Service. Questi eventi sono gli stessi che compaiono in Amazon CloudWatch Events, che fornisce un flusso quasi in tempo reale di eventi di sistema che descrivono i cambiamenti nelle AWS risorse. Per ulteriori informazioni, consulta What Is Amazon EventBridge? nella Amazon EventBridge User Guide.

Nota

Amazon EventBridge è il modo preferito per gestire i tuoi eventi. Amazon CloudWatch Events e Amazon EventBridge sono lo stesso servizio di baseAPI, ma EventBridge offrono più funzionalità. Le modifiche che apporti in CloudWatch Events o EventBridge verranno visualizzate in ogni console.

Gli eventi sono composti da regole. Una regola viene configurata scegliendo quanto segue:

  • Schema di eventi. Ogni regola è espressa come un pattern di eventi con l'origine e il tipo di eventi da monitorare e le destinazioni degli eventi. Per monitorare gli eventi, si crea una regola con il servizio che si sta monitorando come origine dell'evento, ad esempio CodePipeline. Ad esempio, è possibile creare una regola con un pattern di eventi da utilizzare CodePipeline come fonte di eventi per attivare la regola in caso di cambiamenti nello stato di una pipeline, di una fase o di un'azione.

  • Destinazioni. La nuova regola riceve un servizio selezionato come la destinazione dell'evento. Potresti voler configurare un servizio di destinazione per inviare notifiche, acquisire informazioni sullo stato, intraprendere azioni correttive, avviare eventi o intraprendere altre azioni. Quando aggiungi il tuo target, devi anche concedere le autorizzazioni per consentirgli EventBridge di richiamare il servizio di destinazione selezionato.

Ogni tipo di evento di modifica dello stato di esecuzione genera notifiche con contenuto del messaggio specifico, dove:

  • La version voce iniziale mostra il numero di versione dell'evento.

  • La voce version nella pipeline detail mostra il numero di versione della struttura della pipeline.

  • La voce execution-id nella pipeline detail mostra l'ID di esecuzione per l'esecuzione della pipeline che ha causato la modifica dello stato. Fate riferimento alla GetPipelineExecution API chiamata nel AWS CodePipeline APIReference.

  • La pipeline-execution-attempt voce mostra il numero di tentativi, o nuovi tentativi, per l'ID di esecuzione specifico.

CodePipeline segnala un evento EventBridge ogni volta che lo stato di una risorsa nell'utente Account AWS cambia. Gli eventi vengono emessi su at-least-once base garantita per le seguenti risorse:

  • Esecuzioni pipeline

  • Esecuzioni sceniche

  • Esecuzioni di operazioni

Gli eventi vengono emessi EventBridge con il modello e lo schema degli eventi descritti sopra. Per gli eventi elaborati, ad esempio gli eventi ricevuti tramite notifiche configurate nella console Developer Tools, il messaggio relativo all'evento include campi relativi al modello di evento con alcune variazioni. Ad esempio, il detail-type campo viene convertito indetailType. Per ulteriori informazioni, consulta la PutEvents API chiamata in Amazon EventBridge API Reference.

I seguenti esempi mostrano eventi per CodePipeline. Ove possibile, ogni esempio mostra lo schema per un evento emesso insieme allo schema per un evento elaborato.

Tipi di dettaglio

Quando configurate gli eventi da monitorare, potete scegliere il tipo di dettaglio per l'evento.

Puoi configurare le notifiche da inviare quando lo stato cambia per:

  • Pipeline specificate o tutte le pipeline. Esegui il controllo utilizzando "detail-type": "CodePipeline Pipeline Execution State Change".

  • Fasi specificate o tutte le fasi, all'interno di una pipeline specificata o tutte le pipeline. Esegui il controllo utilizzando "detail-type": "CodePipeline Stage Execution State Change".

  • Operazioni specificate o tutte le operazioni, all'interno di una determinata fase o di tutte le fasi, all'interno di una pipeline specificata o di tutte le pipeline. Esegui il controllo utilizzando "detail-type": "CodePipeline Action Execution State Change".

Nota

Gli eventi emessi da EventBridge contengono il detail-type parametro, che viene convertito in detailType quando gli eventi vengono elaborati.

Tipo di dettaglio Stato Descrizione
CodePipeline Modifica dello stato di esecuzione della pipeline CANCELED L'esecuzione della pipeline è stata annullata perché la struttura della pipeline è stata aggiornata.
FAILED L'esecuzione della pipeline non è stata completata.
RESUMED Un'esecuzione della pipeline non riuscita è stata ritentata in risposta alla chiamata. RetryStageExecution API
STARTED L'esecuzione della pipeline è attualmente in corso.
STOPPED Il processo di arresto è completo e l'esecuzione della pipeline viene interrotta.
STOPPING L'esecuzione della pipeline si interrompe a causa di una richiesta di arrestare e attendere o interrompere e abbandonare l'esecuzione della pipeline.
SUCCEEDED L'esecuzione della pipeline è stata completata.
SUPERSEDED

Mentre l'esecuzione di questa pipeline era in attesa del completamento della fase successiva, una nuova esecuzione della pipeline è avanzata e ha continuato nella pipeline.

CodePipeline Modifica dello stato di esecuzione della fase CANCELED La fase è stata annullata perché la struttura della pipeline è stata aggiornata.
FAILED La fase non è stata completata.
RESUMED Una fase fallita è stata riprovata in risposta alla RetryStageExecution API chiamata.
STARTED La fase è attualmente in esecuzione.
STOPPED Il processo di arresto è completo e l'esecuzione dello stage viene interrotta.
STOPPING L'esecuzione dello stage si interrompe a causa di una richiesta di arrestare e attendere o interrompere e abbandonare l'esecuzione della pipeline.
SUCCEEDED La fase è stata completata.
CodePipeline Modifica dello stato di esecuzione dell'azione ABANDONED L'azione è abbandonata a causa di una richiesta di arrestare e abbandonare l'esecuzione della pipeline.
CANCELED L'operazione è stata annullata perché la struttura della pipeline è stata aggiornata.
FAILED Per le azioni di approvazione, lo FAILED stato indica che l'azione è stata rifiutata dal revisore o non è riuscita a causa di una configurazione errata dell'azione.
STARTED L'operazione è attualmente in esecuzione.
SUCCEEDED L'operazione è stata completata.

Eventi a livello di pipeline

Gli eventi a livello di pipeline vengono emessi quando si verifica un cambiamento di stato per l'esecuzione di una pipeline.

STARTEDEvento Pipeline

Quando inizia l'esecuzione di una pipeline, emette un evento che invia notifiche con il seguente contenuto. Questo esempio è per la pipeline denominata "myPipeline" nella regione. us-east-1 Il id campo rappresenta l'ID dell'evento e il account campo rappresenta l'ID dell'account in cui viene creata la pipeline.

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

Evento Pipeline STOPPING

Quando l'esecuzione di una pipeline si interrompe, emette un evento che invia notifiche con il seguente contenuto. Questo esempio è per la pipeline denominata myPipeline nella regione. us-west-2

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

Evento Pipeline SUCCEEDED

Quando l'esecuzione di una pipeline ha esito positivo, emette un evento che invia notifiche con il seguente contenuto. Questo esempio riguarda la pipeline denominata myPipeline nella regione. us-east-1

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 (esempio con tag Git)

Quando l'esecuzione di una pipeline ha una fase che è stata ritentata e ha avuto successo, emette un evento che invia notifiche con il seguente contenuto. Questo esempio è per la pipeline denominata myPipeline nella eu-central-1 regione in cui execution-trigger è configurata per i tag Git.

Nota

Il execution-trigger campo avrà una delle due opzioni tag-name oppurebranch-name, a seconda del tipo di evento che ha attivato la 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 } }

Evento Pipeline FAILED

Quando l'esecuzione di una pipeline fallisce, emette un evento che invia notifiche con il seguente contenuto. Questo esempio è per la pipeline denominata "myPipeline" nella regione. us-west-2

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 (esempio con tag Git)

A meno che non fallisca nella fase di origine, per una pipeline configurata con trigger, emette un evento che invia notifiche con il seguente contenuto. Questo esempio è per la pipeline denominata myPipeline nella eu-central-1 regione in cui execution-trigger è configurata per i tag Git.

Nota

Il execution-trigger campo avrà una delle due opzioni tag-name oppurebranch-name, a seconda del tipo di evento che ha attivato la 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" }

Eventi a livello di palcoscenico

Gli eventi a livello di fase vengono emessi quando si verifica un cambio di stato per l'esecuzione di una fase.

Evento scenico STARTED

Quando inizia l'esecuzione di una fase, emette un evento che invia notifiche con il seguente contenuto. Questo esempio è per la pipeline denominata "myPipeline" nella us-east-1 regione, per lo stage. 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" } } ] } }

Evento scenico STOPPING

Quando l'esecuzione di una fase si interrompe, emette un evento che invia notifiche con il seguente contenuto. Questo esempio è per la pipeline denominata myPipeline nella us-west-2 regione, per lo stage. 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 } }

Evento scenico STOPPED

Quando l'esecuzione di una fase viene interrotta, emette un evento che invia notifiche con il seguente contenuto. Questo esempio è per la pipeline denominata myPipeline nella us-west-2 regione, per lo stage. 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 } }

Fase RESUMED dopo fase, riprova

Quando l'esecuzione di una fase viene ripresa e una fase è stata ritentata, emette un evento che invia notifiche con il seguente contenuto.

Quando una fase è stata ritentata, il stage-last-retry-attempt-time campo viene visualizzato, come mostrato nell'esempio. Il campo viene visualizzato in tutti gli eventi dello stage se è stato eseguito un nuovo tentativo.

Nota

Il stage-last-retry-attempt-time campo sarà presente in tutti gli eventi della fase successivi dopo che una fase sarà stata riprovata.

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

Eventi a livello di azione

Gli eventi a livello di azione vengono emessi quando si verifica un cambiamento di stato per l'esecuzione di un'azione.

Evento di azione STARTED

Quando inizia l'esecuzione di un'azione, emette un evento che invia notifiche con il seguente contenuto. Questo esempio riguarda la pipeline denominata myPipeline nella us-east-1 regione, per l'azione di distribuzione. 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": {} }

Evento di azione SUCCEEDED

Quando l'esecuzione di un'azione ha esito positivo, emette un evento che invia notifiche con il seguente contenuto. Questo esempio riguarda la pipeline denominata "myPipeline" nella us-west-2 regione, per l'azione di origine. "Source" Per questo tipo di evento, sono disponibili due region campi diversi. Il region campo dell'evento specifica la regione per l'evento della pipeline. Il region campo sotto la detail sezione specifica la regione per l'azione.

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

Evento d'azione FAILED

Quando l'esecuzione di un'azione fallisce, emette un evento che invia notifiche con il seguente contenuto. Questo esempio riguarda la pipeline denominata "myPipeline" nella us-west-2 regione, per l'azione. "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" } }

Evento di azione ABANDONED

Quando l'esecuzione di un'azione viene abbandonata, emette un evento che invia notifiche con il seguente contenuto. Questo esempio riguarda la pipeline denominata "myPipeline" nella us-west-2 regione, per l'azione. "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 } }

Crea una regola che invia una notifica su un evento Pipeline

Una regola rileva determinati eventi e poi li indirizza verso AWS obiettivi scelti dall'utente. È possibile creare una regola che esegue un' AWS azione automaticamente quando si verifica un'altra AWS azione o una regola che esegue un' AWS azione regolarmente secondo una pianificazione prestabilita.

Invia una notifica quando lo stato della pipeline cambia (console)

Questi passaggi mostrano come utilizzare la EventBridge console per creare una regola per inviare notifiche di modifiche. CodePipeline

Per creare una EventBridge regola che abbia come target la tua pipeline con una fonte Amazon S3
  1. Apri la EventBridge console Amazon all'indirizzo https://console.aws.amazon.com/events/.

  2. Nel pannello di navigazione, scegli Regole. Lascia selezionato il bus predefinito o scegli un bus per eventi. Scegli Crea regola.

  3. In Nome, inserisci un nome per la regola.

  4. In Tipo di regola, scegli Regola con un modello di evento. Scegli Next (Successivo).

  5. In Schema di evento, scegli AWS i servizi.

  6. Dall'elenco a discesa Event Type (Tipo di evento), scegliere il livello di modifica dello stato per la notifica.

    • Per una regola che si applica agli eventi a livello di pipeline, scegliete CodePipelinePipeline Execution State Change.

    • Per una regola che si applica agli eventi a livello di fase, scegliete Stage Execution State Change. CodePipeline

    • Per una regola che si applica agli eventi a livello di azione, scegliete CodePipelineAction Execution State Change.

  7. Specificare le modifiche di stato cui si applica la regola:

    • Per una regola valida per tutte le modifiche di stato, scegliere Any state (Qualsiasi stato).

    • Per una regola valida solo per alcune modifiche di stato, scegliere Specific state(s) (Stati specifici), quindi scegliere uno o più valori di stato dall'elenco.

  8. Per i modelli di eventi più dettagliati di quelli consentiti dai selettori, potete anche utilizzare l'opzione Modifica modello nella finestra Schema di evento per designare un modello di evento in formato. JSON

    Nota

    Se non diversamente specificato, il modello di evento viene creato per tutti pipelines/stages/actions gli stati.

    Per modelli di eventi più dettagliati, è possibile copiare e incollare il seguente esempio di pattern di eventi nella finestra Event pattern.

    • Utilizzare questo modello eventi di esempio per acquisire le operazioni di distribuzione e di compilazione non riuscite in tutte le pipeline.

      { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Action Execution State Change" ], "detail": { "state": [ "FAILED" ], "type": { "category": ["Deploy", "Build"] } } }
    • Utilizzare questo modello eventi di esempio per acquisire tutte le operazioni di approvazione rifiutate o non riuscite in tutte le pipeline.

      { "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Action Execution State Change" ], "detail": { "state": [ "FAILED" ], "type": { "category": ["Approval"] } } }
    • Utilizzare questo modello eventi di esempio per acquisire tutti gli eventi dalle pipeline specificate.

      { "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. Scegli Next (Successivo).

  10. In Tipi di Target, scegli AWS service.

  11. In Seleziona un obiettivo, scegli CodePipeline. In Pipeline ARN, inserisci la pipeline ARN per la pipeline da avviare in base a questa regola.

    Nota

    Per ottenere la pipelineARN, esegui il comando. get-pipeline La pipeline ARN viene visualizzata nell'output. Il formato è il seguente:

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

    Pipeline di esempio: ARN

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

  12. Per creare o specificare un ruolo di IAM servizio che conceda le EventBridge autorizzazioni per richiamare l'obiettivo associato alla regola (in questo caso, l'obiettivo è): EventBridge CodePipeline

    • Scegli Crea un nuovo ruolo per questa risorsa specifica per creare un ruolo di servizio che ti dia EventBridge le autorizzazioni per avviare le esecuzioni della pipeline.

    • Scegli Usa il ruolo esistente per inserire un ruolo di servizio che ti dia EventBridge le autorizzazioni per avviare le esecuzioni della pipeline.

  13. Scegli Next (Successivo).

  14. Nella pagina Tag, scegli Avanti.

  15. Nella pagina Rivedi e crea, esamina la configurazione della regola. Se la regola ti soddisfa, scegli Create rule (Crea regola).

Invia una notifica quando lo stato della pipeline cambia () CLI

Questi passaggi mostrano come CLI utilizzare la regola CloudWatch Events per inviare notifiche di modifiche in CodePipeline.

Per utilizzare la AWS CLI per creare una regola, chiamate il put-rule comando, specificando:

  • Un nome che identifica in modo univoco la regola che stai creando. Questo nome deve essere univoco in tutte le pipeline che crei e CodePipeline associate al tuo AWS account.

  • Il modello eventi per i campi di origine e di dettaglio utilizzati dalla regola. Per ulteriori informazioni, consulta Amazon EventBridge e Event Patterns.

Per creare una EventBridge regola con CodePipeline come origine dell'evento
  1. Chiamare il comando put-rule per creare una regola specificando il modello eventi. (Consulta le tabelle precedenti per gli stati validi.)

    Il seguente comando di esempio utilizza --event-pattern per creare una regola chiamata “MyPipelineStateChanges” che emette l' CloudWatch evento quando l'esecuzione di una pipeline fallisce per la pipeline denominata ".» 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. Richiamate il put-targets comando e includete i seguenti parametri:

    • Il parametro --rule viene utilizzato con il rule_name che hai creato utilizzando put-rule.

    • Il --targets parametro viene utilizzato con l'elenco Id degli obiettivi nell'elenco degli obiettivi e con l'SNSargomento Amazon. ARN

    Il comando di esempio seguente specifica che per la regola denominata MyPipelineStateChanges, la destinazione Id è composta dal numero uno, per indicare che in un elenco di destinazioni per la regola questa è la destinazione 1. Il comando sample specifica anche un esempio ARN per l'SNSargomento Amazon.

    aws events put-targets --rule MyPipelineStateChanges --targets Id=1,Arn=arn:aws:sns:us-west-2:11111EXAMPLE:MyNotificationTopic
  3. Aggiungi le autorizzazioni per EventBridge utilizzare il servizio di destinazione designato per richiamare la notifica. Per ulteriori informazioni, consulta Utilizzo delle politiche basate sulle risorse per Amazon. EventBridge