As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Dispositivos e trabalhos
Os dispositivos podem se comunicar com AWS IoT trabalhos usando MQTT, HTTP Signature versão 4 ou HTTP TLS. Para determinar o endpoint a ser usado quando seu dispositivo se comunica com AWS IoT Jobs, execute o DescribeEndpoint comando. Por exemplo, se você executar este comando:
aws iot describe-endpoint --endpoint-type iot:Data-ATS
você obterá um resultado semelhante ao seguinte:
{ "endpointAddress": "a1b2c3d4e5f6g7-ats.iot.us-west-2.amazonaws.com" }
Os dispositivos podem se comunicar com AWS IoT Jobs usando o protocolo MQTT. Os dispositivos se inscrevem nos tópicos do MQTT para serem notificados sobre novos trabalhos e receber respostas do serviço AWS IoT Jobs. Os dispositivos publicam em tópicos MQTT para consultar ou atualizar o estado do lançamento de um trabalho. Cada dispositivo tem seu próprio tópico geral MQTT. Para obter mais informações sobre publicação e assinatura em tópicos MQTT, consulte Protocolos de comunicação do dispositivo.
Com esse método de comunicação, seu dispositivo usa o certificado e a chave privada específicos do dispositivo para se autenticar com o Jobs. AWS IoT
Seus dispositivos podem se inscrever nos tópicos a seguir. thing-name
é o nome do objeto associado ao dispositivo.
-
$aws/things/
thing-name
/jobs/notifyInscreva-se neste tópico para receber uma notificação quando um lançamento de trabalho for adicionado ou removido da lista de lançamentos de trabalhos pendentes.
-
$aws/things/
thing-name
/jobs/notify-nextInscreva-se neste tópico para receber uma notificação quando a próxima execução de trabalho pendente for alterada.
-
$aws/things/
thing-name
/jobs/request-name
/acceptedO serviço AWS IoT Jobs publica mensagens de sucesso e falha em um tópico do MQTT. O tópico é formado anexando
accepted
ourejected
ao tópico usado para fazer a solicitação. Aqui,request-name
está o nome de uma solicitação, comoGet
e o tópico pode ser:$aws/things/myThing/jobs/get
. AWS IoT Em seguida, Jobs publica mensagens de sucesso sobre o$aws/things/myThing/jobs/get/accepted
tópico. -
$aws/things/
thing-name
/jobs/request-name
/rejectedAqui,
request-name
é nome de uma solicitação, comoGet
. Se a solicitação falhar, AWS IoT Jobs publicará mensagens de falha sobre o$aws/things/myThing/jobs/get/rejected
tópico.
Você também pode usar as seguintes operações de API de HTTPS:
-
Atualizar o status de uma execução de trabalho chamando a API
UpdateJobExecution
. -
Consultar o status da execução de um trabalho chamando a API
DescribeJobExecution
. -
Recuperar uma lista de execuções de trabalhos pendentes, chamando a API
GetPendingJobExecutions
. -
Recuperar a próxima execução de trabalho pendente chamando a API
DescribeJobExecution
com ojobId
$next
. -
Obter e iniciar a próxima execução de trabalho pendente chamando a API
StartNextPendingJobExecution
.
Os dispositivos podem se comunicar com AWS IoT Jobs usando a assinatura HTTP versão 4 na porta 443. Este é o método usado pelos SDKs da AWS e pela CLI. Para obter mais informações sobre essas ferramentas, consulte Referência de AWS CLI comandos: iot-jobs-data ou AWS SDKs e ferramentas
Com esse método de comunicação, seu dispositivo usa credenciais do IAM para se autenticar com AWS IoT Jobs.
Os comandos a seguir estão disponíveis usando esse 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 ...
Os dispositivos podem se comunicar com AWS IoT Jobs usando HTTP TLS na porta 8443 usando um cliente de software de terceiros que ofereça suporte a esse protocolo.
Com esse método, seu dispositivo usa a autenticação baseada em certificado X.509 (por exemplo, o certificado específico para o dispositivo e a chave privada).
Os comandos a seguir estão disponíveis usando esse método:
-
DescribeJobExecution
-
GetPendingJobExecutions
-
StartNextPendingJobExecution
-
UpdateJobExecution
Programar dispositivos para funcionarem com trabalhos
Os exemplos nesta seção usam MQTT para ilustrar como um dispositivo funciona com serviço Jobs da AWS IoT . Ou você pode usar os comandos correspondentes da API ou da CLI. Nesses exemplos, estamos supondo que um dispositivo chamado MyThing
assinará os seguintes tópicos MQTT:
-
$aws/things/
(ouMyThing
/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
Se você estiver usando a assinatura de código para AWS IoT, o código do dispositivo deverá verificar a assinatura do seu arquivo de código. A assinatura está no documento de trabalho na propriedade codesign
. Para obter mais informações sobre como verificar uma assinatura de arquivo de código, consulte Device Agent Sample