Partilhar via


Criar e excluir rotas e pontos de extremidade usando a CLI do Azure

Este artigo mostra como gerir rotas e endpoints do Hub IoT do Azure usando a CLI do Azure. Saiba como usar a Azure CLI para criar rotas e pontos de extremidade para os Hubs de Eventos do Azure, as filas e tópicos do Barramento de Serviço do Azure, o Armazenamento do Azure e o Cosmos DB.

Para saber mais sobre como funciona o encaminhamento no IoT Hub, consulte Usar o encaminhamento de mensagens do IoT Hub para enviar mensagens de dispositivo para nuvem para os serviços Azure. Para explicar como configurar uma rota que envie mensagens para armazenamento e depois testar num dispositivo simulado, veja o Tutorial: Enviar dados do dispositivo para o Azure Storage usando o encaminhamento de mensagens do IoT Hub.

Pré-requisitos

Os procedimentos descritos no artigo usam os seguintes recursos:

  • A ferramenta CLI do Azure
  • Um hub IoT
  • Um serviço de ponto de extremidade no Azure

CLI do Azure

Este artigo usa a CLI do Azure para trabalhar com o Hub IoT e outros serviços do Azure. Você pode escolher como acessar a CLI do Azure:

Hub IoT

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

Serviço de ponto final

Você precisa de pelo menos um outro serviço do Azure para usar como endpoint para a rota. O ponto de extremidade recebe mensagens do dispositivo e registos de eventos.

Decida qual serviço do Azure você deseja usar como ponto de extremidade para receber dados de dispositivo e evento roteados: um hub de eventos, uma fila ou tópico de serviço, uma conta de armazenamento ou um contêiner do Cosmos DB. Para o serviço que escolher usar, conclua as etapas para criar um serviço de endpoint.

  1. Crie um namespace de Hubs de Eventos e um hub de eventos. Para mais informações, consulte Quickstart: Criar um hub de eventos usando Azure CLI.

  2. Crie uma regra de autorização que seja usada para dar permissão ao IoT Hub para enviar dados para o event hub.

    Gorjeta

    O valor name do parâmetro RootManageSharedAccessKey é o nome padrão que permite as permissões Gerir, Enviar, Ouvir (acesso). Se você quiser restringir as declarações, dê ao name parâmetro seu próprio nome exclusivo e inclua o --rights sinalizador seguido por uma das declarações. Por exemplo, --name my-name --rights Send.

    az eventhubs eventhub authorization-rule create --resource-group my-resource-group --namespace-name my-routing-namespace --eventhub-name my-event-hubs --name RootManageSharedAccessKey
    

    Para obter mais informações, consulte Autorizar acesso aos Hubs de Eventos do Azure.

Criar um ponto final

Todas as rotas do IoT Hub apontam para um endpoint, que recebe os dados do dispositivo e do evento encaminhados. Mais de uma rota pode apontar para o mesmo destino final. Atualmente, o Hub IoT oferece suporte a endereços de rede para hubs de eventos, filas ou tópicos do Service Bus, armazenamento e Cosmos DB. Uma instância do serviço que você usa para seu ponto de extremidade deve existir em sua assinatura do Azure antes de criar o ponto de extremidade.

Nota

Este artigo usa o grupo de comandos az iot hub message-endpoint , que foi introduzido na versão 0.19.0 da extensão azure-iot para a CLI do Azure. As versões anteriores da extensão azure-iot usavam o az iot hub routing-endpoint grupo de comandos, que não é mais suportado.

Use o seguinte comando para atualizar para a versão mais recente da extensão azure-iot:

az extension update --name azure-iot

Para criar um ponto de extremidade do Event Hubs, utilize a regra de autorização que criou nos pré-requisitos.

  1. Use o comando az eventhubs eventhub authorization-rule keys list para listar sua regra de autorização. Forneça os seguintes valores para as variáveis de substituição:

    parâmetro valor
    eventhub_group Grupo de recursos do hub de eventos.
    eventhub_namespace Nome do namespace Hubs de Eventos.
    eventhub_name Nome do hub de eventos.
    rule_name O nome da regra de autorização para o hub de eventos. Se você copiou o exemplo nos pré-requisitos, esse nome é RootManageSharedAccessKey.
    az eventhubs eventhub authorization-rule keys list --resource-group {eventhub_group} --namespace-name {eventhub_namespace} --eventhub-name my-event-hubs --name {rule_name}
    
  2. Copie a sua cadeia de conexão do hub de eventos a partir da saída.

  3. Use o comando az iot hub message-endpoint create eventhub para criar o seu ponto de extremidade personalizado. Forneça os seguintes valores para as variáveis de substituição:

    parâmetro valor
    iothub_name O nome do hub IoT onde esse ponto de extremidade está sendo criado.
    endpoint_name Um nome único para o novo ponto de extremidade.
    eventhub_subscription ID de assinatura do hub de eventos. Esse argumento pode ser deixado de lado se o hub de eventos estiver na mesma assinatura que o hub IoT.
    eventhub_group Grupo de recursos do hub de eventos. Esse argumento pode ser deixado de lado se o hub de eventos estiver no mesmo grupo de recursos que o hub IoT.
    eventhub_connection_string A cadeia de conexão que copiaste da regra de autorização do hub de eventos.
    az iot hub message-endpoint create eventhub --hub-name {iothub_name} --endpoint-name {endpoint_name}  --connection-string "{eventhub_connection_string}" --endpoint-subscription-id {eventhub_subscription} --endpoint-resource-group {eventhub_group}
    

Excluir um ponto de extremidade

Se pretender eliminar um ponto de extremidade do seu hub IoT, utilize o comando az iot hub message-endpoint delete. Com esse comando, você pode excluir um único ponto de extremidade, excluir todos os pontos de extremidade de um único tipo ou excluir todos os pontos de extremidade de um hub.

Por exemplo, o comando seguinte elimina todos os pontos de extremidade num hub IoT que apontam para recursos de armazenamento:

az iot hub message-endpoint delete --hub-name {iothub_name} --endpoint-type storage-container

Criar uma rota do Hub IoT

No Hub IoT, você pode criar uma rota para enviar mensagens ou capturar eventos. Cada rota tem uma fonte de dados e um ponto de extremidade. A fonte de dados é onde as mensagens ou logs de eventos se originam. O ponto de extremidade é onde as mensagens ou registos de eventos terminam. Você escolhe locais para a fonte de dados e o ponto de extremidade quando cria uma nova rota em seu hub IoT. Opcionalmente, podes adicionar consultas às rotas das mensagens para filtrar mensagens ou eventos antes de irem para o endpoint.

Nota

Este artigo usa o grupo de comandos az iot hub message-route , que foi introduzido na versão 0.19.0 da extensão azure-iot para a CLI do Azure. As versões anteriores da extensão azure-iot usavam o az iot hub route grupo de comandos, que não é mais suportado.

Use o seguinte comando para atualizar para a versão mais recente da extensão azure-iot:

az extension update --name azure-iot
  1. Use o comando az iot hub message-route create para criar uma nova rota do Hub IoT usando esse ponto de extremidade. Forneça os seguintes valores para as variáveis de substituição:

    parâmetro valor
    iothub_name O nome do hub IoT onde essa rota está sendo criada.
    route_name Um nome exclusivo para a nova rota.
    endpoint_name O nome do endpoint para onde a rota envia os dados.
    fonte_de_dados A origem da rota. Os valores aceites são: deviceconnectionstateevents, devicejoblifecycleevents, devicelifecycleevents, devicemessages, digitaltwinchangeevents, invalid, ou twinchangeevents.
    az iot hub message-route create --hub-name {iothub_name} --route-name {route_name} --endpoint-name {endpoint_name} --source {data_source}
    
  2. Para confirmar se a nova rota está no seu hub IoT, utilize o comando az iot hub message-route list para ver todas as rotas no seu hub IoT.

    az iot hub message-route list --hub-name {iothub_name}
    

    Você verá uma resposta na CLI do Azure semelhante a este exemplo:

    [
       {
         "condition": "true",
         "endpointNames": [
           "endpoint_name"
         ],
         "isEnabled": true,
         "name": "route_name",
         "source": "DeviceConnectionStateEvents"
       }
    ]
    

Atualizar uma rota do Hub IoT

Pode atualizar algumas propriedades de uma rota após a sua criação. Você pode alterar a origem, o ponto de extremidade, a condição ou o estado habilitado de uma rota existente.

Use o comando az iot hub message-route show para exibir os detalhes de uma rota.

az iot hub message-route show --hub-name {iothub_name} --route-name {route_name}

Use o comando az iot hub message-route update para atualizar as propriedades de uma rota. Por exemplo, o comando a seguir atualiza a origem da rota.

az iot hub message-route update --hub-name {iothub_name} --route-name {route_name} --source devicejoblifecycleevents

Excluir uma rota do Hub IoT

Use o comando az iot hub message-route delete para excluir uma rota do seu hub IoT.

Eliminar uma rota não elimina o seu endpoint porque outras rotas podem apontar para o mesmo endpoint. Se quiser excluir um ponto de extremidade, você pode fazê-lo separadamente da exclusão de uma rota.

az iot hub message-route delete --hub-name {iothub_name} --route-name {route_name}

Gerenciar a rota de fallback

A rota de fallback envia todas as mensagens da origem devicemessages que não satisfazem as condições de consulta em nenhuma das rotas existentes para o endpoint incorporado.

Utilize o comando az iot hub message-route fallback show para ver o estado da rota de fallback no seu hub IoT.

az iot hub message-route fallback show --hub-name {iothub_name}

Usar o comando az iot hub message-route fallback set para ativar ou desativar a rota de fallback no seu hub IoT.

az iot hub message-route fallback set --hub-name {iothub_name} --enabled {true_false}

Próximos passos

Neste artigo de tutorial, aprendeu como criar uma rota e um endpoint para Event Hubs, filas e tópicos do Service Bus, e Azure Storage.

Para saber mais sobre o encaminhamento de mensagens, veja o Tutorial: Enviar dados de dispositivos para o Azure Storage usando o encaminhamento de mensagens do IoT Hub. No tutorial, você cria uma rota de armazenamento e a testa com um dispositivo em seu hub IoT.