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 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.

  1. Certifique-se de que tem o Visual Studio 2019 ou posterior.

  2. Clone o repositório para o seu computador local.

  3. Carregue o projeto HybridConnectionConsumer no Visual Studio.

  4. Em Program.cs, substitua <relayConnectionString> e <hybridConnectionName> pela cadeia de ligação de reencaminhamento e pelo nome da ligação híbrida que criou.

  5. 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: