

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Monitorización de CodePipeline eventos
<a name="detect-state-changes-cloudwatch-events"></a>



Puede monitorear CodePipeline los eventos en EventBridge, lo que ofrece un flujo de datos en tiempo real desde sus propias aplicaciones, aplicaciones software-as-a-service (SaaS) y. Servicios de AWS EventBridge dirige esos datos a objetivos como AWS Lambda Amazon Simple Notification Service. Estos eventos son los mismos que aparecen en Amazon CloudWatch Events, que ofrece una transmisión casi en tiempo real de los eventos del sistema que describen los cambios en AWS los recursos. Para obtener más información, consulta [¿Qué es Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/) en la *Guía del EventBridge usuario de Amazon*.

**nota**  
Amazon EventBridge es la forma preferida de gestionar tus eventos. Amazon CloudWatch Events y EventBridge son el mismo servicio y API subyacentes, pero EventBridge ofrecen más funciones. Los cambios que realices en cualquiera de CloudWatch los eventos o EventBridge aparecerán en cada consola.

Los eventos se componen de reglas. Una regla se configura seleccionando lo siguiente:
+ **Patrón de eventos.** Cada regla se expresa como un patrón de eventos con el origen y el tipo de eventos que se van a supervisar y los objetivos del evento. Para supervisar los eventos, debe crear una regla con el servicio que está supervisando como fuente de eventos, por ejemplo CodePipeline. Por ejemplo, puede crear una regla con un patrón de eventos que se utilice CodePipeline como fuente de eventos para activar la regla cuando se produzcan cambios en el estado de una canalización, etapa o acción.
+ **Destinos** La nueva regla recibe un servicio seleccionado como destino de eventos. En función del tipo de cambio de estado, es posible que desee enviar notificaciones, capturar información de estado, tomar medidas correctivas, iniciar eventos o adoptar otras medidas. Cuando añadas tu destino, también debes conceder permisos EventBridge para que pueda invocar el servicio de destino seleccionado.

Cada tipo de evento de cambio de estado de ejecución emite notificaciones con un contenido de mensaje específico, donde:
+ La entrada `version` inicial muestra el número de versión del evento.
+ La entrada `version` de la sección `detail` de la canalización muestra el número de versión de la estructura de la canalización.
+ La entrada `execution-id` de la sección `detail` de la canalización muestra el ID de ejecución de la canalización que ha provocado el cambio de estado. Consulte la llamada a la API **GetPipelineExecution** en la [AWS CodePipeline API Reference](https://docs.aws.amazon.com/codepipeline/latest/APIReference/).
+ La entrada `pipeline-execution-attempt` muestra el número de intentos, o reintentos, del ID de ejecución específico.

CodePipeline notifica un evento EventBridge cada vez que el estado de un recurso tuyo Cuenta de AWS cambia. Los eventos se emiten de at-least-once forma garantizada para los siguientes recursos:
+ Ejecuciones de canalización
+ Ejecución de etapas
+ Ejecuciones de acción

Los eventos se emiten EventBridge con el patrón y el esquema de eventos detallados anteriormente. En el caso de los eventos procesados, como los que recibe a través de notificaciones que ha configurado en la consola de Developer Tools, el mensaje del evento incluye campos de patrones de eventos con algunas variaciones. Por ejemplo, el campo `detail-type` se convierte en `detailType`. Para obtener más información, consulta la llamada a la **PutEvents** API en la [Amazon EventBridge API Reference](https://docs.aws.amazon.com/eventbridge/latest/APIReference/).

En los siguientes ejemplos se muestran los eventos de CodePipeline. Siempre que sea posible, en cada ejemplo se muestra el esquema de un evento emitido junto con el esquema de un evento procesado.

**Topics**
+ [Tipos de detalles](#detect-state-events-types)
+ [Eventos de nivel de canalización](#detect-state-events-pipeline)
+ [Eventos de nivel de etapa](#detect-state-events-stage)
+ [Eventos de nivel de acción](#detect-state-events-action)
+ [Creación de una regla que envíe una notificación sobre un evento de canalización](#create-cloudwatch-notifications)

## Tipos de detalles
<a name="detect-state-events-types"></a>

Al configurar los eventos para monitorizarlos, puede elegir el tipo de detalle del evento.

Puede configurar notificaciones para que se envíen cuando cambie el estado de:
+ Determinadas canalizaciones o todas las canalizaciones. Esto se controla utilizando `"detail-type":` `"CodePipeline Pipeline Execution State Change"`.
+ Determinadas etapas o todas las etapas, de una canalización especificada o de todas las canalizaciones. Esto se controla utilizando `"detail-type":` `"CodePipeline Stage Execution State Change"`.
+ Determinadas acciones o todas las acciones, de una etapa especificada o de todas las etapas, de una canalización especificada o de todas las canalizaciones. Esto se controla utilizando `"detail-type":` `"CodePipeline Action Execution State Change"`.

**nota**  
Los eventos emitidos por EventBridge contienen el `detail-type` parámetro, que se convierte al que se utiliza `detailType` cuando se procesan los eventos.


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

## Eventos de nivel de canalización
<a name="detect-state-events-pipeline"></a>

Los eventos a nivel de canalización se emiten cuando se produce un cambio de estado en la ejecución de una canalización.

**Topics**
+ [Evento STARTED de canalización](#detect-state-events-pipeline-started)
+ [Evento STOPPING de inanición](#detect-state-events-pipeline-stopping)
+ [Evento SUCCEEDED de canalización](#detect-state-events-pipeline-succeeded)
+ [Evento SUCCEEDED de canalización (ejemplo con etiquetas Git)](#w2aac42c13c29c15)
+ [Evento FAILED de canalización](#detect-state-events-pipeline-failed)
+ [Evento FAILED de canalización (ejemplo con etiquetas Git)](#w2aac42c13c29c23)

### Evento STARTED de canalización
<a name="detect-state-events-pipeline-started"></a>

 Cuando se inicia la ejecución de una canalización, se emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada `"myPipeline"` de la región `us-east-1`. El campo `id` representa el ID del evento y el campo `account` representa el ID de la cuenta en la que se creó la canalización.

------
#### [ 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 STOPPING de inanición
<a name="detect-state-events-pipeline-stopping"></a>

Cuando la ejecución de una canalización se detiene, emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada `myPipeline` de la región `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 SUCCEEDED de canalización
<a name="detect-state-events-pipeline-succeeded"></a>

 Cuando la ejecución de una canalización se realiza correctamente, emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada `myPipeline` de la región `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": {}
}
```

------

### Evento SUCCEEDED de canalización (ejemplo con etiquetas Git)
<a name="w2aac42c13c29c15"></a>

Cuando la ejecución de una canalización tiene una etapa que se ha reintentado y se ha realizado correctamente, emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada `myPipeline` en la región `eu-central-1` en la que `execution-trigger` está configurada para las etiquetas de Git.

**nota**  
El campo `execution-trigger` tendrá `tag-name` o `branch-name`, según el tipo de evento que haya activado la canalización.

```
{
    "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 FAILED de canalización
<a name="detect-state-events-pipeline-failed"></a>

Cuando se produce un error en la ejecución de una canalización, se emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada `"myPipeline"` de la región `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"
    }
```

------

### Evento FAILED de canalización (ejemplo con etiquetas Git)
<a name="w2aac42c13c29c23"></a>

A menos que se produzca un error en la fase de origen, en el caso de una canalización configurada con desencadenadores, emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada `myPipeline` en la región `eu-central-1` en la que `execution-trigger` está configurada para las etiquetas de Git.

**nota**  
El campo `execution-trigger` tendrá `tag-name` o `branch-name`, según el tipo de evento que haya activado la canalización.

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

------

## Eventos de nivel de etapa
<a name="detect-state-events-stage"></a>

Los eventos a nivel de etapa se emiten cuando hay un cambio de estado en la ejecución de una etapa.

**Topics**
+ [Evento STARTED e etapa](#detect-state-events-stage-started)
+ [Evento STOPPING de etapa](#detect-state-events-stage-stopping)
+ [Evento STOPPED de etapa](#detect-state-events-stage-stopped)
+ [La etapa se reanudó (RESUMED) tras el evento de reintento](#w2aac42c13c31c15)

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

Cuando se inicia la ejecución de una etapa, se emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada `"myPipeline"` de la región `us-east-1` para la etapa `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 STOPPING de etapa
<a name="detect-state-events-stage-stopping"></a>

Cuando una ejecución en fase se detiene, emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada `myPipeline` de la región `us-west-2` para la etapa `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 STOPPED de etapa
<a name="detect-state-events-stage-stopped"></a>

Cuando se inicia la ejecución de una etapa, se emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada `myPipeline` de la región `us-west-2` para la etapa `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
    }
}
```

### La etapa se reanudó (RESUMED) tras el evento de reintento
<a name="w2aac42c13c31c15"></a>

Cuando se reanuda la ejecución de una etapa y hay una etapa que se ha vuelto a intentar, emite un evento que envía notificaciones con el siguiente contenido.

Cuando se vuelve a intentar una etapa, se muestra el campo `stage-last-retry-attempt-time`, como se muestra en el ejemplo. El campo se muestra en todos los eventos de la etapa si se ha realizado un reintento.

**nota**  
El campo `stage-last-retry-attempt-time` estará presente en todos los eventos de fase posteriores una vez que se haya reintentado una etapa.

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

## Eventos de nivel de acción
<a name="detect-state-events-action"></a>

Los eventos a nivel de acción se emiten cuando se produce un cambio de estado en la ejecución de una acción.

**Topics**
+ [Evento STARTED de acción](#detect-state-events-action-started)
+ [Evento SUCCEEDED de acción](#detect-state-events-action-succeeded)
+ [Evento FAILED de acción](#detect-state-events-action-failed)
+ [Evento ABANDONED de acción](#detect-state-events-action-abandoned)

### Evento STARTED de acción
<a name="detect-state-events-action-started"></a>

Cuando se inicia la ejecución de una acción, se emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada `myPipeline` de la región `us-east-1` y para la acción de implementación `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 SUCCEEDED de acción
<a name="detect-state-events-action-succeeded"></a>

Cuando la ejecución de una acción se realiza correctamente, emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada `"myPipeline"` de la región `us-west-2` y para la acción `"Source"`. Para este tipo de evento, hay dos campos `region` diferentes. El campo `region` de evento especifica la región del evento de canalización. El campo `region` de la sección `detail` especifica la región de la acción.

------
#### [ 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 FAILED de acción
<a name="detect-state-events-action-failed"></a>

Cuando se produce un error en la ejecución de una acción, se emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada `"myPipeline"` de la región `us-west-2` y para la acción `"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 ABANDONED de acción
<a name="detect-state-events-action-abandoned"></a>

Cuando se suspende la ejecución de una acción, se emite un evento que envía notificaciones con el siguiente contenido. Este ejemplo es para la canalización denominada `"myPipeline"` de la región `us-west-2` y para la acción `"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
    }
}
```

## Creación de una regla que envíe una notificación sobre un evento de canalización
<a name="create-cloudwatch-notifications"></a>

Una regla vigila determinados eventos y, a continuación, los dirige a AWS los objetivos que tú elijas. Puede crear una regla que ejecute una AWS acción automáticamente cuando se produzca otra AWS acción, o una regla que ejecute una AWS acción con regularidad según un cronograma establecido.

**Topics**
+ [Enviar una notificación cada vez que cambie el estado de una canalización (consola)](#monitoring-cloudwatch-events-console)
+ [Enviar una notification cuando cambie el estado de una canalización (CLI)](#monitoring-cloudwatch-events-cli)

### Enviar una notificación cada vez que cambie el estado de una canalización (consola)
<a name="monitoring-cloudwatch-events-console"></a>

Estos pasos muestran cómo usar la EventBridge consola para crear una regla que envíe notificaciones de cambios en ella CodePipeline. 

**Para crear una EventBridge regla que se dirija a su canalización con una fuente de Amazon S3**

1. Abre la EventBridge consola de Amazon en [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. En el panel de navegación, seleccione **Reglas**. Deje el bus predeterminado seleccionado o elija un bus de eventos. Elija **Crear regla**.

1. En **Nombre**, introduzca un nombre para la regla.

1. En **Tipo de regla**, elija **Regla con un patrón de evento**. Elija **Siguiente**.

1. En **Patrón de eventos**, seleccione **Servicios de AWS **.

1. En la lista desplegable **Tipo de evento**, elija el nivel de cambio de estado de la notificación.
   + Para ver una regla que se aplique a los eventos a nivel de canalización, elija **CodePipelinePipeline Execution State Change**.
   + Para ver una regla que se aplique a los eventos de nivel de fase, selecciona Cambio de estado de ejecución por **CodePipelinefase**.
   + Para ver una regla que se aplique a los eventos de nivel de acción, selecciona Cambio de estado de ejecución de la **CodePipelineacción**.

1. Especifique los cambios de estado a los que se aplica la regla:
   + Para una regla que se aplica a todos los cambios de estado, elija **Any state**.
   + Para una regla que se aplica únicamente a algunos cambios de estado, elija **Specific state(s)** y, a continuación, elija uno o varios valores de estado de la lista.

1. Si necesita patrones de eventos más detalladas de lo que permiten los selectores, también puede utilizar la opción **Editar patrón** de la ventana **Vista previa de patrón de evento** para designar un patrón de eventos con formato JSON.
**nota**  
Si no se especifica lo contrario, se crea el patrón de eventos para todos los estados pipelines/stages/actions y.

   Para obtener patrones de eventos más detallados, puede copiar y pegar los siguientes patrones de eventos de muestra en la ventana **Editar**.
   +   
**Example**  

     Utilice este patrón de eventos de muestra para capturar acciones de implementación y compilación con errores en todas las canalizaciones.

     ```
     {
     "source": [
         "aws.codepipeline"
       ],
       "detail-type": [
         "CodePipeline Action Execution State Change"
       ],
       "detail": {
         "state": [
           "FAILED"
         ],
         "type": {
           "category": ["Deploy", "Build"]
         }
       }
     }
     ```
   +   
**Example**  

     Utilice este patrón de eventos de muestra para capturar todas las acciones de aprobación rechazadas y con errores en todas las canalizaciones.

     ```
     {
      "source": [
         "aws.codepipeline"
       ],
       "detail-type": [
         "CodePipeline Action Execution State Change"
       ],
       "detail": {
         "state": [
           "FAILED"
         ],
         "type": {
           "category": ["Approval"]
         }
       }
     }
     ```
   +   
**Example**  

     Utilice este patrón de eventos de muestra para capturar todos los eventos de las canalizaciones especificadas.

     ```
     {
     "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. Elija **Siguiente**.

1. En **Tipos de destino**, elija **Servicio de AWS **.

1. En **Seleccione un objetivo**, elija **CodePipeline**. En **ARN de canalización**, Introduzca el ARN de la canalización que se iniciará cuando la active esta regla.
**nota**  
Para obtener el ARN de la canalización, ejecute el comando **get-pipeline**. El ARN de la canalización aparece en la salida. Se crea con el siguiente formato:   
arn:aws:codepipeline::: *region* *account* *pipeline-name*  
ARN de canalización de muestra:  
arn:aws:codepipeline:us-east- 2:80398 EJEMPLO: MyFirstPipeline 

1. Para crear o especificar una función de servicio de IAM que conceda EventBridge permisos para invocar el destino asociado a la regla (en este caso, el objetivo es): EventBridge CodePipeline 
   + Seleccione **Crear una nueva función para este recurso específico** a fin de crear una función de servicio que le dé EventBridge permisos para iniciar las ejecuciones de su canalización.
   + Selecciona **Usar el rol existente** para introducir un rol de servicio que te dé EventBridge permisos para iniciar las ejecuciones de tu canalización.

1. Elija **Siguiente**.

1. En la página **Etiquetas**, elija **Siguiente:**

1. En la página **Revisar y crear**, revise la configuración de la regla. Si está satisfecho con la regla, elija **Create rule (Crear regla)**.

### Enviar una notification cuando cambie el estado de una canalización (CLI)
<a name="monitoring-cloudwatch-events-cli"></a>

Estos pasos muestran cómo usar la CLI para crear una regla de CloudWatch eventos para enviar notificaciones de cambios CodePipeline. 

Para usar la AWS CLI para crear una regla, llame al **put-rule** comando y especifique:
+ Un nombre que identifique de forma inequívoca la regla que está creando. Este nombre debe ser único en todas las canalizaciones que crees CodePipeline asociadas a tu AWS cuenta.
+ El patrón de eventos para el origen y los campos de detalles utilizados por la regla. Para obtener más información, consulta [Amazon EventBridge y Event Patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html).

**Para crear una EventBridge CodePipeline regla con el origen del evento**

1. Use el comando **put-rule** para crear una regla que especifique el patrón de eventos. (Consulte las tablas anteriores para ver los estados válidos).

   El siguiente comando de ejemplo se utiliza **--event-pattern** para crear una regla llamada `“MyPipelineStateChanges”` que emite el CloudWatch evento cuando se produce un error en la ejecución de una canalización para la canalización denominada «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. Llame al comando **put-targets** e incluya los siguientes parámetros:
   + El parámetro `--rule` se usa con el `rule_name` que creó con el comando **put-rule**. 
   + El parámetro `--targets` se usa con el `Id` del destino de la lista de destinos y el `ARN` del tema de Amazon SNS.

   El siguiente comando de muestra especifica que, para la regla denominada `MyPipelineStateChanges`, el destino `Id` se compone del número uno, lo que indica que, en lo que puede ser una lista de destinos de la regla, se trata del destino 1. El comando de muestra también especifica un `ARN` de ejemplo para el tema de Amazon SNS.

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

1. Agregue permisos EventBridge para usar el servicio de destino designado para invocar la notificación. Para obtener más información, consulta [Uso de políticas basadas en recursos para Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-use-resource-based.html). EventBridge