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/notifySuscrí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/notifySuscríbase a este tema para recibir notificaciones cuando cambie la siguiente ejecución de un trabajo pendiente.
-
$aws/things/nombre-cosa/trabajos/nombre-solicitud/aceptadoEl servicio AWS IoT Jobs publica mensajes de éxito y fracaso sobre un tema de MQTT. El tema se forma añadiendo
acceptedorejectedal tema utilizado para realizar la solicitud. Aquírequest-nameestá el nombre de una solicitud, por ejemplo,Gety el tema puede ser:$aws/things/myThing/jobs/get. AWS IoT Luego, Jobs publica mensajes de éxito sobre el$aws/things/myThing/jobs/get/acceptedtema. -
$aws/things/nombre de la cosa/trabajos/nombre-solicitud/rechazadoAquí,
request-namees el nombre de una solicitud, comoGet. Si la solicitud falla, AWS IoT Jobs publica mensajes de error sobre el$aws/things/myThing/jobs/get/rejectedtema.
También puede utilizar las siguientes operaciones de la API HTTPS:
-
Actualizar el estado de una ejecución de trabajo llamando a la API
UpdateJobExecution. -
Consultar el estado de una ejecución de trabajo llamando a la API
DescribeJobExecution. -
Recuperar una lista de ejecuciones de trabajo pendientes llamando a la API
GetPendingJobExecutions. -
Recuperar la siguiente ejecución de trabajo pendiente llamando a la API
DescribeJobExecutionconjobIdcomo$next. -
Obtener e iniciar la ejecución de trabajo pendiente siguiente llamando a la API
StartNextPendingJobExecution.
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
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/(oMyThing/jobs/notify$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