Flujo de trabajo del dispositivo - AWS IoT Core

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.

Flujo de trabajo del dispositivo

Un dispositivo puede gestionar los trabajos que ejecuta mediante una de las siguientes formas.

  • Obtención del siguiente trabajo
    1. Cuando un dispositivo está online, debe suscribirse al tema notify-next del dispositivo.

    2. Llame a la API de MQTT de DescribeJobExecution con jobId $next para obtener el siguiente trabajo, su documento de trabajo y otros detalles, incluido el estado guardado en statusDetails. Si el documento de trabajo tiene una forma en archivo de código, debe verificar la firma antes de seguir procesando la solicitud del trabajo.

    3. Llame a la API de MQTT de UpdateJobExecution para actualizar el estado del trabajo. También puede combinar este paso y el anterior en una llamada. El dispositivo puede llamar a StartNextPendingJobExecution.

    4. Si lo prefiere, puede añadir un temporizador de pasos estableciendo un valor para stepTimeoutInMinutes si llama a UpdateJobExecution o StartNextPendingJobExecution.

    5. Realice las acciones especificadas por el documento de trabajo con la API de MQTT de UpdateJobExecution para informar del progreso del trabajo.

    6. Siga monitorizando la ejecución del trabajo llamando a la API de MQTT DescribeJobExecution con este jobId. Si se elimina la ejecución del trabajo, DescribeJobExecution devuelve una ResourceNotFoundException.

      Si la ejecución de trabajo se cancela o se elimina al mismo tiempo que el dispositivo está ejecutando el trabajo, el dispositivo debería ser capaz de recuperarse a un estado válido.

    7. Llame a la API de MQTT de UpdateJobExecution cuando termine con el trabajo para actualizar el estado del trabajo e informar del éxito o error.

    8. El siguiente trabajo disponible para su ejecución (si lo hubiera) cambiará, puesto que el estado de la ejecución del trabajo ha cambiado a estado final. Se notifica al dispositivo que la siguiente ejecución de trabajo pendiente ha cambiado. En este momento, el dispositivo debe continuar como se describe en el paso 2.

    Si el dispositivo permanece en línea, seguirá recibiendo notificaciones de la ejecución del próximo trabajo pendiente. Esto incluye sus datos de ejecución de trabajos, cuando completa un trabajo o se agrega una nueva ejecución de trabajo pendiente. Cuando se produzca esto, el dispositivo seguirá como se describe en el paso 2.

  • Selección de los trabajos disponibles
    1. Cuando un dispositivo está online, debe suscribirse al tema notify del objeto.

    2. Llame a la API de MQTT de GetPendingJobExecutions para obtener una lista de ejecuciones de trabajo pendientes.

    3. Si la lista contiene una o varias ejecuciones de trabajo, elija una.

    4. Llame a la API de MQTT DescribeJobExecution para obtener el documento de trabajo y otros detalles, incluido cualquier estado guardado en statusDetails.

    5. Llame a la API de MQTT de UpdateJobExecution para actualizar el estado del trabajo. Si el campo includeJobDocument está establecido en true en este comando, el dispositivo puede omitir el paso anterior y recuperar el documento de trabajo en este momento.

    6. Si lo prefiere, puede añadir un temporizador de pasos estableciendo un valor para stepTimeoutInMinutes si llama a UpdateJobExecution.

    7. Realice las acciones especificadas por el documento de trabajo con la API de MQTT de UpdateJobExecution para informar del progreso del trabajo.

    8. Siga monitorizando la ejecución del trabajo llamando a la API de MQTT DescribeJobExecution con este jobId. Si la ejecución de trabajo se cancela o se elimina al mismo tiempo que el dispositivo está ejecutando el trabajo, el dispositivo debería ser capaz de recuperarse a un estado válido.

    9. Llame a la API de MQTT de UpdateJobExecution cuando termine con el trabajo para actualizar el estado del trabajo e informar del éxito o error.

    Si el dispositivo continúa online, se le notificarán todas las ejecuciones de trabajo pendientes cuando una nueva ejecución de trabajo pendiente esté disponible. Cuando se produzca esto, el dispositivo podrá seguir como se describe en el paso 2.

Si el dispositivo no puede ejecutar el trabajo, debe llamar a la API de MQTT de UpdateJobExecution para actualizar el estado del trabajo a REJECTED.