Criar e eliminar rotas e pontos finais com a CLI do Azure

Este artigo mostra-lhe como gerir Hub IoT do Azure rotas e pontos finais com a CLI do Azure. Saiba como utilizar a CLI do Azure para criar rotas e pontos finais para Hubs de Eventos do Azure, Azure Service Bus filas e tópicos, Armazenamento do Azure e Cosmos DB.

Para saber mais sobre como funciona o encaminhamento no Hub IoT, consulte Utilizar o encaminhamento de mensagens Hub IoT para enviar mensagens do dispositivo para a cloud para diferentes pontos finais. Para percorrer a configuração de uma rota que envia mensagens para o armazenamento e, em seguida, testar num dispositivo simulado, veja Tutorial: Enviar dados do dispositivo para o Armazenamento do Microsoft Azure com Hub IoT encaminhamento de mensagens.

Pré-requisitos

Os procedimentos descritos no artigo utilizam os seguintes recursos:

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

CLI do Azure

Este artigo utiliza a CLI do Azure para trabalhar com Hub IoT e outros serviços do Azure. Pode escolher como aceder à CLI do Azure:

IoT Hub

Precisa de um hub IoT na sua subscrição do Azure. Se ainda não tiver um hub, pode seguir os passos para criar um hub IoT com a CLI do Azure.

Serviço de ponto final

Precisa de, pelo menos, outro serviço do Azure para utilizar como ponto final para a rota. O ponto final recebe mensagens do dispositivo e registos de eventos.

Decida que serviço do Azure pretende utilizar como ponto final para receber dados de eventos e dispositivos encaminhados: um hub de eventos, uma Fila de serviços ou um tópico, uma conta de armazenamento ou um contentor do Cosmos DB. Para o serviço que escolher utilizar, conclua os passos para criar um serviço de ponto final.

  1. Crie um espaço de nomes dos Hubs de Eventos e um hub de eventos. Para obter mais informações, veja Início Rápido: Criar um hub de eventos com a CLI do Azure.

  2. Crie uma regra de autorização que será utilizada para dar Hub IoT permissão para enviar dados para o hub de eventos.

    Dica

    O name valor RootManageSharedAccessKey do parâmetro é o nome predefinido que permite gerir, enviar, escutar afirmações (acesso). Se quiser restringir as afirmações, atribua ao parâmetro o name seu próprio nome exclusivo e inclua o --rights sinalizador seguido de uma das afirmaçõ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, veja Autorizar o acesso ao Hubs de Eventos do Azure.

Criar um ponto final

Todas as rotas Hub IoT apontam para um ponto final, que receberá os dados de eventos e dispositivos encaminhados. Mais do que uma rota pode apontar para o mesmo ponto final. Atualmente, Hub IoT suporta pontos finais para Hubs de eventos, filas ou tópicos do Service Bus, Armazenamento e Cosmos DB. Uma instância do serviço que utiliza para o ponto final tem de existir na sua subscrição do Azure antes de criar o ponto final.

Nota

Este artigo utiliza 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 utilizaram o grupo de comandos az iot hub routing-endpoint , que é semelhante e ainda é suportado, mas não suporta a criação de pontos finais do Cosmos DB.

Utilize 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 final dos Hubs de Eventos, utilize a regra de autorização que criou nos pré-requisitos.

  1. Utilize o comando az eventhubs eventhub authorization-rule keys para listar a regra de autorização. Indique os seguintes valores para os parâmetros do marcador de posição:

    parameter valor
    eventhub_group Grupo de recursos do hub de eventos.
    eventhub_namespace Nome do espaço de nomes dos 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 copiou o exemplo nos pré-requisitos, este 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 cadeia de ligação do hub de eventos da saída.

  3. Utilize o comando az iot hub message-endpoint create eventhub para criar o ponto final personalizado. Indique os seguintes valores para os parâmetros do marcador de posição:

    parameter valor
    iothub_name O nome do hub IoT onde este ponto final está a ser criado.
    endpoint_name Um nome exclusivo para o novo ponto final.
    eventhub_subscription ID de subscrição do hub de eventos. Este argumento pode ser deixado de fora se o hub de eventos estiver na mesma subscrição que o hub IoT.
    eventhub_group Grupo de recursos do hub de eventos. Este argumento pode ser deixado de fora se o hub de eventos estiver no mesmo grupo de recursos que o hub IoT.
    eventhub_connection_string A cadeia de ligação que copiou 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}
    

Eliminar um ponto final

Se quiser eliminar um ponto final do hub IoT, utilize o comando az iot hub message-endpoint delete . Com este comando, pode eliminar um único ponto final, eliminar todos os pontos finais de um único tipo ou eliminar todos os pontos finais de um hub.

Por exemplo, o comando seguinte elimina todos os pontos finais 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 de Hub IoT

No Hub IoT, pode criar uma rota para enviar mensagens ou capturar eventos. Cada rota tem uma origem de dados e um ponto final. A origem de dados é onde as mensagens ou os registos de eventos têm origem. O ponto final é onde as mensagens ou os registos de eventos acabam. Pode escolher localizações para a origem de dados e o ponto final quando cria uma nova rota no seu hub IoT. Opcionalmente, pode Adicionar consultas a rotas de mensagens para filtrar mensagens ou eventos antes de acederem ao ponto final.

Nota

Este artigo utiliza 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 utilizaram o grupo de comandos az iot hub route , que é semelhante e ainda é suportado.

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

az extension update --name azure-iot
  1. Utilize o comando az iot hub message-route create para criar uma nova rota de Hub IoT com esse ponto final. Indique os seguintes valores para os parâmetros do marcador de posição:

    parameter valor
    iothub_name O nome do hub IoT onde esta rota está a ser criada.
    route_name Um nome exclusivo para a nova rota.
    endpoint_name O nome do ponto final para o qual a rota enviará dados.
    data_source A origem da rota. Os valores aceites são: deviceconnectionstateevents, , devicejoblifecycleeventsdevicelifecycleevents, devicemessages, , digitaltwinchangeeventsou invalidtwinchangeevents.
    az iot hub message-route create --hub-name {iothub_name} --route-name {route_name} --endpoint-name {endpoint_name} --source {data_source}
    
  2. Para confirmar que a nova rota está no 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}
    

    Deverá 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 de Hub IoT

Pode atualizar algumas propriedades de uma rota depois de ser criada. Pode alterar o estado de origem, ponto final, condição ou ativado de uma rota existente.

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

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

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

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

Eliminar uma rota de Hub IoT

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

Eliminar uma rota não elimina o ponto final porque outras rotas podem apontar para o mesmo ponto final. Se quiser eliminar um ponto final, pode fazê-lo separadamente da eliminação de uma rota.

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

Gerir a rota de contingência

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

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

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

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

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

Passos seguintes

Neste artigo de procedimentos, aprendeu a criar uma rota e um ponto final para Hubs de Eventos, filas e tópicos do Service Bus e Armazenamento do Azure.

Para saber mais sobre o encaminhamento de mensagens, veja Tutorial: Enviar dados do dispositivo para o Armazenamento do Microsoft Azure com Hub IoT encaminhamento de mensagens. No tutorial, vai criar uma rota de armazenamento e testá-la com um dispositivo no seu hub IoT.