

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



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?](https://docs.aws.amazon.com/eventbridge/latest/userguide/) 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 e la stessa API di base, 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 chiamata **GetPipelineExecution** API nell'[AWS CodePipeline API Reference](https://docs.aws.amazon.com/codepipeline/latest/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 in`detailType`. Per ulteriori informazioni, consulta la chiamata **PutEvents** API nell'[Amazon EventBridge API Reference](https://docs.aws.amazon.com/eventbridge/latest/APIReference/).

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

**Topics**
+ [Tipi di dettaglio](#detect-state-events-types)
+ [eventi a livello di pipeline](#detect-state-events-pipeline)
+ [Eventi a livello di palcoscenico](#detect-state-events-stage)
+ [Eventi a livello di azione](#detect-state-events-action)
+ [Crea una regola che invia una notifica su un evento Pipeline](#create-cloudwatch-notifications)

## Tipi di dettaglio
<a name="detect-state-events-types"></a>

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.


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/detect-state-changes-cloudwatch-events.html)

## eventi a livello di pipeline
<a name="detect-state-events-pipeline"></a>

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

**Topics**
+ [Evento Pipeline STARTED](#detect-state-events-pipeline-started)
+ [Evento Pipeline STOPPING](#detect-state-events-pipeline-stopping)
+ [Evento Pipeline SUCCEEDED](#detect-state-events-pipeline-succeeded)
+ [Pipeline RIUSCITA (esempio con tag Git)](#w2aac42c13c29c15)
+ [Evento Pipeline FAILED](#detect-state-events-pipeline-failed)
+ [Pipeline FAILED (esempio con tag Git)](#w2aac42c13c29c23)

### Evento Pipeline STARTED
<a name="detect-state-events-pipeline-started"></a>

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

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

 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 RIUSCITA (esempio con tag Git)
<a name="w2aac42c13c29c15"></a>

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` oppure`branch-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
<a name="detect-state-events-pipeline-failed"></a>

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 name="w2aac42c13c29c23"></a>

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

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

**Topics**
+ [Evento Stage STARTED](#detect-state-events-stage-started)
+ [Evento Stage STOPPING](#detect-state-events-stage-stopping)
+ [Evento Stage STOPED](#detect-state-events-stage-stopped)
+ [Fase RIPRESA dopo l'evento di riprova](#w2aac42c13c31c15)

### Evento Stage STARTED
<a name="detect-state-events-stage-started"></a>

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 Stage STOPPING
<a name="detect-state-events-stage-stopping"></a>

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 Stage STOPED
<a name="detect-state-events-stage-stopped"></a>

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 RIPRESA dopo l'evento di riprova
<a name="w2aac42c13c31c15"></a>

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

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

**Topics**
+ [Evento Action STARTED](#detect-state-events-action-started)
+ [Evento Azione RIUSCITA](#detect-state-events-action-succeeded)
+ [Azione (evento FALLITO)](#detect-state-events-action-failed)
+ [Azione: evento ABANDON](#detect-state-events-action-abandoned)

### Evento Action STARTED
<a name="detect-state-events-action-started"></a>

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

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

------

### Azione (evento FALLITO)
<a name="detect-state-events-action-failed"></a>

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

------

### Azione: evento ABANDON
<a name="detect-state-events-action-abandoned"></a>

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

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.

**Topics**
+ [Invia una notifica quando lo stato della pipeline cambia (console)](#monitoring-cloudwatch-events-console)
+ [Invia una notifica quando lo stato della pipeline cambia (CLI)](#monitoring-cloudwatch-events-cli)

### Invia una notifica quando lo stato della pipeline cambia (console)
<a name="monitoring-cloudwatch-events-console"></a>

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

1. Nel riquadro di navigazione, scegli **Regole**. Lascia selezionato il bus predefinito o scegli un bus per eventi. Scegli **Crea regola**.

1. In **Nome**, inserisci un nome per la regola.

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

1. In **Schema di evento**, scegli **AWS i servizi**.

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

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

1. Per modelli di eventi più dettagliati di quelli consentiti dai selettori, puoi 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 gli pipelines/stages/actions stati.

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

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

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

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

1. Scegli **Next (Successivo)**.

1. In **Tipi di Target**, scegli **AWS service**.

1. In **Seleziona un obiettivo**, scegli **CodePipeline**. In **Pipeline ARN**, immettete 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:   
*region**account*arn:aws:codepipeline::: *pipeline-name*  
ARN della pipeline di esempio:  
arn:aws:codepipeline:us-east- 2:80398 ESEMPIO: MyFirstPipeline 

1. Per creare o specificare un ruolo di servizio IAM che conceda le EventBridge autorizzazioni per richiamare il target 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.

1. Scegli **Next (Successivo)**.

1. **Nella pagina **Tag**, scegli Avanti.**

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

Questi passaggi mostrano come utilizzare la CLI per creare una regola CloudWatch Events per inviare notifiche di modifiche. 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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html).

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

1. 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` delle destinazioni nell'elenco delle destinazioni e l'`ARN`argomento Amazon SNS.

   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'argomento Amazon SNS.

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

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