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).

  1. Navegue para o portal do Azure.

  2. Na barra de pesquisa do tópico, digite Event Grid Namespacese selecione Event Grid Namespaces nos resultados.

    Captura de ecrã que mostra a barra de pesquisa no portal do Azure.

  3. Na página Namespaces da Grade de Eventos, selecione + Criar na barra de comandos. Captura de tela que mostra a página Namespaces da Grade de Eventos com o botão Criar na barra de comandos selecionado.

  4. Na página Criar namespace, execute estas etapas:

    1. Selecione a assinatura do Azure na qual você deseja criar o namespace.
    2. Crie um novo grupo de recursos selecionando Criar novo ou selecione um grupo de recursos existente.
    3. Insira um nome para o namespace.
    4. Selecione o local onde deseja criar o grupo de recursos.
    5. Em seguida, selecione Rever + criar.
      Captura de tela que mostra a página Criar namespace.
    6. Na página Rever + criar, selecione Criar.
  5. Na página Implantação, selecione Ir para o recurso após a implantação bem-sucedida.

Obter chave de acesso

  1. Na página Namespace da Grade de Eventos , selecione Teclas de acesso no menu à esquerda.
  2. Selecione o botão copiar ao lado da chave de acesso. Captura de ecrã que mostra a página Espaços de Nomes da Grelha de Eventos com o separador Teclas de acesso selecionado.
  3. 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.

  1. Selecione Tópicos no menu à esquerda.
  2. Na página Tópicos, selecione + Tópico na barra de comandos. Captura de ecrã que mostra a página Tópicos.
  3. Na página Criar tópico, siga estas etapas:
    1. Insira um nome para o tópico.
    2. Selecione Criar.
      Captura de tela que mostra a página Criar tópico.

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.

  1. Selecione Implementar no Azure para implementar a solução para a sua subscrição.

    Botão para implantar o modelo do Gerenciador de Recursos no Azure.

  2. Na página Implantação personalizada, execute as seguintes etapas:

    1. 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.

    2. Em Nome do Site, insira um nome para o aplicativo Web.

    3. 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.

    4. Selecione Rever + criar.

      Captura de tela mostrando a página Implantação personalizada.

  3. Na página Rever + criar, selecione Criar.

  4. A implantação leva alguns minutos para ser concluída. Na página Implantação, selecione Ir para o grupo de recursos.

    Captura de tela mostrando a página de implantação bem-sucedida com um link para ir para o grupo de recursos.

  5. 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.

    Captura de tela que mostra a seleção do aplicativo Web no grupo de recursos.

  6. 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.

    Captura de tela que mostra a seleção do link para navegar até o aplicativo Web.

  7. Confirme que você vê o site, mas nenhum evento foi publicado nele ainda.

    Captura de ecrã de um novo site.

    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.

  1. 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.
  2. Na página Namespace da Grade de Eventos , selecione Tópicos no menu à esquerda.
  3. Na página Tópicos, selecione o tópico criado na etapa anterior.
  4. Selecione + Subscrição na barra de comandos. Captura de ecrã que mostra a página Tópico com o botão Criar subscrição selecionado.
  5. Na página Criar Subscrição de Eventos , siga estes passos:
    1. Na guia Básico, insira um nome para a assinatura do evento.

    2. Selecione Push para o modo de entrega de eventos.

    3. Para Tipo de ponto final, selecione Web Hook.

    4. Selecione Configurar um ponto de extremidade.

      Captura de tela que mostra a página Criar assinatura com Push selecionado para o modo de entrega e WebHook como tipo de ponto de extremidade.

    5. 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.

      Captura de tela que mostra a página Web Hook com um valor para o ponto de extremidade do assinante.

    6. De volta à página Criar Assinatura , selecione Criar.

      Captura de ecrã que mostra a página Criar Subscrição com todos os campos preenchidos.

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

  1. Inicie o Cloud Shell no portal do Azure. Mude para Bash.

    Captura de tela que mostra o Cloud Shell.

  2. 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
    
  3. 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
    
  4. 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
    
  5. No Cloud Shell, execute o seguinte comando para declarar uma variável para manter o nome do namespace.

    topic=TOPICNAME
    

Publicar um evento

  1. 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-previewda 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
    
  2. 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 .

  3. 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.

Captura de tela que mostra o Visualizador de Grade de Eventos do Azure com um exemplo de evento recebido.

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.