Usar Elastic Beanstalk con Amazon EventBridge - AWS Elastic Beanstalk

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.

Usar Elastic Beanstalk con Amazon EventBridge

Al utilizar Amazon EventBridge, puede configurar reglas basadas en eventos que monitoreen los recursos de Elastic Beanstalk e inicien acciones de destino que utilicen otros servicios de 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 que actúen 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 Auto Scaling 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 específicos de Elastic Beanstalk que le interesen, defina patrones específicos de eventos que EventBridge puede utilizar para detectar los eventos. 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 entregan desde Elastic Beanstalk a EventBridge casi 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. Para obtener información acerca de cómo funcionan las reglas de EventBridge con los patrones de eventos, vea Eventos y patrones de eventos en EventBridge.

Supervisar un recurso de Elastic Beanstalk con EventBridge

Con EventBridge, puede crear reglas que definan las acciones que se deben realizar cuando Elastic Beanstalk emite 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 consola de EventBridge tiene la opción Pre-defined pattern (Patrón predefinido) para crear patrones de eventos de Elastic Beanstalk. Si selecciona esta opción en la consola de EventBridge al crear una regla, puede crear rápidamente un patrón de eventos de Elastic Beanstalk. 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 consola de EventBridge, puede utilizar la opción Custom pattern (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 y eventos de Elastic Beanstalk que puede utilizar.

Para crear una regla para un evento de recurso, realice lo siguiente:
  1. Inicie sesión en AWS con una cuenta que tenga permisos para usar EventBridge y Elastic Beanstalk.

  2. Abra la consola de Amazon EventBridge en https://console.aws.amazon.com/events/.

  3. En el panel de navegación, seleccione Reglas.

  4. Seleccione Crear regla.

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

  6. En Bus de eventos, elija Predeterminado. Cuando un servicio de AWS en la cuenta emite un evento, siempre va al bus de eventos predeterminado de la cuenta.

  7. En Tipo de regla, seleccione Regla con un patrón de eventos.

  8. Elija Siguiente.

  9. En Origen del evento, elija Eventos de AWS o eventos de socios de EventBridge.

  10. (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 , incluida más adelante en este tema, proporciona ejemplos del mismo tipo de eventos.

  11. En la sección Event pattern (Patrón de eventos), elija Event pattern form (Formulario de patrón de eventos).

    nota

    Si ya tiene texto para un patrón de eventos y no necesita que la consola de EventBridge lo cree por usted, seleccione Custom pattern (JSON editor) (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.

  12. En Origen de evento, seleccione Servicios de AWS.

  13. En Nombre de AWS, seleccione Elastic Beanstalk.

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

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

  16. Para Environment (Entorno), seleccione Any environment (Cualquier entorno) o Specific environment(s) (Entornos específicos).

    • Si selecciona Specific environment(s) (Entornos específicos), puede elegir uno o varios entornos de la lista desplegable. EventBridge agrega todos los entornos que selecciona en la lista EnvironmentName[ ], en la sección Detail (Detalle) 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.

  17. Elija Siguiente.

  18. En Tipos de destino, seleccione Servicio de AWS.

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

    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 los precios de AWS, consulte https://aws.amazon.com/pricing/. Algunos servicios forman parte del nivel de uso gratuito de AWS. Si es un cliente nuevo, puede probar estos servicios de forma gratuita. Para obtener más información, consulte https://aws.amazon.com/free/.

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

  21. Elija Siguiente.

  22. (Opcional) Introduzca una o varias etiquetas para la regla. Para obtener más información, consulte Etiquetas de Amazon EventBridge en la Guía del usuario de Amazon EventBridge.

  23. Elija Siguiente.

  24. Revise los detalles de la regla y seleccione Crear regla.

Ejemplo de patrones de eventos de Elastic Beanstalk

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 Auto Scaling 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 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

La siguiente tabla asigna los campos de evento de Elastic Beanstalk y sus posibles valores de cadena al campo de EventBridge detail-type. Para obtener más información sobre cómo funciona EventBridge con los patrones de eventos de un servicio, consulte Eventos y patrones de eventos en EventBridge.

Campo de EventBridge detail-type Campo de Elastic Beanstalk Status Campo de Elastic Beanstalk Severity Campo de Elastic Beanstalk Message

Cambio de estado de recursos de Elastic Beanstalk

La creación del entorno se ha iniciado

INFO

createEnvironment se está iniciando.

La creación del entorno se ha realizado correctamente

INFO

createEnvironment se ha completado correctamente.

La creación del entorno se ha realizado correctamente

INFO

Entorno lanzado: <Nombre del entorno>. Sin embargo, hubo problemas durante el lanzamiento. Consulte el registro de sucesos para obtener más detalles.

Ha ocurrido un error durante la creación del entorno

ERROR

Error al lanzar el entorno.

La actualización del entorno se ha iniciado

INFO

Se está iniciando la actualización del entorno.

Actualización del entorno realizada correctamente

INFO

La actualización del entorno se ha completado correctamente.

Error al actualizar el entorno

ERROR

Error al implementar la configuración.

La finalización del entorno se ha iniciado

INFO

terminateEnvironment se está iniciando.

Finalización del entorno realizada correctamente

INFO

terminateEnvironment se ha completado correctamente.

Error al finalizar el entorno

INFO

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

Grupo de Auto Scaling creado

INFO

createEnvironment se está iniciando.

Grupo de Auto Scaling eliminado

INFO

createEnvironment se está iniciando.

Instancia añadida

INFO

Se ha añadido la instancia [i-123456789a12b1234] a su entorno.

Instancia eliminada

INFO

Se ha eliminado la instancia [i-123456789a12b1234] de su entorno.

Balanceador de carga creado

INFO

Balanceador de carga creado denominado: <Nombre de LB>

Balanceador de carga eliminado

INFO

Balanceador de carga eliminado denominado: <Nombre de LB>

Cambio del estado

El estado se ha cambiado

INFO/ADVERTENCIA

El estado del entorno ha pasado a <healthStatus>.

El estado se ha cambiado

INFO/ADVERTENCIA

El estado del entorno ha pasado de <healthStatus> a <healthStatus>.

Cambio de estado de actualización administrada

Actualización administrada iniciada

INFO

La actualización de la plataforma administrada está en curso.

Error en la actualización administrada

INFO

Error de actualización administrada, se reintentará en%s minutos.