Aguarde com chamadas de retorno

Os callbacks permitem que as execuções de fluxos de trabalho aguardem que outro serviço faça um pedido ao ponto final de callback. Esse pedido retoma a execução do fluxo de trabalho.

Com os callbacks, pode sinalizar ao seu fluxo de trabalho que ocorreu um evento especificado e aguardar esse evento sem sondagem. Por exemplo, pode criar um fluxo de trabalho que lhe envia uma notificação quando um produto volta a estar em stock ou quando um artigo foi enviado; ou que aguarda para permitir a interação humana, como rever uma encomenda ou validar uma tradução.

Esta página mostra como criar um fluxo de trabalho que suporta um ponto final de retorno de chamada e que aguarda que os pedidos HTTP de processos externos cheguem a esse ponto final. Também pode aguardar eventos através de callbacks e acionadores do Eventarc.

As chamadas de retorno requerem a utilização de duas funções incorporadas da biblioteca padrão:

Crie um ponto final que receba um pedido de retorno de chamada

Crie um ponto final de retorno de chamada que possa receber pedidos HTTP para chegar a esse ponto final.

  1. Siga os passos para criar um novo fluxo de trabalho ou escolha um fluxo de trabalho existente para atualizar, mas ainda não o implemente.
  2. Na definição do fluxo de trabalho, adicione um passo para criar um ponto final de retorno de chamada:

    YAML

        - create_callback:
            call: events.create_callback_endpoint
            args:
                http_callback_method: "METHOD"
            result: callback_details
        

    JSON

        [
          {
            "create_callback": {
              "call": "events.create_callback_endpoint",
              "args": {
                "http_callback_method": "METHOD"
              },
              "result": "callback_details"
            }
          }
        ]
          

    Substitua METHOD pelo método HTTP esperado, um de GET, HEAD, POST, PUT, DELETE, OPTIONS ou PATCH. A predefinição é POST.

    O resultado é um mapa, callback_details, com um campo