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, dalle tue applicazioni Software-as-a-Service (SaaS) e. Servizi AWS EventBridge indirizza tali dati verso destinazioni come Amazon Simple Notification Service. AWS Lambda Questi eventi sono gli stessi che appaiono 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 Cos'è Amazon EventBridge? nella Guida per EventBridge l'utente di Amazon.
Nota
Amazon EventBridge è il modo preferito per gestire i tuoi eventi. Amazon CloudWatch Events e Amazon EventBridge sono lo stesso servizio e la stessa API di base, ma EventBridge offrono più funzionalità. Le modifiche apportate in CloudWatch Events o EventBridge verranno visualizzate in ciascuna console.
Gli eventi sono composti da regole. Una regola viene configurata scegliendo quanto segue:
-
Schema dell'evento. Ogni regola è espressa come modello di evento con l'origine e il tipo di eventi da monitorare e gli obiettivi degli eventi. Per monitorare gli eventi, crei una regola con il servizio che stai monitorando come origine dell'evento, ad esempio CodePipeline. Ad esempio, è possibile creare una regola con un modello di evento che viene utilizzato CodePipeline come origine dell'evento per attivare la regola in caso di modifiche allo 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
versionvoce iniziale mostra il numero di versione dell'evento. -
La voce
versionnella pipelinedetailmostra il numero di versione della struttura della pipeline. -
La voce
execution-idnella pipelinedetailmostra l'ID di esecuzione per l'esecuzione della pipeline che ha causato la modifica dello stato. Fate riferimento alla chiamata GetPipelineExecution API nell'AWS CodePipeline API Reference. -
La
pipeline-execution-attemptvoce mostra il numero di tentativi, o tentativi, per l'ID di esecuzione specifico.
CodePipeline segnala un evento EventBridge ogni volta che lo stato di una risorsa viene Account AWS modificato. Gli eventi vengono emessi in modo garantito almeno una volta 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 le notifiche configurate nella console Developer Tools, il messaggio dell'evento include campi relativi al modello di evento con alcune varianti. Ad esempio, il detail-type campo viene convertito indetailType. Per ulteriori informazioni, consulta la chiamata PutEvents API in Amazon EventBridge API Reference.
Gli esempi seguenti mostrano gli eventi per CodePipeline. Ove possibile, ogni esempio mostra lo schema per un evento emesso insieme allo schema per un evento elaborato.
Argomenti
Tipi di dettaglio
Quando si impostano gli eventi da monitorare, è possibile scegliere il tipo di dettaglio dell'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 | Description |
|---|---|---|
| CodePipeline Modifica dello stato di esecuzione della pipeline | CANCELED (ANNULLATO) | L'esecuzione della pipeline è stata annullata perché la struttura della pipeline è stata aggiornata. |
| NON RIUSCITO | L'esecuzione della pipeline non è stata completata. | |
| RIPRESA | È stato eseguito un nuovo tentativo di esecuzione della pipeline non riuscita in risposta alla chiamata API RetryStageExecution. |
|
| AVVIATA | 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. | |
| RIUSCITA | L'esecuzione della pipeline è stata completata. | |
| SOSTITUITA |
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 (ANNULLATO) | La fase è stata annullata perché la struttura della pipeline è stata aggiornata. |
| NON RIUSCITO | La fase non è stata completata. | |
| RIPRESA | È stato eseguito un nuovo tentativo di esecuzione della fase non riuscita in risposta alla chiamata API RetryStageExecution. |
|
| AVVIATA | 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. | |
| RIUSCITA | La fase è stata completata. | |
| CodePipeline Modifica dello stato di esecuzione dell'azione | ABBANDONATO | L'azione è abbandonata a causa di una richiesta di arrestare e abbandonare l'esecuzione della pipeline. |
| CANCELED (ANNULLATO) | L'operazione è stata annullata perché la struttura della pipeline è stata aggiornata. | |
| NON RIUSCITO | Per le operazioni di approvazione, lo stato NON RIUSCITA significa che l'operazione è stata rifiutata dal revisore o che non è riuscita a causa di un errore di configurazione dell'operazione. | |
| AVVIATA | L'operazione è attualmente in esecuzione. | |
| RIUSCITA | L'operazione è stata completata. |
Pipeline-level eventi
Pipeline-level gli eventi vengono emessi quando c'è un cambiamento di stato per l'esecuzione di una pipeline.
Argomenti
evento Pipeline STARTED
Quando viene avviata l'esecuzione di una pipeline, emette un evento che invia notifiche con il seguente contenuto. Questo esempio si riferisce alla 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.
Evento Pipeline STOPPING
Quando l'esecuzione di una pipeline si interrompe, emette un evento che invia notifiche con il seguente contenuto. Questo esempio si riferisce alla 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 si riferisce alla pipeline denominata myPipeline nella Regione. us-east-1
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 conterrà uno tag-name obranch-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, viene generato un evento che invia notifiche con il seguente contenuto. Questo esempio si riferisce alla pipeline denominata "myPipeline" nella regione. us-west-2
Pipeline NON RIUSCITA (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 conterrà uno tag-name obranch-name, a seconda del tipo di evento che ha attivato la pipeline.
Stage-level eventi
Stage-level gli eventi vengono emessi quando si verifica un cambiamento di stato per l'esecuzione di una fase.
Argomenti
Evento Stage STARTED
Quando inizia l'esecuzione di una fase, emette un evento che invia notifiche con il seguente contenuto. Questo esempio si riferisce alla pipeline denominata "myPipeline" nella us-east-1 Regione, per la fase. Prod
evento Stage STOPPING
Quando l'esecuzione di una fase si interrompe, emette un evento che invia notifiche con il seguente contenuto. Questo esempio si riferisce alla 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 Stage STOPPED
Quando l'esecuzione di una fase viene interrotta, emette un evento che invia notifiche con il seguente contenuto. Questo esempio si riferisce alla 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 RIPRESA dopo l'evento di ripetizione della fase
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 su 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 è stata ritentata.
{ "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 eventi
Action-level gli eventi vengono emessi quando c'è un cambiamento di stato per l'esecuzione di un'azione.
Evento Action STARTED
Quando viene avviata l'esecuzione di un'azione, emette un evento che invia notifiche con il seguente contenuto. Questo esempio si riferisce alla pipeline denominata myPipeline nella us-east-1 Regione, per l'azione di distribuzione. myAction
Evento Action 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 evento specifica la regione per l'evento della pipeline. Il region campo sotto la detail sezione specifica la regione per l'azione.
Evento Azione FALLITA
Quando l'esecuzione di un'azione fallisce, emette un evento che invia notifiche con il seguente contenuto. Questo esempio si riferisce alla pipeline denominata "myPipeline" nella us-west-2 Regione, per l'azione. "Deploy"
Azione: evento ABANDON
Quando l'esecuzione di un'azione viene abbandonata, emette un evento che invia notifiche con il seguente contenuto. Questo esempio si riferisce alla 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 della pipeline
Una regola controlla determinati eventi e poi li indirizza verso AWS obiettivi scelti dall'utente. È possibile creare una regola che esegue un' AWS azione automaticamente quando ne viene eseguita un'altra AWS o una regola che esegue un' AWS azione regolarmente in base a una pianificazione prestabilita.
Argomenti
Inviare una notifica quando lo stato della pipeline cambia (console)
Questi passaggi mostrano come utilizzare la EventBridge console per creare una regola per inviare notifiche sulle modifiche apportate. CodePipeline
Per creare una EventBridge regola destinata alla tua pipeline con una fonte Amazon S3
Apri la EventBridge console Amazon all'indirizzo. https://console.aws.amazon.com/events/
-
Nel riquadro di navigazione, scegli Regole. Lascia selezionato il bus predefinito o scegli un bus per eventi. Scegli Crea regola.
-
In Nome, inserisci un nome per la tua regola.
-
In Tipo di regola, scegli Regola con uno schema di eventi. Scegli Avanti.
-
In Schema di eventi, scegli AWS i servizi.
-
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, scegli CodePipeline Pipeline Execution State Change.
-
Per una regola applicabile 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 CodePipeline Action Execution State Change.
-
-
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.
-
-
Per modelli di eventi più dettagliati di quanto consentito dai selettori, potete anche utilizzare l'opzione Modifica modello nella finestra Schema evento per designare un modello di evento in formato JSON.
Nota
Se non diversamente specificato, il modello di evento viene creato per tutti i pipelines/stages /actions e gli stati.
Per modelli di eventi più dettagliati, puoi copiare e incollare i seguenti modelli di eventi di esempio nella finestra Pattern di eventi.
-
Esempio
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"] } } } -
Esempio
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"] } } } -
Esempio
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"] } }
-
-
Scegli Avanti.
-
In Tipi di target, scegli il AWS servizio.
-
In Seleziona un obiettivo, scegli CodePipeline. In Pipeline ARN, inserite l'ARN della pipeline per la pipeline da avviare in base a questa regola.
Nota
Per ottenere l'ARN della pipeline, esegui il comando get-pipeline. L'ARN della pipeline viene visualizzato nell'output. Il formato è il seguente:
regionaccountarn:aws:codepipeline:::pipeline-nameARN della pipeline di esempio:
arn:aws:codepipeline:us-east- 2:80398 EXAMPLE:MyFirstPipeline
-
Per creare o specificare un ruolo del servizio IAM che conceda le EventBridge autorizzazioni per richiamare la destinazione associata alla regola (in questo caso, la destinazione è): EventBridge CodePipeline
-
Scegli Crea un nuovo ruolo per questa risorsa specifica per creare un ruolo di servizio che dia le EventBridge autorizzazioni per avviare le esecuzioni della pipeline.
-
Scegli Usa ruolo esistente per inserire un ruolo di servizio che dia le EventBridge autorizzazioni per avviare le esecuzioni della pipeline.
-
-
Scegli Avanti.
-
Nella pagina Tag, scegli Avanti.
-
Nella pagina Rivedi e crea, rivedi la configurazione delle regole. Se la regola ti soddisfa, scegli Create rule (Crea regola).
Invia una notifica quando lo stato della pipeline cambia (CLI)
Questi passaggi mostrano come utilizzare la CLI per creare una regola CloudWatch Events per inviare notifiche sulle modifiche apportate. CodePipeline
Per utilizzare la funzione 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 create 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
-
Chiamare il comando put-rule per creare una regola specificando il modello eventi. (Consulta le tabelle precedenti per gli stati validi.)
Il comando di esempio seguente viene utilizzata --event-pattern per creare una regola denominata
"MyPipelineStateChanges"che emette l' CloudWatch evento quando l'esecuzione di una pipeline non riesce 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\"]}}" -
Chiamate il put-targets comando e includete i seguenti parametri:
-
Il parametro
--ruleviene utilizzato con ilrule_nameche hai creato utilizzando put-rule. -
Il
--targetsparametro viene utilizzato con l'elencoIddella destinazione nell'elenco delle destinazioni e con l'ARNargomento Amazon SNS.
Il comando di esempio seguente specifica che per la regola denominata
MyPipelineStateChanges, la destinazioneIdè 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 esempioARNper l'argomento Amazon SNS.aws events put-targets --rule MyPipelineStateChanges --targets Id=1,Arn=arn:aws:sns:us-west-2:11111EXAMPLE:MyNotificationTopic -
-
Aggiungi le autorizzazioni per EventBridge utilizzare il servizio di destinazione designato per richiamare la notifica. Per ulteriori informazioni, consulta Utilizzo di politiche basate sulle risorse per Amazon. EventBridge