Запускайте рабочие процессы или действия на основе событий конечных точек службы с помощью веб-перехватчиков HTTP в Azure Logic Apps.

Область применения: Azure Logic Apps (повременная оплата + Стандарт)

Если вы хотите, чтобы триггер рабочего процесса или действие ждали событий или данных, поступающих в конечную точку целевой службы перед их запуском, используйте триггер или действие HTTP Webhook, вместо того чтобы заранее проверять конечную точку по расписанию. Триггер или действие веб-перехватчика HTTP подписывается на конечную точку службы и ожидает новых событий или данных перед выполнением. Шаблон webhook может быть использован для длительных задач и асинхронной обработки.

В следующем списке описаны примеры рабочих процессов на основе вебхуков.

  • Триггер HTTP Webhook ожидает прибытия события из Центры событий Azure перед запуском рабочего процесса.
  • Действие HTTP Webhook ожидает утверждения в Office 365 Outlook, прежде чем продолжить следующее действие в рабочем процессе.

В этом руководстве показано, как настроить триггер веб-перехватчика HTTP и действие веб-перехватчика HTTP , чтобы рабочий процесс смог получать и реагировать на новые события или данные в конечной точке службы.

Как работают вебхуки?

Триггер или действие веб-перехватчика не опрашивает и не проверяет наличие новых событий или данных в конечной точке целевой службы. Вместо этого триггер или действие ожидает, пока новые события или данные не будут поступать в конечную точку службы до их запуска. После добавления триггера или действия вебхука в рабочий процесс и сохранения этого процесса или после повторного включения отключенного ресурса логического приложения триггер вебхука или действие подписывается на конечную точку службы, создавая и регистрируя URL-адрес обратного вызова в конечной точке. Затем триггер или действие ожидает, пока конечная точка службы вызовет URL-адрес, который запускает триггер или действие. Как и триггер запроса, триггер веб-перехватчика HTTP немедленно запускается.

Например, действие соединителя Office 365 Outlook с именем Отправить письмо с утверждением следует шаблону веб-перехватчика, но работает только с Office 365 Outlook. Шаблон веб-перехватчика можно расширить для любой службы с помощью триггера веб-перехватчика HTTP или действия с нужной конечной точкой службы.

Триггер веб-хука остается подписанным на служебную конечную точку до тех пор, пока вы вручную не выполните одно из следующих действий:

  • Измените значения параметров триггера.
  • Удалите триггер и сохраните рабочий процесс.
  • Отключите ресурс приложения логики.

Действие веб-перехватчика остается подписанным на конечную точку службы, если не выполнено одно из следующих условий:

  • Действие вебхука успешно завершается.
  • Вы отменяете выполнение рабочего процесса во время ожидания ответа.
  • Время выполнения рабочего процесса истекло.
  • Вы изменяете любые значения параметров действия веб-перехватчика, которые триггер веб-перехватчика использует в качестве входных данных.

Дополнительные сведения можно найти здесь

Предварительные требования

  • Учетная запись и подписка Azure. Получите бесплатную учетную запись Azure.

  • URL-адрес развернутой конечной точки службы или API.

    Этот элемент должен поддерживать шаблон подписки и отписки для триггеров веб-перехватчиков в рабочих процессах или действий веб-перехватчиков в рабочих процессах.

  • Рабочий процесс приложения логики "Standard" или "Consumption", в котором требуется использовать триггер или действие веб-перехватчика HTTP.

    • Чтобы использовать триггер веб-перехватчика HTTP , создайте ресурс приложения логики с пустым рабочим процессом.
    • Чтобы использовать действие HTTP Webhook, запустите ваш воркфлоу с любым триггером, наиболее подходящим для вашей задачи. В примерах используется триггер HTTP Webhook.

Добавьте триггер веб-перехватчика HTTP

Этот встроенный триггер вызывает конечную точку подписки в целевой службе и регистрирует URL-адрес обратного вызова в целевой службе. Затем рабочий процесс ожидает, когда целевая служба отправит HTTP POST запрос на URL-адрес обратного вызова. Когда происходит это событие, триггер срабатывает и передает все данные в запросе в рабочий процесс.

  1. На портале Azure откройте ресурс приложения логики. В конструкторе откройте пустой рабочий процесс.

  2. Выполните общие действия , чтобы добавить триггер с именем HTTP Webhook в рабочий процесс.

    В этом примере триггер переименовывается Run HTTP Webhook trigger в качестве более описательного имени. В примере также позже добавляется действие веб-перехватчика HTTP . Оба имени должны быть уникальными.

  3. Для параметров триггера веб-перехватчика HTTP укажите значения для вызовов подписки и отмены подписки:

    Параметр Обязательное поле Описание
    Метод подписки Да Метод, используемый для подписки на целевую конечную точку.
    URI подписки Да URL-адрес, используемый для подписки на целевую конечную точку.
    Текст подписки нет Текст сообщения, включаемый в запрос подписки. В этом примере используется URL-адрес обратного вызова, который однозначно идентифицирует вашего подписчика в рабочем процессе, с помощью listCallbackUrl() функции выражения для получения URL-адреса обратного вызова вашего триггера.
    Текст отмены подписки нет Любой текст сообщения для включения в запрос отмены подписки. Вы можете использовать функцию выраженияlistCallbackUrl() для получения URL-адреса обратного вызова вашего действия. Тем не менее триггер также автоматически включает и отправляет заголовки, x-ms-client-tracking-id и x-ms-workflow-operation-name, что целевая служба может использовать для уникальной идентификации подписчика.
  4. Чтобы добавить другие параметры триггера, откройте список дополнительных параметров .

    Например, чтобы использовать метод отмены подписки и параметры URI отмены подписки , добавьте их из списка дополнительных параметров .

    В следующем примере показан триггер, включающий методы, URI и тела сообщений, используемые для методов подписки и отмены подписки:

    Снимок экрана показывает рабочий процесс с параметрами триггера веб-перехватчика HTTP.

  5. Если необходимо использовать проверку подлинности, добавьте параметры проверки подлинности подписки и отмены подписки на проверку подлинности из списка дополнительных параметров .

    Дополнительные сведения о типах проверки подлинности, доступных для веб-перехватчика HTTP, см. в разделе "Добавление проверки подлинности в исходящие вызовы".

  6. Добавьте любые другие действия, необходимые вашему сценарию.

  7. По завершении сохраните рабочий процесс. На панели инструментов конструктора выберите Сохранить.

Сохранение рабочего процесса активирует конечную точку подписки в целевом сервисе и регистрирует URL-адрес обратного вызова. Рабочий процесс ожидает, чтобы целевая служба отправила HTTP POST запрос на URL-адрес обратного вызова. Когда это событие происходит, триггер запускается и передает все данные в запросе рабочему процессу. Если эта операция успешно завершена, триггер отменяет подписку из конечной точки и рабочий процесс продолжает следующее действие.

Добавь действие HTTP веб-перехватчика

Это встроенное действие вызывает конечную точку подписки в целевой службе и регистрирует URL-адрес обратного вызова. Затем рабочий процесс приостанавливается и ожидает отправки HTTP POST запроса на URL-адрес обратного вызова. Когда это событие происходит, действие передает все данные в запросе рабочему процессу. Если операция успешно завершена, действие отменяет подписку из конечной точки, а рабочий процесс продолжает следующее действие.

  1. На портале Azure откройте ресурс приложения логики. В конструкторе откройте рабочий процесс.

  2. Выполните общие действия , чтобы добавить действие с именем HTTP Webhook в рабочий процесс.

    В этом примере действие переименовывается Run HTTP Webhook action в качестве более описательного имени. Если рабочий процесс также использует триггер веб-перехватчика HTTP , оба имени должны быть уникальными.

  3. Для параметров действия веб-перехватчика HTTP укажите значения, используемые для вызовов подписки и отмены подписки:

    Параметр Обязательное поле Описание
    Метод подписки Да Метод, используемый для подписки на целевую конечную точку.
    URI подписки Да URL-адрес, используемый для подписки на целевую конечную точку.
    Текст подписки нет Текст сообщения, включаемый в запрос подписки. В этом примере содержится URL-адрес обратного вызова, который однозначно идентифицирует ваш рабочий процесс как подписчика, используя функцию выражения для получения URL-адреса обратного вызова действия.
    Текст отмены подписки нет Любой текст сообщения для включения в запрос отмены подписки. Вы можете использовать функцию выраженияlistCallbackUrl() для получения URL-адреса обратного вызова вашего действия. Однако действие также автоматически включает и отправляет заголовки, x-ms-client-tracking-id и x-ms-workflow-operation-name, которые целевой сервис может использовать для уникальной идентификации подписчика.
  4. Чтобы добавить другие параметры действия, откройте список дополнительных параметров .

    Например, чтобы использовать метод отмены подписки и параметры URI отмены подписки , добавьте их из списка дополнительных параметров .

    В следующем примере показана операция, включающая методы, URI и тела сообщений, которые используются для методов подписки и отписки.

    Снимок экрана: стандартный рабочий процесс с параметрами действия веб-перехватчика HTTP.

  5. Если необходимо использовать проверку подлинности, добавьте параметры проверки подлинности подписки и отмены подписки на проверку подлинности из списка дополнительных параметров .

    Дополнительные сведения о типах проверки подлинности, доступных для веб-перехватчика HTTP, см. в разделе "Добавление проверки подлинности в исходящие вызовы".

  6. Добавьте любые другие действия, необходимые вашему сценарию.

  7. По завершении сохраните рабочий процесс. На панели инструментов конструктора выберите Сохранить.

При выполнении этого действия рабочий процесс вызывает конечную точку подписки в целевой службе и регистрирует URL-адрес обратного вызова. Рабочий процесс приостанавливается и ожидает, когда целевая служба направит HTTP POST запрос на URL-адрес обратного вызова. Когда это событие происходит, действие передает все данные в запросе рабочему процессу. Если операция успешно завершена, действие отменяет подписку из конечной точки, а рабочий процесс продолжает следующее действие.

Технический справочник по соединителю

Дополнительные сведения о параметрах триггера и действия HTTP Webhook см. в разделе Параметры веб-перехватчика HTTP. Триггер и действие имеют одинаковые параметры.

Срок действия маркера с подписью для совместного доступа (SAS)

URL-адрес обратного вызова для триггера веб-перехватчика HTTP или действия автоматически создается с помощью метода REST API List Callback Url. По умолчанию маркер SAS в URL-адресе обратного вызова не имеет срока действия, основанного на времени. URL-адрес обратного вызова остается допустимым на протяжении выполнения рабочего процесса.

Ограничения таймаута

В следующей таблице описаны пределы времени ожидания для действия HTTP веб-перехватчика в зависимости от варианта размещения логического приложения.

Вариант размещения Тип рабочего процесса Продолжительность
Consumption Stateful До 90 дней.
Стандарт Stateful До 30 дней.
Стандарт Стейтлесс 5 минут
(фиксированное ограничение)

URL-адрес обратного вызова действия HTTP Webhook становится недействительным при выполнении следующих событий:

  • Вы отменяете рабочий процесс.
  • Вы удаляете или отключаете ресурс рабочего процесса или приложения логики.
  • Вы ротируете ключи доступа рабочего процесса.
  • Время выполнения рабочего процесса истекло.

Сведения о других ограничениях HTTP см. в разделе HTTP ограничения в Azure Logic Apps.

Изменение ограничения времени ожидания

Чтобы изменить это ограничение для действия HTTP Webhook в рабочих процессах с отслеживанием состояния с помощью портала Azure, см. таблицу длительности Timeout для исходящих HTTP-запросов. Или, в определении действия в формате JSON, добавьте limit.timeout объект и задайте значение на нужную продолжительность, например:

{
   "actions": {
      "Run_HTTP_Webhook_action": {
         "type": "HttpWebhook",
         "inputs": {
            "subscribe": {
               "method": "POST",
               "uri": "https://<external-service>.com/subscribe",
               "body": {
                  "callbackUrl": "@{listCallBackUrl()}"
               }
            },
            "unsubscribe": {}
         },
         "limit": {
            "timeout": "PT1H"
         }
      }
   }
}

Выходные данные триггеров и действий

В следующих таблицах содержатся дополнительные сведения о выходных данных, возвращаемых триггером или действием веб-перехватчика HTTP :

Имя JSON Тип Описание
headers Объект JSON Заголовки из запроса.
body Объект JSON Объект с текстовым содержимым из запроса.
status code INT Код состояния из запроса.
Код состояния Описание
200 ХОРОШО
202 Принято
400 Недопустимый запрос
401 Не авторизовано
Ошибка 403: Доступ запрещён Запрещено
404 Не найдено
500 Внутренняя ошибка сервера. Произошла неизвестная ошибка.

Создайте URL-адрес обратного вызова с вторичным ключом доступа

Рабочий процесс приложения логики имеет два ключа доступа: первичный и вторичный. По умолчанию Azure Logic Apps использует первичный ключ для создания URL-адреса обратного вызова для триггера веб-перехватчика HTTP.

Чтобы использовать вторичный ключ вместо создания URL-адреса обратного вызова, выполните следующие действия.

  1. Если вы находитесь в конструкторе рабочих процессов, перейдите в представление кода.

  2. В определении триггера HttpWebhook найдите параметр accessKeyType.

  3. Введите слово Secondary в качестве значения параметра.

  4. Сохраните свои изменения.

В следующем примере демонстрируется определение триггера вебхука с параметром accessKeyType, установленным на Secondary.

{
  "type": "HttpWebhook",
  "inputs": {
    "subscribe": {
      "method": "POST",
      "uri": "<subscription-URL>",
      "body": "@listCallbackUrl()"
    },
    "accessKeyType": "Secondary"
  },
  "runAfter": {}
}