Entregar eventos para webhooks usando tópicos de namespace - Portal do Azure (visualização)
O artigo fornece instruções passo a passo para publicar eventos na Grade de Eventos do Azure no formato JSON CloudEvents e entregar esses eventos usando o modelo de entrega por push. Para ser específico, você publica eventos em um tópico de namespace na Grade de Eventos e envia esses eventos de uma assinatura de evento para um destino de manipulador de webhook. Para obter mais informações sobre o modelo de entrega por push, consulte Visão geral da entrega por push.
Nota
Atualmente, os namespaces da Grade de Eventos do Azure dão suporte à autenticação de token e chaves de acesso SAS (Assinaturas de Acesso Compartilhado).
Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
Criar um namespace de grade de eventos
Um namespace de Grade de Eventos fornece um ponto de extremidade definido pelo usuário para o qual você posta seus eventos. O exemplo a seguir cria um namespace em seu grupo de recursos usando Bash no Azure Cloud Shell. O nome do namespace deve ser exclusivo porque faz parte de uma entrada DNS (Sistema de Nomes de Domínio).
Navegue para o portal do Azure.
Na barra de pesquisa do tópico, digite
Event Grid Namespaces
e selecioneEvent Grid Namespaces
nos resultados.Na página Namespaces da Grade de Eventos, selecione + Criar na barra de comandos.
Na página Criar namespace, execute estas etapas:
- Selecione a assinatura do Azure na qual você deseja criar o namespace.
- Crie um novo grupo de recursos selecionando Criar novo ou selecione um grupo de recursos existente.
- Insira um nome para o namespace.
- Selecione o local onde deseja criar o grupo de recursos.
- Em seguida, selecione Rever + criar.
- Na página Rever + criar, selecione Criar.
Na página Implantação, selecione Ir para o recurso após a implantação bem-sucedida.
Obter chave de acesso
- Na página Namespace da Grade de Eventos , selecione Teclas 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ê pode usá-lo mais tarde neste início rápido.
Criar um tópico no namespace
Crie um tópico que contenha 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 ponto final de mensagem
Antes de assinar os eventos, vamos criar o ponto de extremidade para a mensagem do evento. Normalmente, o ponto final executa as ações com base nos dados do evento. Para simplificar esse início rápido, implante um aplicativo Web pré-criado que exibe as mensagens do evento. A solução implementada inclui um plano do Serviço de Aplicações, uma aplicação Web do Serviço de Aplicações e o código de origem do GitHub.
Selecione Implementar no Azure para implementar a solução para a sua subscrição.
Na página Implantação personalizada, execute as seguintes etapas:
Em Grupo de recursos, selecione o grupo de recursos que você criou ao criar a conta de armazenamento. Será mais fácil para você limpar depois de terminar o tutorial, excluindo o grupo de recursos.
Em Nome do Site, insira um nome para o aplicativo Web.
Em Nome do plano de hospedagem, insira um nome para o plano do Serviço de Aplicativo a ser usado para hospedar o aplicativo Web.
Selecione Rever + criar.
Na página Rever + criar, selecione Criar.
A implantação leva alguns minutos para ser concluída. Na página Implantação, selecione Ir para o grupo de recursos.
Na página Grupo de recursos, na lista de recursos, selecione o aplicativo Web que você criou. Você também vê o plano do Serviço de Aplicativo e a conta de armazenamento nesta lista.
Na página Serviço de Aplicativo do seu aplicativo Web, selecione a URL para navegar até o site. O URL deve estar neste formato:
https://<your-site-name>.azurewebsites.net
.Confirme que você vê o site, mas nenhum evento foi publicado nele ainda.
Importante
Mantenha a janela do Visualizador de Grade de Eventos do Azure aberta para que você possa ver os eventos à medida que são publicados.
Criar uma subscrição de evento
Crie uma assinatura de evento definindo seu modo de entrega como Push, que oferece suporte à entrega por push.
- Alterne para a guia ou janela com a página Namespace da Grade de Eventos aberta na guia ou janela com a página Namespace dos 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 criado na etapa anterior.
- Selecione + Subscrição na barra de comandos.
- Na página Criar Subscrição de Eventos , siga estes passos:
Na guia Básico, insira um nome para a assinatura do evento.
Selecione Push para o modo de entrega de eventos.
Para Tipo de ponto final, selecione Web Hook.
Selecione Configurar um ponto de extremidade.
Na página Web Hook, especifique o ponto de extremidade (por exemplo:
https://spegridsite0520.azurewebsites.net/api/updates
), conforme mostrado no exemplo a seguir, e selecione Confirmar seleção.De volta à página Criar Assinatura , selecione Criar.
Enviar eventos para o seu tópico
Agora, envie um evento de exemplo para o tópico namespace seguindo as etapas nesta seção.
Declarar variáveis
Inicie o Cloud Shell no portal do Azure. Mude para Bash.
Execute o seguinte comando para declarar uma variável para manter o nome do grupo de recursos. Substitua
RESOUREGROUPNAME
pelo nome do seu grupo de recursos do Azure.resource_group=RESOURCEGROUPNAME
No Cloud Shell, execute o seguinte comando para declarar uma variável para manter o nome do namespace. Substitua
NAMESPACENAME
pelo nome do namespace da Grade de Eventos.namespace=NAMESPACENAME
Execute o seguinte comando para declarar uma variável para manter o valor da chave de acesso que você anotou anteriormente. Substitua
ACCESSKEY
pelo valor da chave de acesso ao seu namespace Event Grid.key=ACCESSKEY
No Cloud Shell, execute o seguinte comando para declarar uma variável para manter o nome do namespace.
topic=TOPICNAME
Publicar um evento
Recupere o nome do host do namespace. Você o usa para compor o ponto de extremidade HTTP do namespace para o qual os eventos são enviados. As operações a seguir foram disponibilizadas pela primeira vez com a versão
2023-06-01-preview
da API. Você também pode obter o nome do host na página Visão geral do namespace da Grade de Eventos no portal do Azure.publish_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic: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
data
elemento é a carga útil do seu evento. Qualquer JSON bem formado pode ir para este campo. Para obter mais informações sobre propriedades (também conhecidas como atributos de contexto) que podem ir em um evento, consulte as especificações do CloudEvents .Use CURL para enviar o evento para o tópico. CURL é um utilitário que envia os pedidos HTTP.
curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
Verifique se o Visualizador de Grade de Eventos do Azure recebeu o evento
Verifique se o aplicativo Web Visualizador de Grade de Eventos do Azure mostra os eventos recebidos da Grade de Eventos.
Conteúdos relacionados
Neste início rápido, você usou um webhook como um manipulador de eventos. Para obter início rápido que usa um hub de eventos do Azure como um manipulador de eventos, consulte Entregar eventos aos Hubs de Eventos do Azure usando tópicos de namespace.