Como trabalhar com gatilhos e associações da Grade de Eventos no Azure Functions
Artigo
O Azure Functions fornece integração interna com a Grade de Eventos do Azure usando gatilhos e associações. Este artigo mostra como configurar e avaliar localmente o gatilho e as associações da Grade de Eventos. Para obter mais informações sobre definições e exemplos de associação de saída e gatilho da Grade de Eventos, consulte um dos seguintes artigos de referência:
Para começar a receber solicitações HTTP da Grade de Eventos, você precisa de uma assinatura para eventos gerados pela Grade de Eventos. As assinaturas de evento especificam a URL do ponto de extremidade que invoca a função. Quando você cria uma assinatura de evento na guia Integração da função no portal do Azure, a URL é fornecida. Ao criar uma assinatura de evento programaticamente ou ao criar a assinatura de evento da Grade de Eventos, você precisará fornecer o ponto de extremidade. A URL do ponto de extremidade contém uma chave do sistema, que você precisa obter das APIs REST do administrador do Functions.
Obter a URL do ponto de extremidade do webhook
O ponto de extremidade de URL da função disparada pela Grade de Eventos depende da versão do runtime do Functions. O exemplo a seguir mostra o padrão de URL específico da versão:
Há uma versão do gatilho de Armazenamento de Blobs que também usa assinaturas de evento. A URL do ponto de extremidade para esse tipo de gatilho de Armazenamento de Blobs tem um caminho de /runtime/webhooks/blobs, enquanto o caminho para um gatilho da Grade de Eventos seria /runtime/webhooks/EventGrid. Para obter uma comparação das opções de processamento de blobs, consulte Gatilho em um contêiner de blob.
Obter a chave do sistema
O ponto de extremidade da URL que você constrói inclui um valor de chave do sistema. A chave do sistema é uma chave de autorização, específica para o webhook da Grade de Eventos, que deve ser incluída em uma solicitação na URL do ponto de extremidade de um gatilho da Grade de Eventos. A seção a seguir explica como obter a chave do sistema.
Você também pode obter a chave mestra para seu aplicativo de funções de Funções>Chaves do aplicativo no portal.
Cuidado
A chave mestra fornece acesso de administrador para seu aplicativo de funções. Não compartilhe essa chave com terceiros ou distribua-a em aplicativos clientes nativos.
Essa API REST é uma API de administrador e, por isso, requer sua chave mestre do aplicativo. Não confunda a chave do sistema (para invocar uma função de gatilho de grade de eventos) com a chave mestra (para executar tarefas administrativas no aplicativo de funções). Ao assinar em um tópico da Grade de Eventos, certifique-se de usar a chave do sistema.
Aqui, está um exemplo da resposta que fornece a chave do sistema:
{
"name": "eventgridextensionconfig_extension",
"value": "{the system key for the function}",
"links": [
{
"rel": "self",
"href": "{the URL for the function, without the system key}"
}
]
}
Criar a assinatura
Você pode criar uma assinatura de evento no portal do Azure ou usando a CLI do Azure.
Para as funções que você desenvolve no portal do Azure com o gatilho de Grade de Eventos, selecione Integração, escolha Gatilho da Grade de Eventos e selecione Criar assinatura de Grade de Eventos.
Ao selecionar esse link, o portal abrirá a página Criar Assinatura de Evento com o ponto de extremidade de gatilho atual já definido.
Para criar uma assinatura usando a CLI do Azure, use o comando az eventgrid event-subscription create. Os exemplos usam a versão v2.x+ da URL e são criados para serem executados no Azure Cloud Shell. Você precisará modificar os exemplos a serem executados em um prompt de comando do Windows.
Este exemplo cria uma assinatura para uma conta de armazenamento de blobs, com um espaço reservado para a chave do sistema:
Para testar um gatilho de Grade de Eventos localmente, você deve receber solicitações HTTP de Grade de Eventos entre suas origens na nuvem para sua máquina local. Uma maneira de fazer isso é capturar solicitações online e manualmente reenviá-las em sua máquina local:
Para enviar uma solicitação de postagem HTTP, você precisa de uma ferramenta de teste HTTP. Certifique-se de escolher uma ferramenta que mantém seus dados seguros. Para obter mais informações, confira Ferramentas de teste para HTTP.
Quando terminar de testar, você poderá usar a mesma assinatura para a produção atualizando o ponto de extremidade. Use o comando az eventgrid event-subscription update da CLI do Azure.
Criar um aplicativo Web visualizador
Para simplificar as mensagens de evento de captura, implante um aplicativo Web predefinido que exibe as mensagens de 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. No portal do Azure, forneça os valores para os parâmetros.
A implantação pode levar alguns minutos para ser concluída. Depois que a implantação for bem-sucedida, exiba seu aplicativo Web para garantir que ele esteja em execução. Em um navegador da Web, navegue até: https://<your-site-name>.azurewebsites.net
Você verá o site, mas nenhum evento ainda estará publicado.
Criar uma assinatura na Grade de Eventos
Crie uma assinatura da Grade de Eventos do tipo que você deseja testar e forneça a ela a URL do aplicativo Web como o ponto de extremidade para a notificação de eventos. O ponto de extremidade para seu aplicativo Web deve incluir o sufixo /api/updates/. Portanto, a URL completa é https://<your-site-name>.azurewebsites.net/api/updates
Dispare um evento que gerará tráfego HTTP para o ponto de extremidade do aplicativo Web. Por exemplo, se você criou uma assinatura de armazenamento de Blobs, faça upload ou exclua um blob. Quando uma solicitação for exibida no aplicativo Web, copie o corpo da solicitação.
A solicitação de validação de assinatura será recebida primeiro. Ignore quaisquer solicitações de validação e copie a solicitação de evento.
Postar manualmente a solicitação
Execute sua função de Grade de Eventos localmente. É necessário configurar os cabeçalhos Content-Type e aeg-event-type manualmente, enquanto todos os outros valores podem ser deixados conforme o padrão.
Use sua ferramenta de teste HTTP para criar uma solicitação HTTP POST:
Defina um cabeçalho Content-Type: application/json.
Defina um cabeçalho aeg-event-type: Notification.
Cole os dados RequestBin no corpo da solicitação.
Envie uma solicitação HTTP POST ao ponto de extremidade que inicia manualmente o gatilho da Grade de Eventos.
Crie soluções de ponta a ponta no Microsoft Azure para criar Funções do Azure, implementar e gerenciar aplicativos Web, desenvolver soluções utilizando o Armazenamento do Microsoft Azure e muito mais.
Saiba como usar a Grade de Eventos do Azure e a CLI do Azure ou portal para publicar um tópico e assinar esse evento usando uma função do Azure para o ponto de extremidade.
Neste documento de instruções, você pode aprender a testar localmente seu manipulador de Grade de Eventos para eventos dos Serviços de Comunicação do Azure com o Postman.
Este tutorial mostra como criar um gatilho de baixa latência controlado por evento em um contêiner do Armazenamento de Blobs do Azure usando uma assinatura de evento da Grade de Eventos.