Tutorial: Encaminhar eventos personalizados para Ligações Híbridas de Reencaminhamento do Azure com a CLI do Azure e o Event Grid
O Azure Event Grid é um serviço de eventos para a cloud. As Ligações Híbridas do Azure Relay são um dos processadores de eventos suportados. Utiliza ligações híbridas como o processador de eventos quando necessita de processar eventos de aplicações que não tenham um ponto final público. Estas aplicações podem estar dentro da sua rede empresarial. Neste artigo, a CLI do Azure serve para criar um tópico personalizado, subscrever o tópico personalizado e acionar o evento para ver o resultado. Os eventos são enviados para a ligação híbrida.
Pré-requisitos
- Este artigo pressupõe que já tem uma ligação híbrida e uma aplicação de serviço de escuta. Para começar a trabalhar com ligações híbridas, veja Introdução às Ligações Híbridas de Reencaminhamento - .NET ou Introdução às Ligações Híbridas de Reencaminhamento - Nó.
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.
- Este artigo requer a versão 2.0.56 ou posterior da CLI do Azure. Se estiver a utilizar o Azure Cloud Shell, a versão mais recente já está instalada.
Criar um grupo de recursos
Os tópicos do Event Grid são recursos do Azure e têm de ser colocados num grupo de recursos do Azure. Um grupo de recursos é uma coleção lógica na qual os recursos do Azure são implementados e geridos.
Crie um grupo de recursos com o comando az group create.
O exemplo seguinte cria um grupo de recursos com o nome gridResourceGroup na localização westus2.
az group create --name gridResourceGroup --location westus2
Criar um tópico personalizado
Um tópico do Event Grid fornece um ponto final definido pelo utilizador no qual publica os seus eventos. O exemplo seguinte cria o tópico personalizado no seu grupo de recursos. Substitua <topic_name>
por um nome exclusivo para o seu tópico personalizado. O nome do tópico do Event Grid tem de ser exclusivo porque é representado por uma entrada DNS.
az eventgrid topic create --name <topic_name> -l westus2 -g gridResourceGroup
Subscrever um tópico personalizado
Subscreva um tópico do Event Grid para indicar ao Event Grid quais os eventos que pretende controlar. O exemplo seguinte subscreve o tópico personalizado que criou e transmite o ID de recurso da ligação híbrida para o ponto final. O ID da ligação híbrida está no formato:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Relay/namespaces/<relay-namespace>/hybridConnections/<hybrid-connection-name>
O script seguinte obtém o ID do recurso do espaço de nomes de reencaminhamento. Constrói o ID da ligação híbrida e subscreve um tópico do Event Grid. O script define o tipo de ponto final hybridconnection
e utiliza o ID da ligação híbrida para o ponto final.
relaynsname=<namespace-name>
relayrg=<resource-group-for-relay>
hybridname=<hybrid-name>
relayid=$(az relay namespace show --resource-group $relayrg --name $relaynsname --query id --output tsv)
hybridid="$relayid/hybridConnections/$hybridname"
topicid=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--source-resource-id $topicid \
--name <event_subscription_name> \
--endpoint-type hybridconnection \
--endpoint $hybridid \
--expiration-date "<yyyy-mm-dd>"
Observe que está definida uma data de expiração para a subscrição.
Criar aplicação para processar eventos
Precisa de uma aplicação que possa recuperar eventos a partir da ligação híbrida. O exemplo do Consumidor de Ligação Híbrida do Microsoft Azure Event Grid para C# realiza essa operação. Já terminou os passos dos pré-requisitos.
Certifique-se de que tem o Visual Studio 2019 ou posterior.
Clone o repositório para o seu computador local.
Carregue o projeto HybridConnectionConsumer no Visual Studio.
Em Program.cs, substitua
<relayConnectionString>
e<hybridConnectionName>
pela cadeia de ligação de reencaminhamento e pelo nome da ligação híbrida que criou.Compilar e executar a aplicação a partir do Visual Studio.
Enviar um evento para o seu tópico
Vamos acionar um evento para ver como o Event Grid distribui a mensagem para o ponto final. Este artigo mostra como utilizar a CLI do Azure para acionar o evento. Em alternativa, pode utilizar a aplicação do publicador do Event Grid.
Em primeiro lugar, vamos obter o URL e a chave do tópico personalizado. Novamente, utilize o nome do tópico personalizado de <topic_name>
.
endpoint=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name <topic_name> -g gridResourceGroup --query "key1" --output tsv)
Para simplificar este artigo, vai utilizar dados do evento de exemplo para enviar para o tópico personalizado. Normalmente, uma aplicação ou serviço do Azure enviaria os dados do evento. CURL é um utilitário que envia os pedidos HTTP. Neste artigo, utilize o CURL para enviar o evento para o tópico personalizado.
event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
A aplicação de serviço de escuta deverá receber a mensagem de evento.
Limpar os recursos
Se quiser continuar a trabalhar com este evento, não limpe os recursos criados neste artigo. Caso contrário, utilize o comando seguinte para eliminar os recursos que criou neste artigo.
az group delete --name gridResourceGroup
Passos seguintes
Agora que sabe como criar tópicos e subscrições de eventos, saiba mais sobre o que o Event Grid pode ajudá-lo a fazer: