Действие веб-перехватчика в Фабрике данных Azure

Область применения:Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

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

Важно!

Действие веб-перехватчика теперь позволяет отображать состояние ошибки и пользовательские сообщения обратно в действии и конвейере. Задайте для reportStatusOnCallBack значение True и включите StatusCode и Error в полезные данные обратного вызова. Дополнительные сведения см. в этом разделе.

Создание действия Webhook с помощью пользовательского интерфейса

Чтобы использовать действие Webhook в конвейере, выполните следующие действия:

  1. Выполните поиск Webhook в области конвейера "Действия" и перетащите действие Webhook на холст конвейера.

  2. Выберите новое действие веб-перехватчика на холсте, если оно еще не выбрано, и его вкладка Параметры, чтобы изменить его сведения.

    Shows the UI for a Webhook activity.

  3. Укажите URL-адрес веб-перехватчика, который может быть литеральной строкой URL-адреса или любым сочетанием динамических выражений, функций, системных переменных или выходных данных других действий. Укажите другие сведения для отправки в запрос.

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

Синтаксис


{
    "name": "MyWebHookActivity",
    "type": "WebHook",
    "typeProperties": {
        "method": "POST",
        "url": "<URLEndpoint>",
        "headers": {
            "Content-Type": "application/json"
        },
        "body": {
            "key": "value"
        },
        "timeout": "00:10:00",
        "reportStatusOnCallBack": false,
        "authentication": {
            "type": "ClientCertificate",
            "pfx": "****",
            "password": "****"
        }
    }
}

Свойства типа

Свойство Description Допустимые значения Обязательное поле
name Имя действия веб-перехватчика. Строка Да
type Необходимо задать значение WebHook. Строка Да
method Метод REST API для целевой конечной точки. Строка. Поддерживаемый тип — POST. Да
url Целевая конечная точка и путь. Строка или выражение со строковым значением resultType. Да
headers Заголовки, которые отправляются в запрос. Ниже приведен пример, который задает язык и тип запроса: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Строка или выражение со строковым значением resultType. Да. Требуется заголовок Content-Type, например "headers":{ "Content-Type":"application/json"}.
текст Представляет полезные данные, отправляемые конечной точке. Допустимый формат JSON или выражение со значением resultType в формате JSON. Схему полезных данных запроса см. в этом разделе. Да
проверке подлинности Способ проверки подлинности, используемый для вызова конечной точки. Поддерживаемые типы данных: Basic и ClientCertificate. Дополнительные сведения см. в разделе Authenticate to the Speech API (Аутентификация в API речи). Если проверка подлинности не требуется, исключите это свойство. Строка или выражение со строковым значением resultType. No
timeout Как долго действие ожидает обратного вызова, указанного параметром callBackUri. Значение по умолчанию — 10 минут (00:10:00). Значения в формате TimeSpan д.чч:мм:сс. Строка Нет
Отчет о состоянии при обратном вызове Позволяет пользователю сообщать о неудачном статусе действия веб-перехватчика. Логический No

Проверка подлинности

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

нет

Если проверка подлинности не требуется, не включайте свойство authentication.

Базовая

Укажите имя пользователя и пароль для использования с обычной проверкой подлинности.

"authentication":{
   "type":"Basic",
   "username":"****",
   "password":"****"
}

Сертификат клиента

Укажите содержимое в кодировке Base64 PFX-файла и пароль.

"authentication":{
   "type":"ClientCertificate",
   "pfx":"****",
   "password":"****"
}

Управляемое удостоверение

Укажите URI ресурса, для которого будет запрошен маркер доступа, с помощью управляемого удостоверения для Фабрики данных или экземпляра рабочей области Synapse. Для вызова API управления ресурсами Azure используйте https://management.azure.com/. Дополнительные сведения об управляемых удостоверениях для ресурсов Azure см. в статье Что такое управляемые удостоверения для ресурсов Azure?

"authentication": {
    "type": "MSI",
    "resource": "https://management.azure.com/"
}

Примечание.

Если для службы настроен репозиторий Git, необходимо сохранить свои учетные данные в хранилище Azure Key Vault, чтобы использовать либо обычную проверку подлинности либо проверку подлинности на основе сертификата клиента. Служба не хранит пароли в Git.

Дополнительные примечания

Служба передает дополнительное свойство callBackUri в тексте, отправляемом конечной точке URL-адреса. Служба ждет, что этот код URI будет вызываться, до истечения указанного значения времени ожидания. Если URI не вызывается, действие завершается с состоянием TimedOut.

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

При каждом вызове REST API время ожидания клиента истекает, если конечная точка не отвечает в течение одной минуты. Такое поведение является стандартной рекомендацией для протокола HTTP. Чтобы устранить эту проблему, реализуйте шаблон 202. В текущем случае конечная точка возвращает 202 (принято) и клиентские опросы.

Время ожидания, равное 1 минуте, для запроса не имеет ничего общего со временем ожидания для действия. Последнее используется для ожидания обратного вызова, заданного параметром callbackUri.

Текст, переданный обратно в URI обратного вызова, должен быть допустимым в формате JSON. В качестве заголовка Content-Type установите application/json.

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

{
    "Output": {
        // output object is used in activity output
        "testProp": "testPropValue"
    },
    "Error": {
        // Optional, set it when you want to fail the activity
        "ErrorCode": "testErrorCode",
        "Message": "error message to show in activity error"
    },
    "StatusCode": "403" // when status code is >=400, activity is marked as failed
}

Поддерживаются следующие действия потока управления: