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.

  1. Clone o repositório azure-service-bus do GitHub ou baixe o arquivo zip e extraia arquivos dele.

  2. No Visual Studio, vá para a pasta \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBusEventGridIntegrationV2 e abra o arquivo SBEventGridIntegration.sln .

  3. Na janela Gerenciador de Soluções, expanda o projeto MessageSender e selecione Program.cs.

  4. 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>";
    
  5. Crie e execute o programa para enviar 5 mensagens de teste (const int numberOfMessages = 5;) para o tópico do Service Bus.

    Saída do aplicativo de console

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.

  1. Selecione + Criar um recurso, selecione Integração e, em seguida, selecione Aplicativo lógico.

    Captura de tela que mostra o menu Criar um recurso -> Integração -> Aplicativo lógico.

  2. Na página Criar Aplicativo Lógico, siga estas etapas:

    1. Selecione a sua subscrição do Azure.
    2. 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.
    3. Insira um nome para o aplicativo lógico.
    4. Selecione a Região para o aplicativo lógico.
    5. Em Tipo de plano, selecione Consumo.
    6. Selecione Rever + Criar. Captura de tela que mostra a página Criar um aplicativo lógico.
    7. Na página Rever + Criar, selecione Criar para criar a aplicação lógica.
  3. Na página Implantação concluída, selecione Ir para o recurso para navegar até a página do aplicativo lógico.

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

  1. Na página Aplicativo lógico, selecione Designer de aplicativo lógico no menu à esquerda.

  2. No painel direito, em Modelos, selecione Aplicativo Lógico em Branco.

    Captura de tela que mostra a página Designer de aplicativo lógico com a opção Aplicativo lógico em branco selecionada.

  3. No designer, execute as seguintes etapas:

    1. Pesquise por Grade de Eventos.

    2. Selecione Quando ocorre um evento de recurso - Grade de Eventos do Azure.

      Captura de tela que mostra o Designer de Aplicativos Lógicos com o gatilho Grade de Eventos selecionado.

  4. Selecione Iniciar sessão.

    Captura de ecrã que mostra o Designer de Aplicações Lógicas com o botão Iniciar sessão selecionado.

  5. Na página Entrar na sua conta, selecione a conta que você deseja usar para entrar no Azure. 1.

  6. Na página Quando ocorre um evento de recurso, execute as seguintes etapas:

    1. Selecione a subscrição do Azure.

    2. Em Tipo de Recurso, selecione Microsoft.ServiceBus.Namespaces.

    3. Em Nome do Recurso, selecione o namespace do Service Bus.

    4. Selecione Adicionar novo parâmetro, selecione Filtro de Sufixos e mova o foco para fora da lista suspensa.

      Captura de tela que mostra a adição de um novo parâmetro do tipo Filtro de sufixo.

    5. Em Filtro de Sufixo, insira o nome da sua assinatura de tópico do Service Bus.

      Captura de tela que mostra o Designer de Aplicativos Lógicos com configuração de conexão para o namespace do Service Bus.

  7. Selecione + Nova etapa no designer e execute as seguintes etapas:

    1. Procure por Service Bus.

    2. Selecione Barramento de Serviço na lista.

      Captura de tela que mostra a seleção do Service Bus.

    3. Selecione Obter mensagens na lista Ações .

    4. Selecione Obter mensagens de uma assinatura de tópico (peek-lock).

      Captura de tela que mostra o Designer de Aplicativos Lógicos com Obter mensagens de uma assinatura de tópico selecionada.

    5. Siga estes passos:

      1. Insira um nome para a conexão. Por exemplo: Obter mensagens da assinatura do tópico.

      2. Confirme se Tipo de Autenticação está definido como Chave de Acesso.

      3. Para Cadeia de Conexão, copie e cole a cadeia de conexão no namespace do Service Bus que você salvou anteriormente.

      4. Selecione Criar.

        Captura de tela que mostra o Designer de Aplicativos Lógicos com a cadeia de conexão do Service Bus especificada.

    6. Selecione o tópico e a subscrição.

      Captura de tela que mostra o Designer de Aplicativos Lógicos com o tópico do Service Bus e a assinatura especificados.

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

  1. Selecione + Novo passo.

  2. Procure e selecione Controle.

    Captura de tela que mostra a categoria Controle.

  3. Na lista Ações, selecione Para cada uma.

    Captura de tela que mostra a operação Para cada selecionada.

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

    Captura de tela que mostra a seleção de Para cada entrada.

Adicione uma etapa dentro do loop foreach para enviar um e-mail com o corpo da mensagem

  1. Em Para cada loop, selecione Adicionar uma ação.

    Captura de tela que mostra a seleção de Adicionar um botão de ação no loop Para cada um.

  2. Na caixa de texto Conectores de pesquisa e ações , digite Office 365.

  3. Selecione Office 365 Outlook nos resultados da pesquisa.

    Captura de ecrã que mostra a seleção do Office 365.

  4. Na lista de ações, selecione Enviar um e-mail (V2).

    Captura de tela que mostra a seleção da operação Enviar um e-mail.

  5. Selecione Entrar e siga as etapas para criar uma conexão com o Office 365 Outlook.

  6. Na janela Enviar um e-mail (V2), siga estas etapas:

  7. Selecione dentro da caixa de texto para Corpo e siga estas etapas:

    1. Em Para, insira um endereço de e-mail.

    2. Em Assunto, insira Mensagem recebida da assinatura do tópico do Service Bus.

    3. Alterne para Expressão.

    4. Insira a seguinte expressão:

      base64ToString(items('For_each')?['ContentData'])
      
    5. Selecione OK.

      Captura de ecrã que mostra a expressão para Corpo da atividade Enviar um e-mail.

Adicione outra ação no loop foreach para concluir a mensagem

  1. Em Para cada loop, selecione Adicionar uma ação.

    1. Selecione Barramento de Serviço na lista Recentes .

    2. Selecione Concluir a mensagem em uma assinatura de tópico na lista de ações.

      Captura de tela que mostra a seleção de Concluir uma mensagem em uma assinatura de tópico.

    3. Selecione o tópico do Service Bus.

    4. Selecione uma assinatura para o tópico.

    5. Em Token de bloqueio da mensagem, selecione Bloquear token no conteúdo dinâmico.

      Captura de tela que mostra o campo de token de bloqueio.

  2. Selecione Salvar na barra de ferramentas no Designer de Aplicativos Lógicos para salvar o aplicativo lógico.

    Captura de ecrã que mostra o botão Guardar na aplicação Lógica concebida.

Testar a aplicação

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

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

    Captura de ecrã que mostra o histórico de execução da aplicação Lógica.

  3. Selecione um aplicativo lógico executado para ver os detalhes. Observe que ele processou 5 mensagens no loop for.

    Captura de tela que mostra os detalhes da execução do aplicativo lógico selecionado.

  4. Você deve receber um e-mail para cada mensagem que o aplicativo lógico recebe.

    Captura de ecrã do Outlook com as mensagens recebidas da subscrição dos tópicos.

Resolver problemas

Se você não vir nenhuma invocação depois de esperar e atualizar por algum tempo, siga estas etapas:

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

    Captura de tela que mostra a página Tópico do Service Bus com a contagem de mensagens de entrada selecionada.

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

    Captura de ecrã que mostra a página Subscrição do Service Bus com a contagem de mensagens ativas selecionada.

  3. Você também vê eventos entregues na página Eventos do namespace do Service Bus.

    Captura de tela que mostra a página Eventos da página Namespace do Service Bus.

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

    Captura de ecrã que mostra a página Subscrição de Eventos com a contagem de eventos entregues selecionada.

Próximos passos