Compartilhar via


Tutorial: Encaminhe eventos personalizados para as Conexões Híbridas de Retransmissão do Azure com a CLI do Azure e a Grade de Eventos

Conexões Híbridas de Retransmissão do Azure são um dos manipuladores de eventos com suporte. Você usa conexões híbridas como o manipulador de eventos quando precisa processar eventos de aplicativos que não têm um ponto de extremidade público. Esses aplicativos podem estar dentro de sua rede corporativa. Neste artigo, você usa a CLI do Azure para criar um tópico personalizado, assinar esse tópico e disparar o evento para exibir o resultado. Você envia os eventos para a conexão híbrida.

Observação

Se você não conhece a 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 seguir este tutorial.

Pré-requisitos

  • Este artigo exige a versão 2.0.56 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a versão mais recente já está instalada.

Criar um grupo de recursos

Os tópicos de Grade de Eventos são recursos do Azure e devem ser colocados em um grupo de recursos do Azure. O grupo de recursos do Azure é uma coleção lógica na qual os recursos do Azure são implantados e gerenciados.

Crie um grupo de recursos com o comando az group create.

O exemplo a seguir cria um grupo de recursos chamado gridResourceGroup no local 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 a seguir cria o tópico personalizado no seu grupo de recursos. Substitua <topic_name> por um nome exclusivo para o tópico personalizado. O nome do tópico da 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

Assinar um tópico personalizado

Assine um tópico da Grade de Eventos para indicar à Grade de Eventos quais eventos você deseja acompanhar. O exemplo a seguir assina o tópico personalizado que você criou e transmite a ID de recurso da conexão híbrida para o ponto de extremidade. A ID de conexã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 a seguir obtém a ID de recurso do namespace de retransmissão. Ele constrói a ID para a conexão híbrida e assina um tópico de Grade de Eventos. O script define o tipo de ponto de extremidade como hybridconnection e usa a ID de conexão híbrida do ponto de extremidade.

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 uma data de expiração está definida para a assinatura.

Criar aplicativo para processar eventos

Você precisa de um aplicativo que possa recuperar eventos da conexão híbrida. O exemplo de Consumidor de Conexão Híbrida da Grade de Eventos do Azure da Microsoft para C# executa a operação. Você já atendeu às etapas de pré-requisito.

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

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

  3. Carregue o projeto HybridConnectionConsumer no Visual Studio.

  4. Em Program.cs, substitua <relayConnectionString> e <hybridConnectionName> pela cadeia de conexão de restransmissão e o nome de conexão híbrida que você criou.

  5. Compile e execute o aplicativo no Visual Studio.

Importante

Usamos a cadeia de conexão para autenticar no namespace da Retransmissão do Azure 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 da Retransmissão do Azure, Ouvinte da Retransmissão do Azure ou Remetente da Retransmissão do Azure) no namespace da Retransmissão. Para obter mais informações, confira Autenticar uma identidade gerenciada com o Microsoft Entra ID para acessar os recursos da Retransmissão do Azure.

Enviar um evento para o tópico

Vamos disparar um evento para ver como a Grade de Eventos distribui a mensagem para o ponto de extremidade. Este artigo mostra como usar a CLI do Azure para disparar o evento. Como alternativa, você pode usar o aplicativo publicador de Grade de Eventos.

Primeiro, vamos obter a URL e a chave para o tópico personalizado. Novamente, use o nome do tópico personalizado para <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, use dados de evento de exemplo para enviar ao tópico personalizado. Normalmente, um aplicativo ou serviço do Azure enviaria os dados de evento. CURL é um utilitário que envia solicitações HTTP. Neste artigo, use o CURL para enviar o evento ao 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

O aplicativo ouvinte deve receber a mensagem de evento.

Limpar os recursos

Caso planeje continuar a trabalhar com esse evento, não limpe os recursos criados neste artigo. Caso contrário, use os comandos a seguir para excluir os recursos criados por você neste artigo.

az group delete --name gridResourceGroup

Próximas etapas

Agora que você sabe como criar tópicos e assinaturas de evento, saiba mais sobre como a Grade de Eventos pode ajudá-lo: