Criar e eliminar rotas e pontos finais com o Azure Resource Manager
Este artigo mostra-lhe como exportar o modelo de Hub IoT do Azure, adicionar uma rota ao seu hub IoT e, em seguida, reimplementar o modelo para o seu hub IoT com a CLI do Azure ou Azure PowerShell. Utilize um modelo de Resource Manager do Azure para criar rotas e pontos finais para Hubs de Eventos do Azure, filas de Azure Service Bus e tópicos e o Armazenamento do Azure.
Os modelos de Resource Manager do Azure são úteis quando quer definir recursos com um ficheiro JSON. Cada recurso do Azure tem um modelo que define os componentes que são utilizados nesse recurso. Pode exportar todos os modelos de recursos do Azure.
Importante
Quando utiliza um modelo de Resource Manager para implementar um recurso, o modelo substitui qualquer recurso existente do tipo que está a implementar.
Quando cria um novo hub IoT, substituir um recurso implementado existente não é uma preocupação. Para criar um novo hub IoT, pode utilizar um modelo básico que tenha as propriedades necessárias em vez de exportar um modelo existente a partir de um hub IoT que já esteja implementado.
No entanto, se adicionar uma rota a um hub IoT existente Resource Manager modelo, utilize um modelo que exporta a partir do seu hub IoT para garantir que todos os recursos e propriedades existentes permanecem ligados depois de implementar o modelo atualizado. Os recursos já implementados não serão substituídos. Por exemplo, um modelo de Resource Manager exportado que tenha implementado anteriormente poderá conter informações de armazenamento para o seu hub IoT se o tiver ligado ao armazenamento.
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 os passos para configurar 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 Azure com o encaminhamento de mensagens Hub IoT.
Pré-requisitos
Os procedimentos descritos no artigo utilizam os seguintes recursos:
- Um Modelo do Azure Resource Manager
- Um hub IoT
- Um serviço de ponto final no Azure
Modelo Azure Resource Manager
Este artigo utiliza um modelo do Azure Resource Manager no portal do Azure para trabalhar com Hub IoT e outros serviços do Azure. Para saber mais sobre como utilizar modelos de Resource Manager, veja O que são modelos do Azure Resource Manager?
Hub IoT
Para criar uma rota do hub IoT, precisa de um hub IoT que criou com Hub IoT do Azure. As mensagens do dispositivo e os registos de eventos têm origem no seu hub IoT.
Certifique-se de que tem o seguinte recurso do hub para utilizar quando criar a rota do hub IoT:
- 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 um modelo do Azure Resource Manager (PowerShell).
Serviço de ponto final
Para criar uma rota do hub IoT, precisa de, pelo menos, um outro serviço do Azure para utilizar como ponto final para a rota. O ponto final recebe mensagens do dispositivo e registos de eventos. Pode escolher o serviço do Azure que utiliza para um ponto final se ligar à rota do hub IoT: Hubs de Eventos, filas ou tópicos do Service Bus ou Armazenamento do Azure.
Certifique-se de que tem um dos seguintes recursos para utilizar quando criar um ponto final na rota do hub IoT:
Um recurso dos Hubs de Eventos (com contentor). Se precisar de criar um novo recurso dos Hubs de Eventos, veja Início Rápido: Criar um hub de eventos com um modelo de Resource Manager.
Um recurso de fila do Service Bus. Se precisar de criar uma nova fila do Service Bus, veja Início Rápido: Criar um espaço de nomes do Service Bus e uma fila com um modelo de Resource Manager.
Um recurso de tópico do Service Bus. Se precisar de criar um novo tópico do Service Bus, veja Início Rápido: Criar um espaço de nomes do Service Bus com tópico e subscrição com um modelo de Resource Manager.
Um recurso de Armazenamento do Azure. Se precisar de criar um novo Armazenamento do Azure, veja Criar uma conta de armazenamento.
Criar uma rota
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. Em seguida, utilize as consultas de encaminhamento para filtrar mensagens ou eventos antes de acederem ao ponto final.
Pode utilizar um hub de eventos, uma fila ou tópico do Service Bus ou uma conta de armazenamento do Azure para ser o ponto final da rota do hub IoT. O serviço que utiliza para criar o ponto final tem de existir primeiro na sua conta do Azure.
Exportar o modelo de Resource Manager do seu hub IoT
Primeiro, exporte um modelo de Resource Manager a partir do seu hub IoT e, em seguida, adicione uma rota ao mesmo.
Na portal do Azure, aceda ao seu hub IoT. No menu de recursos em Automatização, selecione Exportar modelo.
Em Exportar modelo, no separador Modelo , conclua estes passos:
Veja o ficheiro JSON gerado para o seu hub IoT.
Desmarque a caixa de verificação Incluir parâmetros .
Selecione Transferir para transferir uma cópia local do ficheiro JSON.
O modelo tem vários marcadores de posição que pode utilizar para adicionar funcionalidades ou serviços ao seu hub IoT. Para este artigo, adicione valores apenas às propriedades que estão no ou aninhadas
routing
em .
Adicionar um novo ponto final ao modelo de Resource Manager
No ficheiro JSON, localize a "endpoints": []
propriedade aninhada "routing"
em . Conclua os passos para adicionar um novo ponto final com base no serviço do Azure que escolher para o ponto final: Hubs de Eventos, filas ou tópicos do Service Bus ou Armazenamento do Azure.
Para saber como criar um recurso dos Hubs de Eventos (com um contentor), veja Início Rápido: Criar um hub de eventos com um modelo de Resource Manager.
Na portal do Azure, obtenha a cadeia de ligação principal a partir do recurso dos Hubs de Eventos. No painel Políticas de acesso partilhado do recurso, selecione uma das suas políticas para ver as informações da chave e da cadeia de ligação. Adicione o nome do hub de eventos ao caminho da entidade no final da cadeia de ligação. Por exemplo, utilize ;EntityPath=my-event-hubs
. Este nome é o nome do hub de eventos, não o nome do espaço de nomes.
Para name
, utilize um valor exclusivo para o ponto final dos Hubs de Eventos. Deixe o id
parâmetro como uma cadeia vazia. O serviço do Azure fornece um id
valor quando implementa o ponto final.
"routing": {
"endpoints": {
"serviceBusQueues": [],
"serviceBusTopics": [],
"eventHubs": [
{
"connectionString": "my Event Hubs connection string + entity path",
"authenticationType": "keyBased",
"name": "my-event-hubs-endpoint",
"id": "",
"subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"resourceGroup": "my-resource-group"
}
],
"storageContainers": [],
"cosmosDBSqlCollections": []
},
},
Adicionar uma nova rota ao modelo de Resource Manager
No ficheiro JSON, localize a "routes": []
propriedade, aninhada "routing"
em e adicione a seguinte nova rota, de acordo com o serviço de ponto final que escolheu: Hubs de Eventos, filas ou tópicos do Service Bus ou Armazenamento do Azure.
A rota de contingência predefinida recolhe mensagens de DeviceMessages
. Escolha uma opção diferente, como DeviceConnectionStateEvents
. Para obter mais informações sobre as opções de origem, veja az iot hub route .
Atenção
Se substituir quaisquer valores existentes para pelos "routes"
valores de rota que são utilizados nos seguintes exemplos de código, as rotas existentes são removidas quando implementar. Para preservar as rotas existentes, adicione o novo objeto de rota à "routes"
lista.
Para obter mais informações sobre o modelo, veja Definição de recurso de modelo do Azure Resource Manager.
"routes": [
{
"name": "MyIotHubRoute",
"source": "DeviceConnectionStateEvents",
"condition": "true",
"endpointNames": [
"my-event-hubs-endpoint"
],
"isEnabled": true
}
],
Guarde o ficheiro JSON.
Implementar o modelo de Resource Manager
Com o novo ponto final e a rota adicionados ao modelo Resource Manager, pode agora implementar o ficheiro JSON de volta no seu hub IoT.
Implementação local
az deployment group create \
--name my-iot-hub-template \
--resource-group my-resource-group \
--template-file "my\path\to\template.json"
Implementação do Azure Cloud Shell
Uma vez que o Azure Cloud Shell é executado num browser, pode carregar o ficheiro de modelo antes de executar o comando de implementação. Com o ficheiro carregado, só precisa do nome do ficheiro de modelo (em vez de todo o caminho do ficheiro) para utilizar no template-file
parâmetro .
az deployment group create \
--name my-iot-hub-template \
--resource-group my-resource-group \
--template-file "template.json"
Nota
Se a implementação falhar, utilize o -verbose
comutador para obter informações sobre os recursos que está a criar. Utilize o -debug
comutador para obter mais informações sobre a depuração.
Confirmar a implementação
Para confirmar que o modelo foi implementado com êxito no Azure, no portal do Azure, aceda ao recurso do grupo de recursos. No menu de recursos em Definições, selecione Implementações para ver o modelo numa lista das suas implementações.
Para ver a nova rota no portal do Azure, aceda ao recurso Hub IoT. No painel Encaminhamento de mensagens, no separador Rotas , confirme que a rota está listada.
Passos seguintes
Neste artigo de procedimentos, aprendeu a criar uma rota e um ponto final para Os Hubs de Eventos, filas e tópicos do Service Bus e o 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.