Partilhar via


Agendar e transmitir trabalhos com a CLI do Azure

Use a CLI do Azure para agendar e controlar trabalhos que atualizam milhões de dispositivos. Use tarefas para:

  • Atualizar as propriedades desejadas
  • Atualizar tags
  • Invocar métodos diretos

Conceitualmente, um trabalho engloba uma dessas ações e rastreia o progresso da execução em relação a um conjunto de dispositivos. Uma consulta de gêmeo de dispositivo define o conjunto de dispositivos com os quais um trabalho interage. Por exemplo, um aplicativo back-end pode usar um trabalho para invocar um método de reinicialização em 10.000 dispositivos, especificado por uma consulta gêmea de dispositivo e agendado em um momento futuro. Esse aplicativo pode então acompanhar o progresso à medida que cada um desses dispositivos recebe e executa o método de reinicialização.

Para saber mais sobre como os trabalhos ajudam a gerenciar operações de gerenciamento de dispositivos em massa, consulte Agendar trabalhos em vários dispositivos.

Nota

Os recursos descritos neste artigo estão disponíveis somente na camada padrão do Hub IoT. Para obter mais informações sobre as camadas básica e padrão/gratuita do Hub IoT, consulte Escolha a camada e o tamanho certos do Hub IoT para sua solução.

Pré-requisitos

  • CLI do Azure. Você também pode executar os comandos neste artigo usando o Azure Cloud Shell, um shell interativo da CLI que é executado em seu navegador ou em um aplicativo como o Terminal do Windows. Se você usa o Cloud Shell, não precisa instalar nada. Se você preferir usar a CLI localmente, este artigo requer a CLI do Azure versão 2.36 ou posterior. Para localizar a versão instalada, execute az --version. Para instalar ou atualizar localmente a CLI do Azure, consulte Instalar a CLI do Azure.

  • Um hub IoT em sua assinatura do Azure. Se você ainda não tiver um hub, siga as etapas em Criar um hub IoT.

Programar uma tarefa para invocar um método direto

Você pode usar tarefas para invocar um método direto em um ou mais dispositivos.

Use o comando az iot hub job create , substituindo os seguintes espaços reservados por seus valores correspondentes. O comando agenda um trabalho que chama um nome de método nos dispositivos de destino.

az iot hub job create --hub-name {HubName} --job-id {JobName} \
                      --job-type scheduleDeviceMethod \
                      --method-name {MethodName} --method-payload {MethodPayload} \
                      --query-condition "{DeviceQuery}"
Marcador de Posição Valor
{HubName} O nome do seu hub IoT.
{JobName} O nome da sua tarefa agendada. Os nomes de trabalho são exclusivos, portanto, escolha um nome de trabalho diferente cada vez que executar esse comando.
{MethodName} O nome do seu método direto.
{MethodPayload} Qualquer carga útil a ser fornecida ao método direto. Se não for necessária carga útil, utilize null.
{DeviceQuery} Uma consulta que define o ou os dispositivos alvo do trabalho. Por exemplo, uma tarefa de dispositivo único pode usar a seguinte condição de consulta: deviceId = 'myExampleDevice'.

Gorjeta

Ao agendar um job az iot hub job create que invoca um método direto, deve especificar valores para ambos os --method-name e --method-payload parâmetros opcionais. Para métodos diretos que não aceitam uma carga útil, especifique null para o parâmetro --method-payload.

Agendar um trabalho para atualizar as propriedades gêmeas de um dispositivo

Você pode usar trabalhos para atualizar uma propriedade desejada do gémeo digital de um dispositivo.

Use o comando az iot hub job create , substituindo os seguintes espaços reservados por seus valores correspondentes. Neste exemplo, estamos agendando uma tarefa para definir o valor da propriedade desejada do gêmeo BuildingNo como 45 para o nosso dispositivo simulado.

az iot hub job create --hub-name {HubName} --job-id {JobName} \
                      --job-type scheduleUpdateTwin \
                      --twin-patch '{JSONTwinPatch}' \
                      --query-condition "{DeviceQuery}"
Marcador de Posição Valor
{HubName} O nome do seu hub IoT.
{JobName} O nome da sua tarefa agendada. Os nomes de trabalho são exclusivos, portanto, escolha um nome de trabalho diferente cada vez que executar esse comando.
{JSONTwinPatch} O trecho JSON que você deseja usar para atualizar as propriedades desejadas do gêmeo do dispositivo. Por exemplo, {"properties":{"desired": {"BuildingNo": 45}}}.
{DeviceQuery} Uma consulta que define o ou os dispositivos alvo do trabalho. Por exemplo, uma tarefa para um único dispositivo pode usar a seguinte condição de consulta: deviceId = 'myExampleDevice'.

Saiba como implementar trabalhos programaticamente usando os SDKs do Azure IoT: Agendar e transmitir trabalhos.