View a markdown version of this page

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 los AWS IoT trabajos 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 comando. DescribeEndpoint 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 sobre nuevos trabajos y recibir respuestas del servicio AWS IoT Jobs. 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 su certificado específico del dispositivo y su 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/nombre de la cosa/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/nombre-cosa/-siguiente jobs/notify

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

  • $aws/things/nombre-cosa/trabajos/nombre-solicitud/aceptado

    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 está el nombre de una solicitud, por ejemplo, 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/nombre de la cosa/trabajos/nombre-solicitud/rechazado

    Aquí, request-name es el nombre de una solicitud, como Get. Si la solicitud falla, AWS IoT Jobs publica 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 versión 4 de la firma HTTP 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 los AWS SDK y las herramientas y consulte la sección correspondiente al IotJobsDataPlane idioma que prefiera.

Con este método de comunicación, el dispositivo usa las credenciales de IAM para autenticarse con 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 que admite este protocolo.

Con este método, el dispositivo utiliza la autenticación X.509 basada en certificados (por ejemplo, el certificado y la clave privada específicos del dispositivo).

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 . También puede usar los comandos de la API o la 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 para AWS IoT, el código del dispositivo debe verificar la firma del archivo de código. 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.