Reciba notificaciones de despliegue y estado de los componentes - AWS IoT Greengrass

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.

Reciba notificaciones de despliegue y estado de los componentes

Las reglas de EventBridge eventos de Amazon le proporcionan notificaciones sobre los cambios de estado de las implementaciones de Greengrass que reciben sus dispositivos y de los componentes instalados en sus dispositivos. EventBridge ofrece un flujo casi en tiempo real de los eventos del sistema que describe los cambios en AWS los recursos. AWS IoT Greengrass envía estos eventos haciendo EventBridge el mejor esfuerzo posible. Esto significa que AWS IoT Greengrass intenta enviar todos los eventos EventBridge pero, en algunos casos excepcionales, es posible que no se entregue un evento. Además, AWS IoT Greengrass puede enviar varias copias de un evento determinado, lo que significa que es posible que los oyentes del evento no reciban los eventos en el orden en que se produjeron.

nota

Amazon EventBridge es un servicio de bus de eventos que puede utilizar para conectar sus aplicaciones con datos de diversas fuentes, como los dispositivos principales de Greengrass y las notificaciones de despliegue y componentes. Para obtener más información, consulta ¿Qué es Amazon EventBridge? en la Guía del EventBridge usuario de Amazon.

Evento de cambio de estado de despliegue

AWS IoT Greengrass emite un evento cuando una implementación entra en los siguientes estados: FAILEDSUCCEEDED, COMPLETEDREJECTED, yCANCELED. Puede crear una EventBridge regla que se aplique a todas las transiciones de estado o a los estados que especifique. Cuando una implementación entra en un estado que inicia una regla, EventBridge invoca las acciones objetivo definidas en la regla. Esto le permite enviar notificaciones, capturar información sobre el evento, tomar medidas correctivas o iniciar otros eventos en respuesta a un cambio de estado. Por ejemplo, puede crear reglas para los siguientes casos de uso:

  • Iniciar operaciones posteriores a la implementación, como descargar recursos y enviar notificaciones al personal.

  • Envíe notificaciones en caso de una implementación correcta o con error.

  • Publicar métricas personalizadas sobre los eventos de implementación.

El evento de un cambio de estado de la implementación tiene el siguiente formato:

{ "version":"0", "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8", "detail-type":"Greengrass V2 Effective Deployment Status Change", "source":"aws.greengrass", "account":"123456789012", "region":"us-west-2", "time":"2018-03-22T00:38:11Z", "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"], "detail":{ "deploymentId": "4f38f1a7-3dd0-42a1-af48-EXAMPLE09681", "coreDeviceExecutionStatus": "FAILED|SUCCEEDED|COMPLETED|REJECTED|CANCELED", "statusDetails": { "errorStack": ["DEPLOYMENT_FAILURE", "ARTIFACT_DOWNLOAD_ERROR", "S3_ERROR", "S3_ACCESS_DENIED", "S3_HEAD_OBJECT_ACCESS_DENIED"], "errorTypes": ["DEPENDENCY_ERROR", "PERMISSION_ERROR"], }, "reason": "S3_HEAD_OBJECT_ACCESS_DENIED: FAILED_NO_STATE_CHANGE: Failed to download artifact name: 's3://pentest27/nucleus/281/aws.greengrass.nucleus.zip' for component aws.greengrass.Nucleus-2.8.1, reason: S3 HeadObject returns 403 Access Denied. Ensure the IAM role associated with the core device has a policy granting s3:GetObject. null (Service: S3, Status Code: 403, Request ID: HR94ZNT2161DAR58, Extended Request ID: wTX4DDI+qigQt3uzwl9rlnQiYlBgwvPm/KJFWeFAn9t1mnGXTms/luLCYANgq08RIH+x2H+hEKc=)" } }

Puede crear reglas y eventos que le informarán sobre el estado de un despliegue. Un evento se inicia cuando una implementación se completa como FAILEDSUCCEEDED,COMPLETED,REJECTED, oCANCELED. Si la implementación falló en el dispositivo principal, recibirá una respuesta detallada que explica por qué la implementación falló. Para obtener más información sobre los códigos de error de despliegue, consulteCódigos de error de implementación detallados.

Estados de implementación
  • FAILED. La implementación no se ha realizado correctamente

  • SUCCEEDED. El despliegue dirigido a un grupo de cosas se completó correctamente.

  • COMPLETED. El despliegue dirigido a algo se completó con éxito.

  • REJECTED. Se rechazó el despliegue. Para obtener más información, consulte el statusDetails campo.

  • CANCELED. El usuario canceló la implementación.

Es posible que los eventos se dupliquen o estén desordenados. Para determinar el orden de los eventos, utilice la propiedad time.

Para obtener una lista completa de los códigos de error en errorStacks yerrorTypes, consulte Códigos de error de implementación detallados yCódigos de estado detallados de los componentes.

Evento de cambio de estado del componente

Para AWS IoT Greengrass las versiones 2.12.2 y anteriores, Greengrass emite un evento cuando un componente entra en los siguientes estados: y. ERRORED BROKEN Para las versiones 2.12.3 y posteriores del núcleo de Greengrass, Greengrass emite un evento cuando un componente entra en los siguientes estados:,, y. ERRORED BROKEN RUNNING FINISHED Greengrass también emitirá un evento cuando se complete un despliegue. Puede crear una EventBridge regla que se aplique a todas las transiciones de estado o a los estados que especifique. Cuando un componente instalado entra en un estado que inicia una regla, EventBridge invoca las acciones de destino definidas en la regla. Esto le permite enviar notificaciones, capturar información sobre el evento, tomar medidas correctivas o iniciar otros eventos en respuesta a un cambio de estado.

El evento de cambio de estado de un componente utiliza los siguientes formatos:

Greengrass nucleus v2.12.2 and earlier

Estado del componente: ERRORED o BROKEN

{ "version":"0", "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8", "detail-type":"Greengrass V2 Installed Component Status Change", "source":"aws.greengrass", "account":"123456789012", "region":"us-west-2", "time":"2018-03-22T00:38:11Z", "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"], "detail": { "components": [ { "componentName": "MyComponent", "componentVersion": "1.0.0", "root": true, "lifecycleState": "ERRORED|BROKEN", "lifecycleStatusCodes": ["STARTUP_ERROR"], "lifecycleStateDetails": "An error occurred during startup. The startup script exited with code 1." } ] } }
Greengrass nucleus v2.12.3 and later

Estado del componente: ERRORED o BROKEN

{ "version":"0", "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8", "detail-type":"Greengrass V2 Installed Component Status Change", "source":"aws.greengrass", "account":"123456789012", "region":"us-west-2", "time":"2018-03-22T00:38:11Z", "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"], "detail": { "components": [ { "componentName": "MyComponent", "componentVersion": "1.0.0", "root": true, "lifecycleState": "ERRORED|BROKEN", "lifecycleStatusCodes": ["STARTUP_ERROR"], "lifecycleStateDetails": "An error occurred during startup. The startup script exited with code 1." } ] } }

Estado del componente: RUNNING o FINISHED

{ "version":"0", "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8", "detail-type":"Greengrass V2 Installed Component Status Change", "source":"aws.greengrass", "account":"123456789012", "region":"us-west-2", "time":"2018-03-22T00:38:11Z", "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"], "detail": { "components": [ { "componentName": "MyComponent", "componentVersion": "1.0.0", "root": true, "lifecycleState": "RUNNING|FINISHED", "lifecycleStateDetails": null } ] } }

Puede crear reglas y eventos que le informarán sobre el estado de un componente instalado. Se inicia un evento cuando un componente cambia de estado en el dispositivo. Recibirá una respuesta detallada en la que se explicará por qué un componente tiene errores o está averiado. También recibirá un código de estado que indicará el motivo del fallo. Para obtener más información sobre los códigos de estado de los componentes, consulteCódigos de estado detallados de los componentes.

Requisitos previos para crear reglas EventBridge

Antes de crear una EventBridge regla para AWS IoT Greengrass, haga lo siguiente:

  • Familiarícese con los eventos, las reglas y los objetivos de EventBridge.

  • Cree y configure los objetivos invocados por sus EventBridge reglas. Las reglas pueden invocar muchos tipos de destinos, entre los que se incluyen:

    • Amazon Simple Notification Service (Amazon SNS)

    • AWS Lambda funciones

    • Amazon Kinesis Video Streams

    • Colas de Amazon Simple Queue Service (Amazon SQS)

Para obtener más información, consulta ¿Qué es Amazon EventBridge? y Introducción a Amazon EventBridge en la Guía del EventBridge usuario de Amazon.

Configura las notificaciones de estado del dispositivo (consola)

Siga los siguientes pasos para crear una EventBridge regla que publique un tema de Amazon SNS cuando cambie el estado de despliegue de un grupo. De este modo, los servidores web, las direcciones de correo electrónico y otros suscriptores del tema podrán responder al evento. Para obtener más información, consulta Crear una EventBridge regla que se active en un evento desde un AWS recurso en la Guía del EventBridge usuario de Amazon.

  1. Abre la EventBridgeconsola de Amazon.

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

  3. Elija Crear regla.

  4. Escriba un nombre y una descripción para la regla.

    Una regla no puede tener el mismo nombre que otra regla de la misma región y del mismo bus de eventos.

  5. En Bus de eventos, seleccione el bus de eventos que desea asociar a esta regla. Si desea que esta regla coincida con eventos procedentes de su cuenta, seleccione Bus de eventos predeterminado de AWS . Cuando un AWS servicio de tu cuenta emite un evento, siempre va al bus de eventos predeterminado de tu cuenta.

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

  7. Seleccione Siguiente.

  8. En Origen de eventos, seleccione (Eventos de AWS ).

  9. En Patrón de eventos, seleccione servicios AWS .

  10. En Servicio de AWS , elija Greengrass.

  11. En Tipo de evento, elige una de las siguientes opciones:

    • Para los eventos de despliegue, elija Greengrass V2 Effective Deployment Status Change.

    • Para los eventos de componentes, elija Greengrass V2 Installed Component Status Change.

  12. Seleccione Siguiente.

  13. En Tipos de destino (Tipos de destino), elija AWS service.

  14. En Seleccionar destinos, configure su destino. En este ejemplo se utiliza un tema de Amazon SNS, pero se pueden configurar otros tipos de destino para enviar notificaciones.

    1. En Destino, elija Tema de SNS.

    2. En Topic (Tema), elija el tema de destino.

    3. Elija Siguiente.

  15. Seleccione Siguiente.

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

Configurar las notificaciones de estado del dispositivo (CLI)

Siga los siguientes pasos para crear una EventBridge regla que publique un tema de Amazon SNS cuando se produzca un evento de cambio de estado de Greengrass. De este modo, los servidores web, las direcciones de correo electrónico y otros suscriptores del tema podrán responder al evento.

  1. Crear la regla.

    • Para eventos de cambio de estado de despliegue.

      aws events put-rule \ --name TestRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail-type\": [\"Greengrass V2 Effective Deployment Status Change\"]}"
    • Para eventos de cambio de estado de componentes.

      aws events put-rule \ --name TestRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail-type\": [\"Greengrass V2 Installed Component Status Change\"]}"

    Las propiedades que se omiten en el patrón no se tienen en cuenta.

  2. Añada el tema como destino de la regla.

    • Sustituya topic-arn por el ARN de su tema de Amazon SNS.

    aws events put-targets \ --rule TestRule \ --targets "Id"="1","Arn"="topic-arn"
    nota

    Para permitir que Amazon llame EventBridge a tu tema objetivo, debes añadir a tu tema una política basada en recursos. Para obtener más información, consulte los permisos de Amazon SNS en la Guía EventBridge del usuario de Amazon.

Para obtener más información, consulta Eventos y patrones de eventos EventBridge en la Guía del EventBridge usuario de Amazon.

Configura las notificaciones de estado del dispositivo (AWS CloudFormation)

Utilice AWS CloudFormation plantillas para crear EventBridge reglas que envíen notificaciones sobre los cambios de estado para las implementaciones de su grupo de Greengrass. Para obtener más información, consulta la referencia de tipos de EventBridge recursos de Amazon en la Guía del AWS CloudFormation usuario.

Véase también