

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
<a name="jobs-devices"></a>

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"
}
```

## Uso do protocolo MQTT
<a name="jobs-using-mqtt"></a>

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](protocols.md).

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 IoTEm 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:
+ Atualizar o status de uma execução de trabalho chamando a API [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_UpdateJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_UpdateJobExecution.html).
+ Consultar o status da execução de um trabalho chamando a API [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html).
+ Recuperar uma lista de execuções de trabalhos pendentes, chamando a API [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_GetPendingJobExecutions.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_GetPendingJobExecutions.html).
+ Recuperar a próxima execução de trabalho pendente chamando a API [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html) com o `jobId` `$next`.
+ Acessar e iniciar a próxima execução de trabalho pendente chamando a API [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_StartNextPendingJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_StartNextPendingJobExecution.html).

## Uso do HTTP Signature Versão 4
<a name="jobs-using-http-v4"></a>

Os dispositivos podem se comunicar com AWS IoT Jobs usando a assinatura HTTP versão 4 na porta 443. Esse é o método usado pela AWS SDKs e CLI. Para obter mais informações sobre essas ferramentas, consulte [Referência de AWS CLI Comandos: iot-jobs-data](https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/index.html) ou [Ferramentas AWS SDKs e](https://aws.amazon.com/tools/#sdk) 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 ...` 

## Uso do HTTP TLS
<a name="jobs-using-http-tls"></a>

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
<a name="programming-devices"></a>

Os exemplos nesta seção usam MQTT para ilustrar como um dispositivo funciona com serviço Jobs da AWS IoT. Se desejar, você pode usar os comandos da API ou CLI correspondentes. 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 paraAWS 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](https://github.com/aws/aws-iot-device-sdk-js#jobsAgent).

**Topics**
+ [Programar dispositivos para funcionarem com trabalhos](#programming-devices)
+ [Fluxo de trabalho do dispositivo](jobs-workflow-device-online.md)
+ [Fluxo de trabalho](jobs-workflow-jobs-online.md)
+ [Notificações de trabalhos](jobs-comm-notifications.md)