Dispositivos y trabajos - 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.

Dispositivos y trabajos

Los dispositivos pueden comunicarse con AWS IoT Jobs mediante MQTT, HTTP Signature versión 4 o HTTP TLS. Para determinar el punto final que se utilizará cuando el dispositivo se comunique con AWS IoT Jobs, ejecute el DescribeEndpoint comando. Por ejemplo, si ejecuta este comando:

aws iot describe-endpoint --endpoint-type iot:Data-ATS

obtendrá un resultado similar al siguiente:

{ "endpointAddress": "a1b2c3d4e5f6g7-ats.iot.us-west-2.amazonaws.com" }

Los dispositivos pueden comunicarse con AWS IoT Jobs mediante el protocolo MQTT. Los dispositivos se suscriben a los temas de MQTT para recibir notificaciones de nuevos trabajos y recibir respuestas del servicio de AWS IoT trabajos. Los dispositivos publican en temas MQTT para consultar o actualizar el estado de lanzamiento de un trabajo. Cada dispositivo tiene su propio tema MQTT general. Para obtener más información acerca de cómo publicar en temas de MQTT y suscribirse a ellos, consulte Protocolos de comunicación de dispositivos.

Con este método de comunicación, el dispositivo utiliza el certificado específico del dispositivo y la clave privada para autenticarse con Jobs. AWS IoT

Los dispositivos pueden suscribirse a los siguientes temas. thing-name es el nombre del objeto asociado con el dispositivo.

  • $aws/things/thing-name/jobs/notify

    Suscríbase a este tema para recibir notificaciones cuando se añada o elimine un lanzamiento de trabajo de la lista de lanzamientos de trabajos pendientes.

  • $aws/things/thing-name/jobs/notify-next

    Suscríbase a este tema para recibir notificaciones cuando cambie la siguiente ejecución de un trabajo pendiente.

  • $aws/things/thing-name/jobs/request-name/accepted

    El servicio AWS IoT Jobs publica mensajes de éxito y fracaso sobre un tema de MQTT. El tema se forma añadiendo accepted o rejected al tema utilizado para realizar la solicitud. Aquí, request-name es el nombre de una solicitud como Get y el tema puede ser:$aws/things/myThing/jobs/get. AWS IoT Luego, Jobs publica mensajes de éxito sobre el $aws/things/myThing/jobs/get/accepted tema.

  • $aws/things/thing-name/jobs/request-name/rejected

    Aquí, request-name es el nombre de una solicitud, como Get. Si la solicitud falló, AWS IoT Jobs publicará los mensajes de error sobre el $aws/things/myThing/jobs/get/rejected tema.

También puede utilizar las siguientes operaciones de la API HTTPS:

Los dispositivos pueden comunicarse con AWS IoT Jobs mediante la firma HTTP, versión 4, en el puerto 443. Este es el método utilizado por los SDK de AWS y la CLI. Para obtener más información sobre estas herramientas, consulte la Referencia de AWS CLI comandos iot-jobs-data o AWS SDK y herramientas y consulte la IotJobsDataPlane sección correspondiente al idioma que prefiera.

Con este método de comunicación, el dispositivo utiliza las credenciales de IAM para autenticarse en Jobs. AWS IoT

Los siguientes comandos están disponibles a través de este método:

  • DescribeJobExecution

    aws iot-jobs-data describe-job-execution ...

  • GetPendingJobExecutions

    aws iot-jobs-data get-pending-job-executions ...

  • StartNextPendingJobExecution

    aws iot-jobs-data start-next-pending-job-execution ...

  • UpdateJobExecution

    aws iot-jobs-data update-job-execution ...

Los dispositivos pueden comunicarse con AWS IoT Jobs mediante HTTP TLS en el puerto 8443 mediante un cliente de software de terceros compatible con este protocolo.

Con este método, el dispositivo utiliza la autenticación basada en certificados X.509 (por ejemplo, utilizando su propio certificado y su propia clave privada).

Los siguientes comandos están disponibles a través de este método:

  • DescribeJobExecution

  • GetPendingJobExecutions

  • StartNextPendingJobExecution

  • UpdateJobExecution

Programación de dispositivos para trabajar con trabajos

En los ejemplos de esta sección se utiliza MQTT para ilustrar cómo funciona un dispositivo con el servicio Jobs de AWS IoT . O bien, puede usar los comandos API o CLI correspondientes. Para estos ejemplos, supondremos que un dispositivo llamado MyThing se suscribe a los siguientes temas de MQTT:

  • $aws/things/MyThing/jobs/notify (o $aws/things/MyThing/jobs/notify-next)

  • $aws/things/MyThing/jobs/get/accepted

  • $aws/things/MyThing/jobs/get/rejected

  • $aws/things/MyThing/jobs/jobId/get/accepted

  • $aws/things/MyThing/jobs/jobId/get/rejected

Si utilizas la firma de código AWS IoT, el código de tu dispositivo debe verificar la firma del archivo de códigos. La firma se encuentra en el documento de trabajo, en la propiedad codesign. Para obtener más información sobre cómo verificar una firma en un archivo de código, consulte el ejemplo de agente de dispositivo.