Tutorial: Responder a eventos do Barramento de Serviço do Azure recebidos por meio da Grade de Eventos do Azure usando os Aplicativos Lógicos do Azure
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 os Aplicativos Lógicos 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.
Receber mensagens através do Logic Apps
Nesta etapa, você cria um aplicativo lógico do Azure que recebe eventos do Service Bus por meio da Grade de Eventos do Azure.
Selecione + Criar um recurso, selecione Integração e, em seguida, selecione Aplicativo lógico.
Na página Criar Aplicativo Lógico, siga estas etapas:
- Selecione a sua subscrição do Azure.
- Selecione Usar existente para o grupo de recursos e selecione o grupo de recursos que você usou para outros recursos (como função do Azure, namespace do Service Bus) criado anteriormente.
- Insira um nome para o aplicativo lógico.
- Selecione a Região para o aplicativo lógico.
- Em Tipo de plano, selecione Consumo.
- Selecione Rever + Criar.
- Na página Rever + Criar, selecione Criar para criar a aplicação lógica.
Na página Implantação concluída, selecione Ir para o recurso para navegar até a página do aplicativo lógico.
Na página Designer de Aplicativos Lógicos, selecione Aplicativo Lógico em Branco em Modelos.
Adicionar uma etapa receber mensagens do Service Bus via Event Grid
Na página Aplicativo lógico, selecione Designer de aplicativo lógico no menu à esquerda.
No painel direito, em Modelos, selecione Aplicativo Lógico em Branco.
No designer, execute as seguintes etapas:
Pesquise por Grade de Eventos.
Selecione Quando ocorre um evento de recurso - Grade de Eventos do Azure.
Selecione Iniciar sessão.
Na página Entrar na sua conta, selecione a conta que você deseja usar para entrar no Azure. 1.
Na página Quando ocorre um evento de recurso, execute as seguintes etapas:
Selecione a subscrição do Azure.
Em Tipo de Recurso, selecione Microsoft.ServiceBus.Namespaces.
Em Nome do Recurso, selecione o namespace do Service Bus.
Selecione Adicionar novo parâmetro, selecione Filtro de Sufixos e mova o foco para fora da lista suspensa.
Em Filtro de Sufixo, insira o nome da sua assinatura de tópico do Service Bus.
Selecione + Nova etapa no designer e execute as seguintes etapas:
Procure por Service Bus.
Selecione Barramento de Serviço na lista.
Selecione Obter mensagens na lista Ações .
Selecione Obter mensagens de uma assinatura de tópico (peek-lock).
Siga estes passos:
Insira um nome para a conexão. Por exemplo: Obter mensagens da assinatura do tópico.
Confirme se Tipo de Autenticação está definido como Chave de Acesso.
Para Cadeia de Conexão, copie e cole a cadeia de conexão no namespace do Service Bus que você salvou anteriormente.
Selecione Criar.
Selecione o tópico e a subscrição.
Adicionar uma etapa para processar e concluir as mensagens recebidas
Nesta etapa, você adiciona etapas para enviar a mensagem recebida em um e-mail e, em seguida, concluir a mensagem. Em um cenário do mundo real, você processa uma mensagem no aplicativo lógico antes de concluir a mensagem.
Adicionar um loop foreach
Selecione + Novo passo.
Procure e selecione Controle.
Na lista Ações, selecione Para cada uma.
Para Selecione uma saída de etapas anteriores (clique dentro da caixa de texto, se necessário), selecione Corpo em Obter mensagens de uma assinatura de tópico (peek-lock).
Adicione uma etapa dentro do loop foreach para enviar um e-mail com o corpo da mensagem
Em Para cada loop, selecione Adicionar uma ação.
Na caixa de texto Conectores de pesquisa e ações , digite Office 365.
Selecione Office 365 Outlook nos resultados da pesquisa.
Na lista de ações, selecione Enviar um e-mail (V2).
Selecione Entrar e siga as etapas para criar uma conexão com o Office 365 Outlook.
Na janela Enviar um e-mail (V2), siga estas etapas:
Selecione dentro da caixa de texto para Corpo e siga estas etapas:
Em Para, insira um endereço de e-mail.
Em Assunto, insira Mensagem recebida da assinatura do tópico do Service Bus.
Alterne para Expressão.
Insira a seguinte expressão:
base64ToString(items('For_each')?['ContentData'])
Selecione OK.
Adicione outra ação no loop foreach para concluir a mensagem
Em Para cada loop, selecione Adicionar uma ação.
Selecione Barramento de Serviço na lista Recentes .
Selecione Concluir a mensagem em uma assinatura de tópico na lista de ações.
Selecione o tópico do Service Bus.
Selecione uma assinatura para o tópico.
Em Token de bloqueio da mensagem, selecione Bloquear token no conteúdo dinâmico.
Selecione Salvar na barra de ferramentas no Designer de Aplicativos Lógicos para salvar o aplicativo lógico.
Testar a aplicação
Se você ainda não enviou mensagens de teste para o tópico, siga as instruções na seção Enviar mensagens para o tópico do Service Bus para enviar mensagens para o tópico.
Mude para a página Descrição Geral da sua aplicação lógica e, em seguida, mude para o separador Histórico de execuções no painel inferior. Você vê que o aplicativo lógico executa mensagens que foram enviadas para o tópico. Pode levar alguns minutos até que você veja a execução do aplicativo lógico. Selecione Atualizar na barra de ferramentas para atualizar a página.
Selecione um aplicativo lógico executado para ver os detalhes. Observe que ele processou 5 mensagens no loop for.
Você deve receber um e-mail para cada mensagem que o aplicativo lógico recebe.
Resolver problemas
Se você não vir nenhuma invocaçã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. Neste caso, executei o aplicativo MessageSender uma vez, então vejo 5 mensagens.
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 .
Próximos passos
- Saiba mais sobre o Azure Event Grid.
- Saiba mais sobre as Funções do Azure.
- Saiba mais sobre a funcionalidade Logic Apps do Serviço de Aplicações do Azure.
- Saiba mais sobre o Azure Service Bus.