

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.

# Uso de Elastic Beanstalk con Amazon EventBridge
<a name="AWSHowTo.eventbridge"></a>

Con Amazon EventBridge, puede configurar reglas basadas en eventos que supervisen sus recursos de Elastic Beanstalk e inicien acciones segmentadas que utilicen otros servicios. AWS Por ejemplo, puede establecer una regla para el envío de notificaciones por correo electrónico al señalizar un tema de Amazon SNS siempre que el estado de un entorno de producción cambie al estado *Warning (Advertencia)*. O bien, puede configurar una función de Lambda para que pase una notificación a Slack siempre que el estado del entorno cambie a *Degraded (Degradado)* o *Severe (Grave)*.

Puede crear reglas en Amazon EventBridge para actuar en cualquiera de los siguientes eventos de Elastic Beanstalk:
+ *Cambios de estado para las operaciones del entorno (incluidas las operaciones de creación, actualización y finalización).* El evento especifica si el cambio de estado se ha iniciado, se ha realizado correctamente o no se ha podido realizar.
+ *Cambios de estado para otros recursos. *Además de los entornos, otros recursos que se supervisan incluyen balanceadores de carga, grupos de escalado automático e instancias.
+ *Transición de estado para entornos.* El evento indica dónde el estado del entorno ha pasado de un estado a otro. 
+ *Cambio de estado para las actualizaciones administradas.* El evento especifica si el cambio de estado se ha iniciado, se ha realizado correctamente o no se ha podido realizar.

Para capturar eventos de Elastic Beanstalk específicos que le interesen, defina EventBridge patrones específicos de eventos que pueda usar para detectarlos. Los patrones de eventos tienen la misma estructura que los eventos con los que coinciden. El patrón cita los campos para los que se desea encontrar coincidencias y proporciona los valores que está buscando. Los eventos se emiten en la medida de lo posible. Se envían desde Elastic EventBridge Beanstalk a prácticamente en tiempo real en circunstancias operativas normales. Sin embargo, pueden surgir situaciones que retrasen o impidan la entrega de un evento.

Para obtener una lista de los campos incluidos en eventos de Elastic Beanstalk y sus posibles valores de cadena, consulte [Asignación de campos de eventos de Elastic Beanstalk](#eb-eventbridge-mapping). Para obtener información sobre cómo funcionan EventBridge las reglas con los patrones de eventos, consulte [Eventos y patrones de eventos](https://docs.aws.amazon.com//eventbridge/latest/userguide/eventbridge-and-event-patterns.html) en. EventBridge 

## Supervise un recurso de Elastic Beanstalk con EventBridge
<a name="eb-eventbridge-tasks"></a>

Con EventBridge, puede crear reglas que definan las acciones que se deben realizar cuando Elastic Beanstalk emita eventos para sus recursos. Por ejemplo, puede crear una regla que le envíe un mensaje de correo electrónico siempre que cambie el estado de un entorno. 

La EventBridge consola tiene una opción de **patrón predefinido** para crear patrones de eventos de Elastic Beanstalk. Si selecciona esta opción en la EventBridge consola al crear una regla, puede crear un patrón de eventos de Elastic Beanstalk rápidamente. Solo tiene que seleccionar los campos y los valores del evento. A medida que realiza selecciones, la consola crea y muestra el patrón de eventos. O bien, puede editar manualmente el patrón de eventos que cree y guardarlo como un patrón personalizado. La consola también le brinda la opción de mostrar un **evento de ejemplo** detallado que puede copiar y pegar en el patrón de eventos que está creando.

Si prefiere escribir o copiar y pegar un patrón de eventos en la EventBridge consola, puede optar por utilizar la opción **Patrón personalizado** en la consola. Al hacerlo, no es necesario seguir los pasos de selección de campos y valores descritos anteriormente. Este tema ofrece ejemplos de [patrones de coincidencia de eventos ](#eb-eventbridge-patterns) y [eventos de Elastic Beanstalk](#eb-eventbridge-examples) que puede utilizar. 

**Para crear una regla para un evento de recurso, realice lo siguiente:**

1. Inicie sesión AWS con una cuenta que tenga permisos de uso de Elastic EventBridge Beanstalk.

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

1. Seleccione **Creación de regla**.

1. Ingrese un **Name (Nombre)** para la regla y opcionalmente, una descripción.

1. En **Bus de eventos**, elija **Predeterminado**. Cuando un AWS servicio de tu cuenta emite un evento, siempre va al bus de eventos predeterminado de tu cuenta.

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

1. Elija **Siguiente**.

1. **En Origen del evento**, selecciona **AWS eventos o eventos EventBridge asociados**.

1. (Opcional) En **Evento de ejemplo**, seleccione **Eventos de AWS **. Ingrese *Elastic Beanstalk* en el campo de búsqueda. Esto proporcionará una lista de eventos de Elastic Beanstalk de muestra entre los que puede elegir mostrarlos. Este paso simplemente muestra un evento de ejemplo al que puede hacer referencia. No afecta al resultado de la creación de la regla. La sección [Ejemplo de eventos de Elastic Beanstalk](#eb-eventbridge-examples) , incluida más adelante en este tema, proporciona ejemplos del mismo tipo de eventos.

1. En la sección **Event pattern** (Patrón de eventos), elija **Event pattern form** (Formulario de patrón de eventos).
**nota**  
Si ya tienes texto para un patrón de eventos y no necesitas que la EventBridge consola lo cree por ti, selecciona **Patrón personalizado (editor JSON)**. A continuación, puede introducir manualmente o copiar y pegar el texto en el cuadro **Event pattern (Patrón de eventos)**. Elija **Next** (Siguiente) y vaya al paso de ingresar un objetivo.

1. En **Origen de evento**, seleccione **Servicios de AWS **. 

1. En **Nombre de AWS **, seleccione **Elastic Beanstalk**.

1. Para **Event type (Tipo de evento)**, seleccione **Status Change (Cambio de estado)**.

1. Este paso describe cómo puede trabajar con los campos de eventos **Detail type (Tipo de detalle)**, **Status (Estado)** y **Severity (Gravedad)** de Elastic Beanstalk. A medida que elige estos campos y los valores que desea hacer coincidir, la consola crea y muestra el patrón de eventos. 
   + Si selecciona *solo un* valor en **Tipos de detalles específicos**, puede elegir uno o varios valores para el siguiente campo de la jerarquía.
   + Si selecciona *más de un valor* en **Tipos de detalles específicos**, no elija valores específicos para los siguientes campos de la jerarquía. Esto evita una lógica de coincidencia ambigua entre los campos del patrón de eventos.

   El campo de evento **Environment (Entorno)** no se ve afectado por esta jerarquía, por lo que se muestra como se describe en el siguiente paso.

1. Para Environment (Entorno), seleccione **Any environment** (Cualquier entorno) o **Specific environment(s)** (Entornos específicos).
   + Si seleccionas **Entornos específicos**, puedes elegir uno o más entornos de la lista desplegable. EventBridge agrega todos los entornos que seleccione dentro de la lista *EnvironmentName[]* en la sección de *detalles* del patrón de eventos. A continuación, la regla filtra todos los eventos para incluir solo los entornos específicos que elija.
   + Si selecciona **Any environment**, no se agregarán entornos al patrón de eventos. Debido a esto, la regla no filtra ninguno de los eventos de Elastic Beanstalk según el entorno.

1. Elija **Siguiente**.

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

1. En **Select a target** (Seleccionar un destino), elija la acción de destino que debe realizar cuando se reciba un evento de cambio de estado de recurso desde Elastic Beanstalk.

   Por ejemplo, puede utilizar un tema de Amazon Simple Notification Service (SNS) para enviar un correo electrónico o un mensaje de texto cuando se produce un evento. Para ello, debe crear un tema de Amazon SNS mediante la consola de Amazon SNS. Para obtener más información, consulte [Uso de Amazon SNS para notificaciones de usuario](https://docs.aws.amazon.com//sns/latest/dg/sns-user-notifications.html).
**importante**  
Algunas acciones de destino pueden requerir el uso de otros servicios e incurrir en cargos adicionales, como el servicio Amazon SNS o Lambda. Para obtener más información sobre AWS los precios, consulte[https://aws.amazon.com/pricing/](https://aws.amazon.com/pricing/). Algunos servicios forman parte de la capa de uso AWS gratuito. Si es un cliente nuevo, puede probar estos servicios de forma gratuita. Para obtener más información, consulte [https://aws.amazon.com/free/](https://aws.amazon.com/free/). 

1. (Opcional) Elija **Add another target** (Agregar otro destino) para especificar una acción de destino adicional para la regla de eventos.

1. Elija **Siguiente**.

1. (Opcional) Introduzca una o varias etiquetas para la regla. Para obtener más información, consulta las [ EventBridge etiquetas de Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-tagging.html) en la *Guía del EventBridge usuario de Amazon*.

1. Elija **Siguiente**.

1. Revise los detalles de la regla y seleccione **Creación de regla**.

## Ejemplo de patrones de eventos de Elastic Beanstalk
<a name="eb-eventbridge-patterns"></a>

Los patrones de eventos tienen la misma estructura que los eventos con los que coinciden. El patrón cita los campos para los que se desea encontrar coincidencias y proporciona los valores que está buscando.
+ *Health status change (Cambio del estado)* para todos los entornos

  ```
  {
     "source": [
      "aws.elasticbeanstalk"
    ],
    "detail-type": [
      "Health status change"
      ]
  }
  ```
+ *Health status change (Cambio del estado)* para los siguientes entornos: `myEnvironment1` y `myEnvironment2` Este patrón de eventos filtra para estos dos entornos específicos, mientras que el ejemplo anterior de *Health status change (Cambio del estado)* que no filtra envía eventos para todos los entornos.

  ```
  {"source": [
      "aws.elasticbeanstalk"
      ],
      "detail-type": [
          "Health status change"
      ],
      "detail": {
          "EnvironmentName": [
              "myEnvironment1",
              "myEnvironment2"
          ]
      }
  }
  ```
+ *Elastic Beanstalk resource status change (Cambio de estado de recursos de Elastic Beanstalk)* para todos los entornos

  ```
  {
    "source": [
      "aws.elasticbeanstalk"
    ],
    "detail-type": [
      "Elastic Beanstalk resource status change"
      ]
  }
  ```
+ *Elastic Beanstalk resource status change (Cambio de estado de recursos de Elastic Beanstalk)* con `Status` *Environment update failed (Actualización del entorno fallida)* y `Severity` *ERROR* para los siguientes entornos: `myEnvironment1` y `myEnvironment2`

  ```
  {"source": [
      "aws.elasticbeanstalk"
      ],
      "detail-type": [
          "Elastic Beanstalk resource status change"
      ],
      "detail": {
          "Status": [
              "Environment update failed"
              ],
          "Severity": [
              "ERROR"
              ],
          "EnvironmentName": [
              "myEnvironment1",
              "myEnvironment2"
          ]
      }
  }
  ```
+ *Other resource status change (Otro cambio de estado de recursos)* para balanceadores de carga, grupos de escalado automático e instancias

  ```
  {
     "source": [
      "aws.elasticbeanstalk"
    ],
    "detail-type": [
      "Other resource status change"
      ]
  }
  ```
+ *Managed update status change (Cambio de estado de actualización administrada)* para todos los entornos

  ```
  {
     "source": [
      "aws.elasticbeanstalk"
    ],
    "detail-type": [
      "Managed update status change"
      ]
  }
  ```
+ Para capturar *todos los eventos* de Elastic Beanstalk (excluya la sección `detail-type`)

  ```
  {
    "source": [
      "aws.elasticbeanstalk"
    ]
  }
  ```

## Ejemplo de eventos de Elastic Beanstalk
<a name="eb-eventbridge-examples"></a>

A continuación se muestra un ejemplo de evento de Elastic Beanstalk para un *cambio de estado de recurso*:

```
{ 
   "version":"0",
   "id":"1234a678-1b23-c123-12fd3f456e78",
   "detail-type":"Elastic Beanstalk resource status change",
   "source":"aws.elasticbeanstalk",
   "account":"111122223333",
   "time":"2020-11-03T00:31:54Z",
   "region":"us-east-1",
   "resources":[
      "arn:was:elasticbeanstalk:us-east-1:111122223333:environment/myApplication/myEnvironment"
   ],
   "detail":{
      "Status":"Environment creation started",
      "EventDate":1604363513951,
      "ApplicationName":"myApplication",
      "Message":"createEnvironment is starting.",
      "EnvironmentName":"myEnvironment",
      "Severity":"INFO"
   }
}
```

A continuación se muestra un ejemplo de evento de Elastic Beanstalk para un *cambio del estado*:

```
{ 
   "version":"0",
   "id":"1234a678-1b23-c123-12fd3f456e78",
   "detail-type":"Health status change",
   "source":"aws.elasticbeanstalk",
   "account":"111122223333",
   "time":"2020-11-03T00:34:48Z",
   "region":"us-east-1",
   "resources":[
      "arn:was:elasticbeanstalk:us-east-1:111122223333:environment/myApplication/myEnvironment"
   ],
   "detail":{
      "Status":"Environment health changed",
      "EventDate":1604363687870,
      "ApplicationName":"myApplication",
      "Message":"Environment health has transitioned from Pending to Ok. Initialization completed 1 second ago and took 2 minutes.",
      "EnvironmentName":"myEnvironment",
      "Severity":"INFO"
   }
}
```

## Asignación de campos de eventos de Elastic Beanstalk
<a name="eb-eventbridge-mapping"></a>

La siguiente tabla asigna al campo los campos de eventos de Elastic Beanstalk y sus posibles valores de cadena. EventBridge `detail-type` Para obtener más información sobre cómo EventBridge funciona con los patrones de eventos de un servicio, consulte [Eventos y patrones de eventos](https://docs.aws.amazon.com//eventbridge/latest/userguide/eventbridge-and-event-patterns.html) en. EventBridge 



- ** Cambio de estado de recursos de Elastic Beanstalk **
  - ****Campo de Elastic Beanstalk *Status***:** La creación del entorno se ha iniciado / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** createEnvironment se está iniciando.
  - ****Campo de Elastic Beanstalk *Status***:** La creación del entorno se ha realizado correctamente / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** createEnvironment se ha completado correctamente.
  - ****Campo de Elastic Beanstalk *Status***:** La creación del entorno se ha realizado correctamente / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** Entorno lanzado: <Nombre del entorno>. Sin embargo, hubo problemas durante el lanzamiento. Consulte el registro de sucesos para obtener más detalles.
  - ****Campo de Elastic Beanstalk *Status***:** Ha ocurrido un error durante la creación del entorno / ****Campo de Elastic Beanstalk *Severity***:** ERROR / ****Campo de Elastic Beanstalk *Message***:** Error al lanzar el entorno.
  - ****Campo de Elastic Beanstalk *Status***:** La actualización del entorno se ha iniciado / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** Se está iniciando la actualización del entorno.
  - ****Campo de Elastic Beanstalk *Status***:** Actualización del entorno realizada correctamente / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** La actualización del entorno se ha completado correctamente.
  - ****Campo de Elastic Beanstalk *Status***:** Error al actualizar el entorno / ****Campo de Elastic Beanstalk *Severity***:** ERROR / ****Campo de Elastic Beanstalk *Message***:** Error al implementar la configuración.
  - ****Campo de Elastic Beanstalk *Status***:** La finalización del entorno se ha iniciado / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** terminateEnvironment se está iniciando.
  - ****Campo de Elastic Beanstalk *Status***:** Finalización del entorno realizada correctamente / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** terminateEnvironment se ha completado correctamente.
  - ****Campo de Elastic Beanstalk *Status***:** Error al finalizar el entorno / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** Error en el paso de finalización del entorno porque falló al menos uno de los flujos de trabajo de finalización del entorno.

- ** Cambio de estado de otros recursos **
  - ****Campo de Elastic Beanstalk *Status***:** Grupo de escalado automático creado / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** createEnvironment se está iniciando.
  - ****Campo de Elastic Beanstalk *Status***:** Grupo de escalado automático eliminado / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** createEnvironment se está iniciando.
  - ****Campo de Elastic Beanstalk *Status***:** Instancia añadida / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** Se ha añadido la instancia [i-123456789a12b1234] a su entorno.
  - ****Campo de Elastic Beanstalk *Status***:** Instancia eliminada / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** Se ha eliminado la instancia [i-123456789a12b1234] de su entorno.
  - ****Campo de Elastic Beanstalk *Status***:** Balanceador de carga creado / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** Balanceador de carga creado denominado: <Nombre de LB>
  - ****Campo de Elastic Beanstalk *Status***:** Balanceador de carga eliminado / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** Balanceador de carga eliminado denominado: <Nombre de LB>

- ** Cambio del estado **
  - ****Campo de Elastic Beanstalk *Status***:** El estado se ha cambiado / ****Campo de Elastic Beanstalk *Severity***:** INFO/ADVERTENCIA / ****Campo de Elastic Beanstalk *Message***:** El estado del entorno ha pasado a <healthStatus>.
  - ****Campo de Elastic Beanstalk *Status***:** El estado se ha cambiado / ****Campo de Elastic Beanstalk *Severity***:** INFO/ADVERTENCIA / ****Campo de Elastic Beanstalk *Message***:** El estado del entorno ha pasado de <healthStatus> a <healthStatus>.

- ** Cambio de estado de actualización administrada **
  - ****Campo de Elastic Beanstalk *Status***:** Actualización administrada iniciada / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** La actualización de la plataforma administrada está en curso.
  - ****Campo de Elastic Beanstalk *Status***:** Error en la actualización administrada / ****Campo de Elastic Beanstalk *Severity***:** INFO / ****Campo de Elastic Beanstalk *Message***:** Error de actualización administrada, se reintentará en%s minutos.

