Tutorial: Responder a eventos do Barramento de Serviço do Azure recebidos por meio da Grade de Eventos do Azure usando o Azure Functions
Neste tutorial, você aprenderá a responder a eventos do Barramento de Serviço do Azure recebidos por meio da Grade de Eventos do Azure usando o Azure Functions e os Aplicativos Lógicos do Azure.
Neste tutorial, irá aprender a:
- Criar um espaço de nomes do Service Bus
- Preparar um aplicativo de exemplo para enviar mensagens
- Enviar mensagens para o tópico do Service Bus
- Receber mensagens através do Logic Apps
- Configurar uma função de teste no Azure
- Ligar a função e o espaço de nomes através do Event Grid
- Receber mensagens através das Funções do Azure
Pré-requisitos
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Criar um espaço de nomes do Service Bus
Siga as instruções neste tutorial: Guia de início rápido: use o portal do Azure para criar um tópico do Service Bus e assinaturas para o tópico para executar as seguintes tarefas:
- Crie um namespace premium do Service Bus.
- Obtenha a cadeia de conexão.
- Crie um tópico do Service Bus.
- Crie uma assinatura para o tópico. Você precisa de apenas uma assinatura neste tutorial, portanto, não há necessidade de criar assinaturas S2 e S3.
Enviar mensagens para o tópico do Service Bus
Nesta etapa, você usa um aplicativo de exemplo para enviar mensagens para o tópico do Service Bus criado na etapa anterior.
Clone o repositório azure-service-bus do GitHub ou baixe o arquivo zip e extraia arquivos dele.
No Visual Studio, vá para a pasta \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBusEventGridIntegrationV2 e abra o arquivo SBEventGridIntegration.sln .
Na janela Gerenciador de Soluções, expanda o projeto MessageSender e selecione Program.cs.
Substitua
<SERVICE BUS NAMESPACE - CONNECTION STRING>
pela cadeia de conexão para o namespace do Service Bus e<TOPIC NAME>
pelo nome do tópico.const string ServiceBusConnectionString = "<SERVICE BUS NAMESPACE - CONNECTION STRING>"; const string TopicName = "<TOPIC NAME>";
Crie e execute o programa para enviar 5 mensagens de teste (
const int numberOfMessages = 5;
) para o tópico do Service Bus.
Pré-requisitos adicionais
Instale o Visual Studio 2022 e inclua a carga de trabalho de desenvolvimento do Azure. Essa carga de trabalho inclui as Ferramentas de Função do Azure que você precisa para criar, criar e implantar projetos do Azure Functions no Visual Studio.
Implementar a aplicação de funções
Nota
Para saber mais sobre como criar e implantar um aplicativo do Azure Functions, consulte Desenvolver o Azure Functions usando o Visual Studio
Abra ReceiveMessagesOnEvent.cs arquivo do projeto FunctionApp1 da solução SBEventGridIntegration.sln.
Substitua
<SERVICE BUS NAMESPACE - CONNECTION STRING>
pela cadeia de conexão ao namespace do Service Bus. Ele deve ser o mesmo que você usou no arquivo Program.cs do projeto MessageSender na mesma solução.Clique com o botão direito do mouse em FunctionApp1 e selecione Publicar.
Na página Publicar, selecione Iniciar. Essas etapas podem ser diferentes do que você vê, mas o processo de publicação deve ser semelhante.
No assistente de publicação, na página Destino, selecione Azure para destino.
Na página de destino específico, selecione Azure Function App (Windows).
Na página Instância do Functions , selecione Criar novo.
Na página Function App (Windows), siga estes passos:
- Insira um nome para o aplicativo de função.
- Selecione uma assinatura do Azure.
- Selecione um grupo de recursos existente ou crie um novo grupo de recursos. Para este tutorial, selecione o grupo de recursos que tem o namespace do Service Bus.
- Selecione um tipo de plano para o Serviço de Aplicativo.
- Selecione um local. Selecione o mesmo local que o namespace do Service Bus.
- Selecione um Armazenamento do Azure existente ou selecione Novo para criar uma nova conta de Armazenamento a ser usada pelo aplicativo Funções.
- Para Informações sobre aplicativos, selecione uma instância existente do Application Insights para associar à função do Azure ou crie uma.
- Selecione Criar para criar o aplicativo Funções.
De volta à página Instância de funções do assistente de publicação , selecione Concluir.
Na página Publicar no Visual Studio, selecione Publicar para publicar o aplicativo Funções no Azure.
Na janela Saída, veja as mensagens de compilação e publicação e confirme se ambas foram bem-sucedidas.
Se a publicação falhar com um problema de autenticação, verifique se a opção SCM Basic Auth Publishing está habilitada para o aplicativo Azure Functions.
Agora, na página Publicar , na seção Hospedagem , selecione ... (reticências) e selecione Abrir no portal do Azure.
No portal do Azure, na página Aplicativo de Função, selecione EventGridTriggerFunction na lista. Recomendamos que você use o gatilho de Grade de Eventos com o Azure Functions, pois ele tem alguns benefícios em relação ao uso do gatilho HTTP. Para obter detalhes, consulte Função do Azure como um manipulador de eventos para eventos de Grade de Eventos.
Na página Função do EventGridTriggerFunction, alterne para a guia Invocações.
Mantenha esta página aberta num separador do seu browser. Você atualizará esta página para ver as invocações para essa função mais tarde.
Conecte a função e o namespace do Service Bus por meio da grade de eventos
Nesta seção, você une a função e o namespace do Service Bus usando o portal do Azure.
Para criar uma assinatura da Grade de Eventos do Azure, siga estas etapas:
No portal do Azure, vá para o namespace do Service Bus e, no painel esquerdo, selecione Eventos. É aberta a janela do espaço de nomes, com duas subscrições do Event Grid no painel direito.
Selecione + Subscrição de Eventos na barra de ferramentas.
Na página Criar Assinatura de Evento , execute as seguintes etapas:
Insira um nome para a assinatura.
Insira um nome para o tópico do sistema. Os tópicos do sistema são tópicos criados para recursos do Azure, como a conta de Armazenamento do Azure e o Barramento de Serviço do Azure. Para saber mais sobre tópicos do sistema, consulte Visão geral dos tópicos do sistema.
Selecione Função do Azure para Tipo de Ponto de Extremidade e escolha Configurar um ponto de extremidade.
Na página Selecionar Função do Azure, selecione a assinatura, o grupo de recursos, o aplicativo de função, o slot e a função e selecione Confirmar seleção.
Na página Criar Assinatura de Evento, alterne para a guia Filtros e execute as seguintes tarefas:
Mude para o separador Subscrições de Eventos da página Eventos e confirme que vê a subscrição do evento na lista.
Monitorar o aplicativo Funções
As mensagens enviadas para o tópico do Service Bus anteriormente são encaminhadas para a assinatura (S1). A Grade de Eventos encaminha as mensagens na assinatura da função do Azure. Nesta etapa do tutorial, você confirma que a função foi invocada e visualiza as mensagens informativas registradas.
Na página do seu aplicativo de função do Azure, alterne para a guia Invocações se ele ainda não estiver ativo. Você verá uma entrada para cada mensagem postada no tópico do Service Bus. Se não os vir, atualize a página depois de aguardar alguns minutos.
Selecione a invocação na lista para ver os detalhes.
Também pode utilizar o separador Registos para ver as informações de registo à medida que as mensagens são enviadas. Pode haver algum atraso, então dê alguns minutos para ver as mensagens registradas.
Resolver problemas
Se você não vir nenhuma chamada de função depois de esperar e atualizar por algum tempo, siga estas etapas:
Confirme se as mensagens chegaram ao tópico do Service Bus. Consulte o contador de mensagens de entrada na página Tópico do Service Bus. Nesse caso, executei o aplicativo MessageSender duas vezes, então vejo 10 mensagens (5 mensagens para cada execução).
Confirme se não há mensagens ativas na assinatura do Service Bus. Se você não vir nenhum evento nesta página, verifique se a página Assinatura do Service Bus não mostra nenhuma contagem de mensagens ativas. Se o número desse contador for maior que zero, as mensagens na assinatura não serão encaminhadas para a função manipulador (manipulador de assinatura de eventos) por algum motivo. Verifique se você configurou a assinatura do evento corretamente.
Você também vê eventos entregues na página Eventos do namespace do Service Bus.
Você também pode ver que os eventos são entregues na página Assinatura do evento. Pode aceder a esta página selecionando a subscrição do evento na página Eventos .
Conteúdos relacionados
- Saiba mais sobre o Azure Event Grid.
- Saiba mais sobre as Funções do Azure.
- Saiba mais sobre o Azure Service Bus.