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/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/
thing-name
/jobs/notify-nextSuscríbase a este tema para recibir notificaciones cuando cambie la siguiente ejecución de un trabajo pendiente.
-
$aws/things/
thing-name
/jobs/request-name
/acceptedEl servicio AWS IoT Jobs publica mensajes de éxito y fracaso sobre un tema de MQTT. El tema se forma añadiendo
accepted
orejected
al tema utilizado para realizar la solicitud. Aquí,request-name
es el nombre de una solicitud comoGet
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
/rejectedAquí,
request-name
es el nombre de una solicitud, comoGet
. 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:
-
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
DescribeJobExecution
conjobId
como$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 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
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/
(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 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