Dispositivos e trabalhos - AWS IoT Core

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/notify

    Inscreva-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-next

    Inscreva-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/accepted

    O serviço AWS IoT Jobs publica mensagens de sucesso e falha em um tópico do MQTT. O tópico é formado anexando accepted ou rejected ao tópico usado para fazer a solicitação. Aqui, request-name está o nome de uma solicitação, como Get 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/rejected

    Aqui, request-name é nome de uma solicitação, como Get. 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:

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 e consulte a IotJobsDataPlane seção do seu idioma preferido.

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/MyThing/jobs/notify (ou $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.