Entregar eventos para webhooks usando tópicos de namespace – portal do Azure (versão prévia)
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, você deve publicar eventos em um tópico de namespace na Grade de Eventos e efetuar push desses eventos de uma assinatura de evento para um webhook manipulador de destino. Para obter mais informações sobre o modelo de entrega por push, confira Visão geral da entrega por push.
Observação
Atualmente, os namespaces da Grade de Eventos do Azure dão suporte à autenticação de chaves de acesso e de token SAS (Assinaturas de Acesso Compartilhado).
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.
Crie um tópico no namespace
Crie um tópico que contém 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 de extremidade de mensagem
Antes de assinar os eventos, vamos criar o ponto de extremidade para a mensagem do evento. Normalmente, o ponto de extremidade executa ações com base nos dados de evento. Para simplificar esse início rápido, implante um aplicativo web predefinido que exiba as mensagens do evento. A solução implantada inclui um plano do Serviço de Aplicativo, um aplicativo Web do Aplicativo do Serviço de e o código-fonte do GitHub.
Selecione Implantar no Azure para implantar a solução na sua assinatura.
Na página Implantação personalizada, realize as seguintes etapas:
Para Grupo de recursos, selecione o mesmo grupo de recursos que você usou ao criar a conta de armazenamento. Será mais fácil limpar após concluir 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 usar para hospedar o aplicativo Web.
Selecione Examinar + criar.
Na página Examinar + criar escolha 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 verá o plano do Serviço de Aplicativo e a conta de armazenamento nesta lista.
Na página Serviço de Aplicativo para seu aplicativo Web, selecione a URL para navegar até o site da Web. A URL deve estar neste formato:
https://<your-site-name>.azurewebsites.net
.Confirme que você vê o site, mas que nenhum evento foi postado nele ainda.
Importante
Mantenha a janela Visualizador de Eventos da Grade de Eventos do Azure aberta para ver os eventos conforme eles são postados.
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.
Para Tipo de ponto de extremidade, 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.Volte para a página Criar Assinatura e 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.
Declarar variáveis
Inicie o Cloud Shell no portal do Azure. Mude para Bash.
Execute o comando a seguir para declarar uma variável para manter o nome do grupo de recursos. Substitua
RESOUREGROUPNAME
pelo nome do 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 seu namespace Grade de Eventos.namespace=NAMESPACENAME
Execute o comando a seguir para declarar uma variável para manter o valor da chave de acesso anotado anteriormente. Substitua
ACCESSKEY
pelo valor da chave de acesso para o namespace da Grade de Eventos.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. Use-o para compor o ponto de extremidade HTTP do namespace para o qual os eventos serã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 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
Verifique se o Visualizador da Grade de Eventos do Azure recebeu o evento
Verifique se o aplicativo web do Visualizador da Grade de Eventos do Azure mostra os eventos recebidos da Grade de Eventos.
Conteúdo relacionado
Neste início rápido, você usou um webhook como manipulador de eventos. Para obter um início rápido que usa um hub de eventos do Azure como um manipulador de eventos, confira Distribuir eventos para Hubs de Eventos do Azure usando tópicos de namespace.