Assinar e aguardar eventos para executar fluxos de trabalho usando webhooks HTTP nos Aplicativos Lógicos do Azure

Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Padrão)

Em vez de usar um gatilho que verifica ou sonda regularmente um ponto de extremidade de serviço ou uma ação que chama esse ponto de extremidade, você pode usar um gatilho ou uma ação de webhook HTTP que assina um ponto de extremidade de serviço, aguarda eventos específicos e executa ações específicas no fluxo de trabalho.

Veja a seguir alguns exemplos de fluxos de trabalho baseados em webhook:

  • Aguarde até que um evento chegue dos Hubs de Eventos do Azure antes de disparar uma execução de fluxo de trabalho.
  • Aguarde uma aprovação antes de continuar um fluxo de trabalho.

Este guia mostra como usar o gatilho de webhook HTTP e a ação de webhook para que o seu fluxo de trabalho possa receber eventos e responder a eles em um ponto de extremidade de serviço.

Como os webhooks funcionam?

Um gatilho de webhook é baseado em eventos, o que não depende da verificação nem da sondagem regular de novos dados ou eventos. Depois que você adiciona um gatilho de webhook a um fluxo de trabalho vazio e salva o fluxo de trabalho ou depois que habilita novamente um recurso de aplicativo lógico desabilitado, o gatilho de webhook assina o ponto de extremidade de serviço especificado registrando uma URL de retorno de chamada nesse ponto de extremidade. Em seguida, o gatilho aguarda o ponto de extremidade de serviço chamar a URL, o que aciona o gatilho e inicia o fluxo de trabalho. Semelhante ao gatilho de solicitação, um gatilho de webhook é acionado imediatamente. O gatilho de webhook também permanece inscrito no ponto de extremidade de serviço, a menos que você realize manualmente as seguintes ações:

  • Altere os valores de parâmetro do gatilho.
  • Exclua o gatilho e salve o fluxo de trabalho.
  • Desabilite o recurso de aplicativo lógico.

Semelhante ao gatilho de webhook, uma ação de webhook funciona também baseada em eventos. Depois que você adiciona uma ação de webhook a um fluxo de trabalho existente e salva o fluxo de trabalho ou depois que habilita novamente um recurso de aplicativo lógico desabilitado, a ação de webhook assina o ponto de extremidade de serviço especificado registrando uma URL de retorno de chamada nesse ponto de extremidade. Quando o fluxo de trabalho é executado, a ação de webhook pausa o fluxo de trabalho e aguarda até que o ponto de extremidade de serviço chame a URL antes que o fluxo de trabalho retome a execução. Uma ação de webhook cancela a assinatura do ponto de extremidade de serviço quando as seguintes condições ocorrem:

  • A ação de webhook é concluída sucesso.
  • A execução do fluxo de trabalho é cancelada enquanto uma resposta é aguardada.
  • Antes que um fluxo de trabalho atinja o tempo limite.
  • Você altera os valores de parâmetro da ação de webhook usados como entradas por um gatilho de webhook.

Por exemplo, a ação Enviar email de aprovação do conector do Office 365 Outlook é um exemplo de ação de webhook que segue esse padrão. É possível estender esse padrão para qualquer serviço por meio de ação de webhook.

Para obter mais informações, consulte a seguinte documentação:

Para saber mais sobre criptografia, segurança e autorização de chamadas de entrada para seu aplicativo lógico, como TLS (Transport Layer Security), anteriormente conhecido como SSL (Secure Sockets Layer) ou Microsoft Entra ID OAuth (Microsoft Entra ID Open Authentication), confira Proteger o acesso e os dados: acesso para chamadas de entrada a gatilhos baseados em solicitação.

Referência técnica do conector

Para saber mais sobre parâmetros de gatilho e ação, confira Parâmetros de webhook HTTP.

Pré-requisitos

  • Uma conta e uma assinatura do Azure. Se você não tiver uma assinatura do Azure, inscreva-se em uma conta gratuita do Azure.

  • A URL de uma API ou de um ponto de extremidade já implantado que dê suporte ao padrão de assinatura e cancelamento de assinatura de webhook para gatilhos de webhook em fluxos de trabalho ou ações de webhook em fluxos de trabalho, conforme apropriado

  • O fluxo de trabalho do aplicativo lógico Standard ou Consumo no qual você deseja aguardar eventos específicos no ponto de extremidade de destino. Para começar com o gatilho de webhook HTTP, crie um aplicativo lógico com um fluxo de trabalho em branco. Para usar a ação Webhook HTTP, inicie o fluxo de trabalho com o gatilho desejado. Este exemplo usa o gatilho HTTP como primeira etapa.

Incluir um gatilho de webhook HTTP

Esse gatilho integrado chama o ponto de extremidade de assinatura no serviço de destino e registra uma URL de retorno de chamada nesse serviço. Em seguida, o fluxo de trabalho aguardará até que o serviço de destino envie uma solicitação HTTP POST à URL de retorno de chamada. Quando esse evento ocorre, o gatilho é acionado e passa todos os dados da solicitação para o fluxo de trabalho.

  1. No Portal do Azure, abra o fluxo de trabalho em branco do aplicativo lógico Standard no designer.

  2. Siga estas etapas gerais para adicionar o gatilho chamado Webhook HTTP ao fluxo de trabalho.

    Este exemplo renomeia o gatilho para gatilho de webhook HTTP para que a etapa tenha um nome mais descritivo. Além disso, o exemplo adiciona posteriormente uma ação de webhook HTTP e ambos os nomes devem ser exclusivos.

  3. Forneça os valores dos parâmetros do gatilho de webhook HTTP que você deseja usar para as chamadas de assinatura e cancelamento de assinatura.

    Propriedade Obrigatório Descrição
    Assinatura – Método Sim O método a ser usado ao assinar o ponto de extremidade de destino
    Assinatura - URI Sim A URL a ser usada para assinar o ponto de extremidade de destino
    Assinatura - Corpo Não Qualquer corpo da mensagem a ser incluído na solicitação de assinatura. Este exemplo inclui a URL de retorno de chamada que identifica exclusivamente o assinante, ou seja, seu aplicativo lógico, por meio da expressão @listCallbackUrl() a fim de recuperar a URL de retorno de chamada dele.
    Cancelar a assinatura - Método Não O método a ser usado ao cancelar a assinatura do ponto de extremidade de destino
    Cancelar a assinatura - URI Não A URL a ser usada para cancelar a assinatura do ponto de extremidade de destino
    Cancelar a assinatura - Corpo Não Um corpo de mensagem opcional a ser incluído na solicitação de cancelamento de assinatura

    Observação: essa propriedade não fornece suporte ao uso da função listCallbackUrl(). No entanto, o gatilho inclui e envia automaticamente os cabeçalhos x-ms-client-tracking-id e x-ms-workflow-operation-name, que o serviço de destino pode usar para identificar exclusivamente o assinante.

    Observação

    No caso das propriedades Cancelar assinatura — Método e Cancelar assinatura — URI, adicione-as à ação abrindo a lista Parâmetros avançados.

    Por exemplo, o gatilho a seguir inclui os métodos, os URIs e os corpos de mensagens a serem usados na execução das operações de assinatura e cancelamento de assinatura.

    Screenshot shows Standard workflow with HTTP Webhook trigger parameters.

    Caso você precise usar a autenticação, adicione as propriedades Assinar — Autenticação e Cancelar assinatura — Autenticação. Para obter mais informações sobre os tipos de autenticação disponíveis para webhook HTTP, consulte Adicionar autenticação a chamadas de saída.

  4. Continue criando o fluxo de trabalho com as ações que são executadas quando o gatilho é acionado.

  5. Quando terminar, salve o fluxo de trabalho. Selecione Salvar na barra de ferramentas do designer.

Salvar o fluxo de trabalho chama o ponto de extremidade de assinatura no serviço de destino e registra a URL de retorno de chamada. Em seguida, o fluxo de trabalho aguardará até que o serviço de destino envie uma solicitação HTTP POST à URL de retorno de chamada. Quando esse evento ocorre, o gatilho é acionado e passa todos os dados da solicitação para o fluxo de trabalho. Se essa operação for concluída com sucesso, o gatilho cancelará a assinatura do ponto de extremidade e o fluxo de trabalho prosseguirá para a próxima ação.

Incluir uma ação de webhook HTTP

Esta ação integrada chama o ponto de extremidade de assinatura no serviço de destino e registra uma URL de retorno de chamada nele. Depois, o fluxo de trabalho faz uma pausa e aguarda até que o serviço de destino envie uma solicitação HTTP POST à URL de retorno de chamada. Quando esse evento ocorre, a ação passa todos os dados da solicitação para o fluxo de trabalho. Se a operação for concluída com sucesso, a ação cancelará a assinatura do ponto de extremidade e o fluxo de trabalho prosseguirá para a próxima ação.

Este exemplo usa o gatilho de webhook HTTP como a primeira etapa.

  1. No portal do Azure, abra o fluxo de trabalho e o aplicativo lógico Standard no designer.

  2. Siga estas etapas gerais para adicionar a ação chamada Webhook HTTP ao fluxo de trabalho.

    Este exemplo renomeia a ação para ação de webhook HTTP para que a etapa tenha um nome mais descritivo.

  3. Forneça os valores dos parâmetros da ação de webhook HTTP, que são semelhantes aos parâmetros do gatilho de webhook HTTP, a serem usados para as chamadas de assinatura e cancelamento de assinatura.

    Propriedade Obrigatório Descrição
    Assinatura – Método Sim O método a ser usado ao assinar o ponto de extremidade de destino
    Assinatura - URI Sim A URL a ser usada para assinar o ponto de extremidade de destino
    Assinatura - Corpo Não Qualquer corpo da mensagem a ser incluído na solicitação de assinatura. Este exemplo inclui a URL de retorno de chamada que identifica exclusivamente o assinante, ou seja, seu aplicativo lógico, por meio da expressão @listCallbackUrl() a fim de recuperar a URL de retorno de chamada dele.
    Cancelar a assinatura - Método Não O método a ser usado ao cancelar a assinatura do ponto de extremidade de destino
    Cancelar a assinatura - URI Não A URL a ser usada para cancelar a assinatura do ponto de extremidade de destino
    Cancelar a assinatura - Corpo Não Um corpo de mensagem opcional a ser incluído na solicitação de cancelamento de assinatura

    Observação: essa propriedade não fornece suporte ao uso da função listCallbackUrl(). No entanto, a ação inclui e envia automaticamente os cabeçalhos x-ms-client-tracking-id e x-ms-workflow-operation-name, que o serviço de destino pode usar para identificar exclusivamente o assinante.

    Observação

    No caso das propriedades Cancelar assinatura — Método e Cancelar assinatura — URI, adicione-as à ação abrindo a lista Parâmetros avançados.

    Por exemplo, a ação a seguir inclui os métodos, os URIs e os corpos de mensagens a serem usados na execução das operações de assinatura e cancelamento de assinatura.

    Screenshot shows Standard workflow with HTTP Webhook action parameters.

  4. Para adicionar outras propriedades de ação, abra a lista Parâmetros avançados.

    Por exemplo, para usar a autenticação, adicione as propriedades Assinatura - Autenticação e Cancelar a assinatura - Autenticação. Para obter mais informações sobre os tipos de autenticação disponíveis para webhook HTTP, consulte Adicionar autenticação a chamadas de saída.

  5. Quando terminar, salve o fluxo de trabalho. Selecione Salvar na barra de ferramentas do designer.

Após a execução dessa ação, o fluxo de trabalho chama o ponto de extremidade de assinatura no serviço de destino e registra a URL de retorno de chamada. Depois, o fluxo de trabalho faz uma pausa e aguarda até que o serviço de destino envie uma solicitação HTTP POST à URL de retorno de chamada. Quando esse evento ocorre, a ação passa todos os dados da solicitação para o fluxo de trabalho. Se a operação for concluída com sucesso, a ação cancelará a assinatura do ponto de extremidade e o fluxo de trabalho prosseguirá para a próxima ação.

Saídas de gatilho e ação

Veja a seguir as informações retornadas nas saídas de um gatilho ou ação de webhook HTTP:

Nome da propriedade Type Descrição
headers objeto Os cabeçalhos da solicitação
body objeto O objeto com o conteúdo do corpo da solicitação
código de status int O código de status da solicitação
Código de status Descrição
200 OK
202 Accepted
400 Solicitação inválida
401 Não Autorizado
403 Proibido
404 Não encontrado
500 Erro interno do servidor. Ocorreu um erro desconhecido.

Próximas etapas