Criar e excluir rotas e pontos de extremidade usando a CLI do Azure
Esse artigo mostra como gerenciar as rotas e pontos de extremidade do Hub IoT do Azure usando a CLI do Azure. Saiba como usar a CLI do Azure para criar rotas e pontos de extremidade para Hubs de Eventos do Azure, filas e tópicos do Barramento de Serviço do Azure, Armazenamento do Microsoft Azure e Cosmos DB.
Para saber mais sobre como funciona o encaminhamento no Hub IoT, confira Usar encaminhamento de mensagens do Hub IoT para enviar mensagens do dispositivo para a nuvem para diferentes pontos de extremidade. Para explicar a configuração de uma rota que envia mensagens para armazenar e testar em um dispositivo simulado, confira Tutorial: enviar dados do dispositivo para o Armazenamento do Azure usando o roteamento de mensagens do Hub IoT.
Pré-requisitos
Os procedimentos descritos no artigo usam os seguintes recursos:
- A 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:
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
Hub IoT
Tenha um hub IoT em sua assinatura do Azure. Caso você ainda não tenha um hub, poderá seguir as etapas em Criar um hub IoT.
Serviço de ponto de extremidade
Você precisa de pelo menos um outro serviço do Azure para usar como um ponto de extremidade para a rota. O ponto de extremidade recebe mensagens do dispositivo e logs de eventos.
Decida qual serviço do Azure você deseja usar como ponto de extremidade para receber dados roteados de evento e dispositivo: um hub de eventos, uma fila ou um tópico de serviço, uma conta de armazenamento ou um contêiner do Cosmos DB. Para o serviço que você escolher usar, conclua as etapas para criar um serviço de ponto de extremidade.
- Hubs de Evento
- Fila do Barramento de Serviço
- Tópico do Barramento de Serviço
- Armazenamento do Azure
- Cosmos DB
Criar um namespace de Hubs de Eventos e um hub de eventos. Para obter mais informações, confira Início Rápido: criar um hub de eventos usando a CLI do Azure.
Crie uma regra de autorização que será usada para conceder permissão ao Hub IoT para enviar dados para o hub de eventos.
Dica
O valor
name
do parâmetroRootManageSharedAccessKey
é o nome padrão que permite gerenciar, enviar, ouvir declarações (acesso). Se desejar restringir as declarações, dê ao parâmetroname
seu próprio nome exclusivo e inclua o sinalizador--rights
seguido de 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 o acesso aos Hubs de Eventos do Azure.
Criar um ponto de extremidade
Todas as rotas do Hub IoT apontam para um ponto de extremidade, que receberá os dados roteados de dispositivo e evento. Mais de uma rota pode apontar para o mesmo ponto de extremidade. Atualmente, o Hub IoT dá suporte a pontos de extremidade para hubs de eventos, filas ou tópicos do Barramento de Serviço, 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 você criar o ponto de extremidade.
Observação
Esse 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 grupo de comandos az iot hub routing-endpoint, que é semelhante e ainda tem suporte, mas não dá suporte à criação de pontos de extremidade do Cosmos DB.
Use o comando a seguir para atualizar para a versão mais recente da extensão azure-iot:
az extension update --name azure-iot
- Hubs de Evento
- Fila do Barramento de Serviço
- Tópico do Barramento de Serviço
- Armazenamento do Azure
- Cosmos DB
Para criar um ponto de extremidade dos Hubs de Eventos, use a regra de autorização que você criou nos pré-requisitos.
Use o comando az eventhubs eventhub authorization-rule keys list para listar sua regra de autorização. Forneça os valores a seguir para os parâmetros de espaço reservado:
parâmetro value eventhub_group Grupo de recursos do hub de eventos. eventhub_namespace Nome do namespace 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 você copiou o exemplo nos pré-requisitos, esse nome será RootManageSharedAccessKey
.az eventhubs eventhub authorization-rule keys list --resource-group {eventhub_group} --namespace-name {eventhub_namespace} --eventhub-name my-event-hubs --name {rule_name}
Copie sua cadeia de conexão do hub de eventos a partir da saída.
Use o comando az iot hub message-endpoint create eventhub para criar seu ponto de extremidade personalizado. Forneça os valores a seguir para os parâmetros de espaço reservado:
parâmetro value iothub_name O nome do hub IoT em que esse ponto de extremidade está sendo criado. endpoint_name Um nome exclusivo para o novo ponto de extremidade. eventhub_subscription ID da assinatura do hub de eventos. Esse argumento poderá ser deixado de fora se o hub de eventos estiver na mesma assinatura que o Hub IoT. eventhub_group Grupo de recursos do hub de eventos. Esse argumento poderá 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 conexão que você 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}
Excluir um ponto de extremidade
Se você quiser excluir um ponto de extremidade a partir do seu hub IoT, use 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 a seguir exclui todos os pontos de extremidade em um 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 é a origem das mensagens ou dos logs de eventos. O ponto de extremidade é o destino das mensagens ou dos logs de eventos. Você escolhe locais para a fonte de dados e o ponto de extremidade ao criar uma nova rota no Hub IoT. Opcionalmente, você pode Adicionar consultas a rotas de mensagens para filtrar mensagens ou eventos, antes que acessem o ponto de extremidade.
Observação
Esse 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 grupo de comandos az iot hub route, que é semelhante e ainda tem suporte.
Use o comando a seguir para atualizar para a versão mais recente da extensão azure-iot:
az extension update --name azure-iot
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 valores a seguir para os parâmetros de espaço reservado:
parâmetro value 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 ponto de extremidade para o qual a rota enviará dados. data_source A origem da rota. Os valores aceitos são deviceconnectionstateevents
,devicejoblifecycleevents
,devicelifecycleevents
,devicemessages
,digitaltwinchangeevents
,invalid
outwinchangeevents
.az iot hub message-route create --hub-name {iothub_name} --route-name {route_name} --endpoint-name {endpoint_name} --source {data_source}
Para confirmar se a nova rota está no seu hub IoT, use 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ê deve 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
Você pode atualizar algumas propriedades de uma rota depois que ela for criada. Você pode alterar origem, ponto de extremidade, condição ou estado de 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 a partir do hub IoT.
Excluir uma rota não exclui seu ponto de extremidade porque outras rotas podem apontar para o mesmo ponto de extremidade. Se você quiser excluir um ponto de extremidade, poderá fazer isso 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 atendem às condições de consulta em nenhuma das rotas existentes para o ponto de extremidade interno.
Use o comando az iot hub message-route fallback show para ver o status da rota de fallback no seu hub IoT.
az iot hub message-route fallback show --hub-name {iothub_name}
Use o comando az iot hub message-route fallback set para habilitar ou desabilitar a rota de fallback no seu hub IoT.
az iot hub message-route fallback set --hub-name {iothub_name} --enabled {true_false}
Próximas etapas
Neste artigo de instruções, você aprendeu como criar uma rota e um ponto de extremidade para Hubs de Eventos, filas ou tópicos do Barramento de Serviço e Armazenamento do Azure.
Para saber mais sobre o roteamento de mensagens, confira Tutorial: enviar dados do dispositivo para o armazenamento do Azure usando o roteamento de mensagens do Hub IoT. No tutorial, você cria uma rota de armazenamento e a testa com um dispositivo no hub IoT.