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:
Utilize o ambiente bash no Azure Cloud Shell. Para obter mais informações, veja Início Rápido do Bash no Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, veja Como executar a CLI do Azure num contentor do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de início de sessão, veja Iniciar sessão com a CLI do Azure.
Quando lhe for pedido, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
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.
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.
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
valorRootManageSharedAccessKey
do parâmetro é o nome predefinido que permite gerir, enviar, escutar afirmações (acesso). Se quiser restringir as afirmações, atribua ao parâmetro oname
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.
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}
Copie a cadeia de ligação do hub de eventos da saída.
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
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
, ,devicejoblifecycleevents
devicelifecycleevents
,devicemessages
, ,digitaltwinchangeevents
ouinvalid
twinchangeevents
.az iot hub message-route create --hub-name {iothub_name} --route-name {route_name} --endpoint-name {endpoint_name} --source {data_source}
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.