Distribuir eventos para Hubs de Eventos do Azure usando tópicos de namespace — portal do Azure
O artigo fornece instruções passo a passo para publicar eventos na Grade de Eventos do Azure no formato JSON do CloudEvents e entregar esses eventos usando o modelo de entrega por push.
Para ser específico, use o portal do Azure e o Curl para publicar eventos em um tópico de namespace na Grade de Eventos e enviar esses eventos de uma assinatura de evento para um destino de manipulador de Hubs de Eventos. Para obter mais informações sobre o modelo de entrega por push, confira Visão geral da entrega por push.
Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Criar um namespace da Grade de Eventos
Um namespace da Grade de Eventos fornece um ponto de extremidade definido pelo usuário no qual você posta seus eventos. O exemplo a seguir cria um namespace no grupo de recursos usando o Bash no Azure Cloud Shell. O nome do namespace precisa ser exclusivo porque faz parte de uma entrada DNS (Sistema de Nomes de Domínio).
Navegue até o Portal do Azure.
Na barra de pesquisa no tópico, digite
Event Grid Namespaces
e selecioneEvent Grid Namespaces
entre os resultados.Na página Namespaces da Grade de Eventos, selecione + Criar na barra de comandos.
Na página Criar Namespace, siga estas etapas:
- Selecione a Assinatura do Azure na qual você quer criar o namespace.
- Crie um grupo de recursos selecionando Criar ou selecione um grupo de recursos existente.
- Insira um nome para o namespace.
- Selecione o local onde você deseja criar o grupo de recursos.
- Em seguida, selecione Examinar + criar.
- Na página Examinar + criar escolha Criar.
Na página Implantação, selecione Acessar o recurso, após a implantação com êxito.
Obter a chave de acesso
- Na página Namespace da Grade de Eventos, selecione Chaves de acesso no menu à esquerda.
- Selecione o botão Copiar ao lado da chave de acesso.
- Salve a chave de acesso em algum lugar. Você o usará posteriormente neste guia de início rápido.
Habilitar a identidade gerenciada para o namespace da Grade de Eventos
Habilite a identidade gerenciada atribuída pelo sistema no namespace da Grade de Eventos. Para entregar eventos aos Hubs de Eventos no namespace dos Hubs de Eventos usando a identidade gerenciada, siga estas etapas:
- Habilite a identidade gerenciada atribuída pelo sistema ou pelo usuário: namespaces. Continue lendo a próxima seção para saber como habilitar a identidade gerenciada usando a CLI do Azure.
- Adicionar a identidade à função Remetente de Dados dos Hubs de Eventos do Azure no namespace dos Hubs de Eventos, continue lendo até a próxima seção para descobrir como adicionar a atribuição de função.
- Configure a assinatura do evento que usa um Hub de Eventos como um ponto de extremidade para usar a identidade gerenciada atribuída pelo sistema ou pelo usuário.
Nesta seção, habilite uma identidade gerenciada atribuída pelo sistema no namespace. As outras etapas serão executadas posteriormente neste início rápido.
Na página Namespace da Grade de Eventos, selecione Identidade no menu à esquerda.
Na página Identidade, selecione Ativado para o Status.
Selecione Salvar na barra de comandos.
Crie um tópico no namespace
Crie um tópico que seja usado para conter todos os eventos publicados no ponto de extremidade do namespace.
- Selecione Tópicos no menu à esquerda.
- Na página Tópicos, selecione + Tópico na barra de comandos.
- Na página Criar Tópico, siga estas etapas:
Criar um namespace dos Hubs de Eventos
Crie um recurso de Hubs de Eventos que seja usado como destino do manipulador para a assinatura de entrega por push do tópico do namespace. Execute essas etapas em uma guia separada do navegador da Internet ou em uma janela separada. Navegue até o portal do Azure e entre usando as mesmas credenciais que você usou antes e a mesma assinatura do Azure.
- Digite Hubs de Eventos na barra de pesquisa e selecione Hubs de Eventos.
- Na página Hubs de Eventos, selecione + Criar na barra de comando.
- Na página Criar Namespace, siga estas etapas:
- Selecione a assinatura do Azure que você usou para criar o namespace da Grade de Eventos.
- Selecione o grupo de recursos que você usou anteriormente.
- Insira um nome para o namespace dos Hubs de Eventos.
- Selecione o mesmo local que usou para o namespace da Grade de Eventos.
- Selecione Básico para o tipo de Preço.
- Selecione Examinar + criar.
- Na página Examinar, selecione Criar.
- Na página Implantação, selecione Ir para o recurso após a implantação ser concluída com sucesso.
Adicionar identidade gerenciada da Grade de Eventos à função Remetente de Dados dos Hubs de Eventos
- Na página Namespace de Hubs de Eventos, selecione Gerenciamento de Identidades e Acesso (IAM) no menu à esquerda.
- Selecione Adicionar ->Adicionar atribuição de função na barra de comando.
- Na página Adicionar atribuição de função, pesquise por Remetente de Dados dos Hubs de Eventos do Azure, selecione Remetente de Dados dos Hubs de Eventos do Azure na lista de funções e, em seguida, selecione Avançar.
- Na guia Membros, selecione Identidade gerenciada para o tipo e, em seguida, selecione +Selecionar membros.
- Na página Selecionar identidades gerenciadas, selecione Namespace da Grade de Eventos para a Identidade gerenciada, e então selecione a identidade gerenciada que tem o mesmo nome que o namespace da Grade de Eventos.
- Na página Selecionar identidades gerenciadas, escolha Selecionar.
- Agora, na página Adicionar atribuição de função, selecione Revisar + atribuir.
- Na página Examinar + atribuir, selecione Examinar + atribuir.
Criar um hub de eventos
- Na página Namespace dos Hubs de Eventos, selecione Hubs de Eventos no menu à esquerda.
- Na página Hubs de Eventos, selecione +Hub de Eventos na barra de comando.
- Na página Criar hub de eventos, insira um nome para o hub de eventos e selecione Revisar + criar.
- Na página Examinar + criar escolha Criar.
Criar uma assinatura de evento
Crie uma assinatura de evento definindo seu modo de entrega como Push, que dá suporte para entrega por push..
- Alterne para a guia ou janela com a página Namespace da Grade de Eventos aberta a partir da guia ou janela com a página Namespace de Hubs de Eventos aberta.
- Na página Namespace da Grade de Eventos, selecione Tópicos no menu à esquerda.
- Na página Tópicos, selecione o tópico que você criou na etapa anterior.
- Selecione + Assinatura na barra de comandos.
- Na página Criar Assinatura de Eventos, siga estas etapas:
- Na guia Básico, insira um nome para a assinatura do evento.
- Selecione Push para o modo de entrega do evento.
- Confirme se o Hub de Eventos foi selecionado para o Tipo de ponto de extremidade.
- Selecione Configurar um ponto de extremidade.
- Na página Selecionar hub de eventos, siga estas etapas:
- De volta à página Criar Assinatura, selecione Atribuído pelo Sistema para o Tipo de identidade gerenciada.
- Selecione Criar.
Enviar eventos para o tópico
Agora, envie um evento de exemplo para o tópico do namespace seguindo as etapas nesta seção.
Inicie o Cloud Shell no portal do Azure. Mude para Bash.
No Cloud Shell, execute o comando a seguir para declarar uma variável para manter a chave de acesso para o namespace. Você anotou a chave de acesso anteriormente neste início rápido.
key=ACCESSKEY
Declare uma variável para manter o URI da operação de publicação. Substitua
NAMESPACENAME
pelo nome do namespace da Grade de Eventos eTOPICNAME
pelo nome do tópico.publish_operation_uri=https://NAMESPACENAME.eastus-1.eventgrid.azure.net/topics/TOPICNAME:publish?api-version=2023-06-01-preview
Crie um exemplo de evento compatível com CloudEvents:
event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} '
O elemento
data
é o conteúdo do evento. Qualquer JSON bem formado pode ficar nesse campo. Para obter mais informações em propriedades (também conhecidas como atributos de contexto) que podem ser usadas em um evento, consulte as especificações CloudEvents.Use o CURL para enviar o evento para o tópico. CURL é um utilitário que envia solicitações HTTP.
curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
Navegue até a página do Namespace dos Hubs de Eventos no portal do Microsoft Azure, atualize a página e verifique se o contador de mensagens de entrada no gráfico indica que um evento foi recebido.
Próximas etapas
Neste artigo, você criou e configurou o namespace da Grade de Eventos e os recursos dos Hubs de Eventos. Para obter instruções passo a passo sobre como receber eventos de um hub de eventos, confira estes tutoriais:
- .NET Core
- Java
- Python
- JavaScript
- Go
- C (somente enviar)
- Apache Storm (somente receber)