Tutorial: Responder aos 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 que são recebidos por meio da Grade de Eventos do Azure usando o Azure Functions e os Aplicativos Lógicos do Azure.
Neste tutorial, você aprenderá como:
- Criar um namespace do Barramento de Serviço
- Preparar um aplicativo de exemplo para enviar as mensagens
- Enviar mensagens para o tópico do Barramento de Serviço
- Receber mensagens usando os Aplicativos Lógicos
- Configurar uma função de teste no Azure
- Conecte a função e o namespace através da Grade de Eventos
- Receber mensagens usando o Azure Functions
Pré-requisitos
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Criar um namespace do Barramento de Serviço
Siga as instruções deste tutorial: Início Rápido: Usar o portal do Azure para criar um tópico do Barramento de Serviço e assinaturas para o tópico para executar as seguintes tarefas:
- Criar um namespace premium do Barramento de Serviço.
- Obter a cadeia de conexão.
- Criar um tópico de Barramento de Serviço.
- 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 Barramento de Serviço
Nesta etapa, você usa um aplicativo de exemplo para enviar mensagens para o tópico do Barramento de Serviço criado na etapa anterior.
Clone o repositório GitHub azure-service-bus ou baixe o arquivo zip e extraia os arquivos dele.
No Visual Studio, acesse 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 do namespace do Barramento de Serviço 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 cinco mensagens de teste (
const int numberOfMessages = 5;
) para o tópico do Barramento de Serviço.
Pré-requisitos adicionais
Instale o Visual Studio 2022 e inclua a carga de trabalho de Desenvolvimento do Azure. Essa carga de trabalho inclui o Azure Function Tools, que você precisa para criar, compilar e implantar projetos do Azure Functions no Visual Studio.
Implantar o aplicativo de funções
Observação
Para saber mais sobre como criar e implantar um aplicativo do Azure Functions, confira Desenvolver o Azure Functions usando o Visual Studio
Abra o arquivo ReceiveMessagesOnEvent.cs por meio do projeto FunctionApp1 da solução SBEventGridIntegration.sln.
Substitua
<SERVICE BUS NAMESPACE - CONNECTION STRING>
pela cadeia de conexão para o namespace do Barramento de Serviço. Ele deverá 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. Estas 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 em Destino.
Na página Destino específico, selecione Aplicativo de Funções do Azure (Windows) .
Na página da Instância do Functions, selecione Criar novo.
Na página Aplicativo de Funções (Windows) , siga estas etapas:
- insira um nome para o aplicativo de funções.
- Selecione uma assinatura do Azure.
- Selecione um grupo de recursos existente ou crie um grupo de recursos. Para este tutorial, selecione o grupo de recursos que tem o namespace do Barramento de Serviço.
- Selecione um tipo de plano para o Serviço de Aplicativo.
- Selecione um local. Selecione a mesma localização do namespace do Barramento de Serviço.
- Escolha um Armazenamento do Azure existente ou selecione Novo para criar uma conta de armazenamento a ser usada pelo aplicativo de funções.
- Para Application Insights, selecione uma instância existente do Application Insights para associar à função do Azure ou crie uma.
- Selecione Criar para criar o aplicativo de funções.
De volta à página Instância do Functions do assistente de Publicação, selecione Concluir.
Na página Publicar do Visual Studio, selecione Publicar para publicar o aplicativo do Functions no Azure.
Na Janela de Saída, confira as mensagens de build e publicação e confirme se os dois foram bem-sucedidos.
Se a publicação falhar com um problema de autenticação, verifique se a opção de Publicação de Autenticação Básica do SCM está habilitada para o aplicativo do 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 do Aplicativo de funções, selecione EventGridTriggerFunction na lista. Recomendamos que você use o gatilho da Grade de Eventos com o Azure Functions, pois ele oferece alguns benefícios em relação ao uso do gatilho HTTP. Para obter detalhes, confira Função do Azure como um manipulador de eventos para os eventos da Grade de Eventos.
Na página da Função para o EventGridTriggerFunction, vá para a guia Invocações.
Mantenha essa página aberta em uma guia do navegador da Web. Você a atualizará para ver as invocações dessa função posteriormente.
Conecte a função e o namespace do Barramento de Serviço através da Grade de Eventos
Nesta seção, você une a função e o namespace do Barramento de Serviço usando o portal do Azure.
Para criar uma assinatura da Grade de Eventos do Azure, siga as etapas a seguir:
No portal do Azure, vá para seu namespace do Barramento de Serviço e, em seguida, no painel esquerdo, selecione Eventos. A janela do namespace é aberta, com duas assinaturas da Grade de Eventos exibidas no painel direito.
Selecione + Assinatura de Evento na barra de ferramentas.
Na página Criar Assinatura de Eventos, faça o seguinte:
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 do Armazenamento do Azure e o Barramento de Serviço do Azure. Para saber mais sobre os tópicos do sistema, confira 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, escolha a assinatura, o grupo de recursos, o aplicativo de funções, 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:
Alterne para a guia Assinaturas de Evento da página Eventos e confirme se você vê a assinatura de evento na lista.
Monitorar o aplicativo de funções
As mensagens que você enviou para o tópico do Barramento de Serviço anteriormente são encaminhadas para a assinatura (S1). A Grade de Eventos encaminha as mensagens na assinatura para a função do Azure. Nesta etapa do tutorial, você confirmará se a função foi invocada e verá as mensagens informativas registradas em log.
Na página do aplicativo de funções do Azure, alterne para a guia Invocações caso ela ainda não esteja ativa. Você deverá ver uma entrada para cada mensagem postada no tópico do Barramento de Serviço. Se você não as vir, atualize a página depois de aguardar alguns minutos.
Selecione a invocação na lista para ver os detalhes.
Você também pode usar a guia Logs para ver as informações de registro em log conforme as mensagens são enviadas. Pode haver algum atraso, então aguarde alguns minutos para ver as mensagens registradas.
Solucionar problemas
Se você não vir nenhuma invocação da função depois de aguardar e atualizar a página por algum tempo, siga estas etapas:
Confirme se as mensagens chegaram no tópico do Barramento de Serviço. Confira o contador mensagens de entrada na página Tópico do Barramento de Serviço. Nesse caso, executei o aplicativo MessageSender duas vezes e, portanto, vejo dez mensagens (cinco mensagens para cada execução).
Confirme se não há nenhuma mensagem ativa na assinatura do Barramento de Serviço. Se você não vir nenhum evento nessa página, verifique se a página Assinatura do Barramento de Serviço não mostra nenhuma Contagem de mensagens ativas. Se o número desse contador for maior que zero, as mensagens da assinatura não serão encaminhadas para a função de manipulador (manipulador de assinaturas de evento) por algum motivo. Verifique se você configurou a assinatura de evento corretamente.
Você também verá os eventos entregues na página Eventos do namespace do Barramento de Serviço.
Você também verá que os eventos são entregues na página Assinatura de Evento. Acesse essa página selecionando a assinatura de evento na página Eventos.
Conteúdo relacionado
- Saiba mais sobre a Grade de Eventos do Azure.
- Saiba mais sobre o Azure Functions.
- Saiba mais sobre o Barramento de Serviço do Azure.