Partilhar via


Tutorial: Encaminhar eventos personalizados para conexões híbridas de retransmissão do Azure com a CLI do Azure e a grade de eventos

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.

Nota

Se você for novo na Grade de Eventos do Azure, consulte O que é a Grade de Eventos do Azure para obter uma visão geral do serviço antes de passar por este tutorial.

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para 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, consulte Como executar a CLI do Azure em um contêiner 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 entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, 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 usando 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 de Grade de Eventos fornece um ponto de extremidade definido pelo usuário no qual você posta 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 Grade de Eventos deve ser exclusivo porque é representado por uma entrada DNS (Sistema de Nomes de Domínio).

az eventgrid topic create --name <topic_name> -l westus2 -g gridResourceGroup

Subscrever um tópico personalizado

Você se inscreve em um tópico da Grade de Eventos para informar à Grade de Eventos quais eventos deseja acompanhar. O exemplo a seguir assina o tópico personalizado que você criou e passa a ID de recurso da conexão híbrida para o ponto de extremidade. 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. Ele constrói a ID para a conexão híbrida e se inscreve em um tópico de grade de eventos. 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. Verifique se você 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.

Importante

Usamos a cadeia de conexão para autenticar no namespace do Azure Relay para manter o tutorial simples. Recomendamos que você use a autenticação do Microsoft Entra ID em ambientes de produção. Ao usar um aplicativo, você pode habilitar a identidade gerenciada para o aplicativo e atribuir à identidade uma função apropriada (Proprietário de Retransmissão do Azure, Ouvinte de Retransmissão do Azure ou Remetente de Retransmissão do Azure) no namespace de Retransmissão. Para obter mais informações, consulte Autenticar uma identidade gerenciada com a ID do Microsoft Entra para acessar os recursos do Azure Relay.

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.

Clean up resources (Limpar 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

Próximos passos

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: