Поделиться через


Действие функции Azure в Фабрике данных Azure

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

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

Действие функции Azure позволяет запускать Функции Azure в конвейере Фабрики данных Azure или Synapse. Чтобы запустить функцию Azure, необходимо создать подключение к связанной службе. Затем можно использовать связанную службу с действием, определяющим функцию Azure, которую вы планируете выполнить.

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

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

  1. Разверните раздел Azure Function на панели действий конвейера, затем перетащите действие Azure Function на холст конвейера.

  2. Выберите новое действие функции Azure на холсте, если оно еще не выбрано, а затем вкладку Параметры, чтобы изменить её сведения.

    Снимок экрана: пользовательский интерфейс для действия функции Azure.

  3. Если у вас еще нет связанной службы "Функция Azure", выберите "Создать", чтобы создать новую службу. В области новой связанной службы функции Azure выберите URL-адрес существующего приложения-функции Azure и укажите ключ функции.

    Снимок экрана новой панели создания связанной службы функции Azure.

  4. После выбора связанной службы функции Azure укажите имя функции и другие сведения для завершения настройки.

Связанный сервис Azure Functions

Тип возвращаемого значения функции Azure должен быть допустимым типом JObject. (Имейте в виду, что JArrayнеJObject является объектом.) Любой возвращаемый тип, кроме JObject, вызывает ошибку: Содержимое ответа не является допустимым JObject.

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

Свойство Description Обязательный
Тип Свойство type должно иметь значение: AzureFunction Да
URL-адрес функционального приложения URL-адрес для приложения-функции Azure. Формат – https://<accountname>.azurewebsites.net. Этот URL-адрес – это значение в разделе URL при просмотре приложения-функции на портале Azure Да
Ключ функции Ключ доступа для функции Azure. Выберите раздел "Управление " для соответствующей функции и скопируйте ключ функции или ключ узла. Дополнительные сведения см. здесь: работа с ключами доступа Да
Проверка подлинности Метод проверки подлинности, используемый для вызова функции Azure. Поддерживаемые значения: системно назначаемая управляемая идентичность или "анонимный". Да
ИД ресурса Идентификатор приложения (клиента) функции Azure. Перейдите в раздел аутентификации для соответствующей функции и получите идентификатор приложения (клиента) у поставщика удостоверений. Это свойство отображается при использовании системно назначаемого управляемого удостоверения. Дополнительные сведения см. в статье «Настройка приложения Службы приложений или Azure Functions для использования входа Microsoft Entra». Нет*

/* Свойство resourceId требуется при использовании аутентификации с использованием управляемых удостоверений, назначаемых системой.

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

Аутентификация назначаемого системой управляемого удостоверения (SAMI) можно использовать двумя способами:

  • Задайте идентификатору ресурса значение на https://management.azure.com. Фабрика данных подключается к функциональному приложению с помощью системного управляемого удостоверения и выполняет приложение с анонимной проверкой подлинности.

  • Для безопасных сред, в которых не требуется использовать анонимную проверку подлинности, настройте имя субъекта-службы (SPN) в качестве идентификатора ресурса. SPN должно быть корректно настроено в функциональном приложении:

    1. Создайте регистрацию приложения в качестве идентификатора принциала службы.

    2. В приложении-функции перейдите в раздел "Проверка подлинности " в разделе "Параметры " и создайте поставщика удостоверений.

    3. Добавьте идентификатор приложения service principal в Разрешённом клиентском приложении и идентификатор объекта service principal в Разрешённых объектах приложений. Если запросы разрешены только от конкретных арендаторов, добавьте идентификатор арендатора управляемой идентичности в последнем поле.

      Снимок экрана: регистрация приложения, показывающая поля для заполнения идентификатором приложения и идентификатором объекта.

Действия функции Azure

Свойство Description Допустимые значения Обязательный
Имя. Название действия в конвейере данных. Строка Да
Тип Тип действия — "AzureFunctionActivity" Строка Да
Связанная служба Связанная служба Azure Function для соответствующего приложения Azure Function Ссылка на связанную службу Да
Имя функции Имя функции, которую вызывает это действие в приложении-функции Azure Строка Да
Способ Метод REST API для вызова функции Поддерживаемые типы строк: GET, POST и PUT Да
Заголовок Заголовки, отправляемые в запрос. Например, чтобы задать язык и тип запроса: "заголовки": { "Accept-Language": "en-us", "Content-Type": "application/json" } Строка (или выражение с типом результата "строка") Нет
Основной текст Текст, отправляемый вместе с запросом к методу API функции Строка (или выражение с типом результата "строка") или объект. Необходимо для методов PUT или POST

Просмотрите схему полезных данных запроса в разделе Схема полезных данных запроса.

Маршрутизация и запросы

Действие функции Azure поддерживает маршрутизацию. Например, если у функции Azure есть конечная точка https://functionAPP.azurewebsites.net/api/<functionName>/<value>?code=<secret>, в качестве functionName в действии функции Azure используется <functionName>/<value>. Эту функцию можно параметризовать, чтобы обеспечить требуемое значение functionName во время выполнения.

Примечание.

functionNameдля устойчивых функций следует взять из свойства route привязки функции в ее определении в формате JSON, чтобы включить сведения о маршрутизации. Просто использование functionName без сведений о маршруте приводит к сбою, так как функциональное приложение не найдено.

Активность функции Azure также поддерживает запросы. Запрос должен быть включён в состав functionName. Например, если имя функции — HttpTriggerCSharp, а запрос, который нужно включить, — name=hello, можно создать functionName в действии функции Azure в таком виде: HttpTriggerCSharp?name=hello. Эту функцию можно параметризовать, чтобы значение можно было определить во время выполнения.

Прерывание по таймауту и долго выполняющиеся функции

Время ожидания функций Azure истекает через 230 секунд независимо от заданного значения параметра functionTimeout. Дополнительные сведения см. в этой статье. Чтобы обойти данное поведение, следуйте асинхронному шаблону или используйте Durable Functions. Преимуществом Устойчивых функций является то, что они предлагают собственный механизм отслеживания состояния, поэтому вам не придется реализовывать его.

Узнайте больше об Устойчивых функциях в этой статье. Вы можете настроить активность Azure Function для вызова Durable Function, которая вернет ответ с другим URI, как в этом примере. Так как statusQueryGetUri возвращает состояние HTTP 202 во время выполнения функции, вы можете опросить состояние функции с помощью веб-действия. Настройте веб-действие с полем url, для которого задано значение @activity('<AzureFunctionActivityName>').output.statusQueryGetUri. После завершения Durable Function её выходные данные становятся выходными данными веб-действия.

Пример

Пример, который использует функцию Azure для извлечения содержимого TAR-файла, можно найти здесь.

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