Tutorial: Responder aos 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 aos 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 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.

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

  2. No Visual Studio, acesse 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 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>";
    
  5. Crie e execute o programa para enviar cinco mensagens de teste (const int numberOfMessages = 5;) para o tópico do Barramento de Serviço.

    Console app output

Receber mensagens usando os Aplicativos Lógicos

Nesta etapa, você criará um aplicativo lógico do Azure que recebe eventos do Barramento de Serviço por meio da Grade de Eventos do Azure.

  1. No portal do Azure, crie um aplicativo lógico.
    1. Selecione + Criar um recurso, selecione Integração e, em seguida, selecione Aplicativo Lógico.
    2. Selecione sua assinaturado Azure.
    3. Selecione Usar existente para o Grupo de recursos e selecione o grupo de recursos que você usou para outros recursos (como a função do Azure, o namespace do Barramento de Serviço) criados anteriormente.
    4. Para Tipo, selecione Consumo.
    5. Insira um nome para o aplicativo lógico.
    6. Selecione a Região do aplicativo lógico.
    7. Selecione Examinar + criar.
    8. Na página Examinar + criar, selecione Criar para criar o aplicativo lógico.
    9. Na página de implantação concluída, selecione Ir para o recurso.
  2. Na página Designer de Aplicativos Lógicos, selecione Aplicativo Lógico em Branco em Modelos.

Adicionar uma etapa de recebimento de mensagens de Barramento de Serviço por meio da Grade de Eventos

  1. No designer, siga as seguintes etapas:
    1. Pesquise Grade de Eventos.

    2. Selecione Quando ocorrer um evento de recurso – Grade de Eventos do Azure.

      Logic Apps Designer - select Event Grid trigger

  2. Selecione Entrar, insira suas credenciais do Azure e selecione Permitir o acesso.
  3. Na página Quando ocorrer um evento de recurso, siga as seguintes etapas:
    1. Selecione sua assinatura do Azure.

    2. Para Tipo de recurso, selecione Microsoft.ServiceBus.Namespaces.

    3. Para Nome de recurso, selecione seu namespace do Barramento de Serviço.

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

      Image showing the addition of a suffix filter.

    5. Para Filtro de Sufixo, insira o nome da sua assinatura do tópico do Barramento de Serviço. Logic Apps Designer - configure event

  4. Selecione + Nova Etapa no designer e siga as etapas abaixo:
    1. Pesquise Barramento de Serviço.

    2. Selecione Barramento de Serviço na lista.

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

    4. Selecione Receber mensagens de uma assinatura do tópico (bloqueio de inspeção) .

      Logic Apps Designer - get messages action

    5. Insira um nome para a conexão. Por exemplo: Receber mensagens da assinatura do tópico e selecione o namespace do Barramento de Serviço.

      Logic Apps Designer - select the Service Bus namespace

    6. Selecione RootManageSharedAccessKey e selecione Criar.

      Logic Apps Designer - select the shared access key

    7. Selecione seu tópico e sua assinatura.

      Screenshot that shows where you select your topic and subscription.

Adicionar uma etapa para processar e concluir mensagens recebidas

Nesta etapa, você adicionará etapas para enviar a mensagem recebida em um email e concluir a mensagem. Em um cenário do mundo real, você processará uma mensagem no aplicativo lógico antes de concluir a mensagem.

Adicionar um loop foreach

  1. Selecione + Nova Etapa.

  2. Pesquise e, em seguida, selecione Controlar.

    Image showing selection of Control category

  3. Na lista Ações, selecione For each.

    Image showing selection of For each control

  4. Para Selecionar um resultado das etapas anteriores (clique dentro da caixa de texto se necessário), selecione Corpo em Obter mensagens de uma assinatura de tópico (peek-lock) .

    Image showing the selection of input to For each

Adicione uma etapa dentro do loop foreach para enviar um email com o corpo da mensagem

  1. No loop For each, selecione Adicionar uma ação.

    Image showing the selection of add an action button inside the for each loop

  2. Na caixa de texto Pesquisar conectores e ações, insira Office 365.

  3. Procure e selecione Office 365 Outlook na caixa de texto.

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

  5. Na janela enviar um email (v2) , siga estas etapas:

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

    1. Em Para, insira um endereço de email.

    2. Para Assunto, insira Mensagem recebida da assinatura do tópico de Barramento de Serviço.

    3. Alternar para Expressão.

    4. Insira a expressão a seguir:

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

      Image showing the expression for Body of the Send an email activity.

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

  1. No loop For each, selecione Adicionar uma ação.

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

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

    3. Selecione seu tópico do Barramento de Serviço.

    4. Selecione uma assinatura para o tópico.

    5. Para Lock token da mensagem, selecione Lock token em Conteúdo dinâmico.

      Logic Apps Designer - complete the message

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

    Save logic app

Testar o aplicativo

  1. Se você ainda não enviou mensagens de teste para o tópico, siga as instruções descritas na seção Enviar mensagens ao tópico do Barramento de Serviço para enviar mensagens ao tópico.

  2. Alterne para a Página de visão geral do seu aplicativo lógico e, em seguida, alterne para a guia Histórico de execuções no painel inferior. Você verá que o aplicativo lógico executa mensagens que foram enviadas para o tópico. Pode levar alguns minutos para que você veja as execuções do aplicativo lógico. Selecione Atualizar na barra de ferramentas para atualizar a página.

    Logic Apps Designer - logic app runs

  3. Selecione uma execução de aplicativo lógico para ver os detalhes. Observe que ela processou cinco mensagens no loop for.

    Logic app run details

  4. Você deve receber um email para cada mensagem recebida pelo aplicativo lógico.

Solucionar problemas

Se você não vir nenhuma invocação depois de aguardar e atualizar a página por algum tempo, siga estas etapas:

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

    Service Bus Topic page - incoming messages

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

    Active message count at the Service Bus subscription

  3. Você também verá os eventos entregues na página Eventos do namespace do Barramento de Serviço.

    Events page - delivered events

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

    Event subscription page - delivered events

Próximas etapas