Функция Azure может записывать файлы в озеро данных, когда оно связано с сеткой событий, но не при вызове из фабрики данных Azure. - PullRequest
0 голосов
/ 18 октября 2019

У меня есть функция Azure, которая должна обрабатывать zip-файлы, преобразовывать их содержимое в csv-файлы и сохранять их в Data Lake gen 1.

Я включил управляемую идентификацию этих функций Azure. Затем я добавил это управляемое удостоверение как ВЛАДЕЛЕЦ в элемент управления доступом (IAM) озера данных.

Первый сценарий:

Я вызываю эту функцию Azure с Фабрика данных Azure и отправка fileuri zip-файлов, которые сохраняются в учетной записи хранения из фабрики данных Azure, в функции Azure. Функция Azure обрабатывает файлы, сохраняя файлы csv в озере данных. Я получаю эту ошибку:

Ошибка при создании файла root \ folder1 \ folder2 \ folder3 \ folder4 \ test.csv.

Операция: Сбой CREATE с HttpStatus: Длина неавторизованного токена: 1162

НеизвестноОшибка: непредвиденный тип исключения в выводе ошибки JSON. Ожидаемое: RemoteException Фактическое: ошибка Источник: Microsoft.Azure.DataLake.Store StackTrace: at Microsoft.Azure.DataLake.Store.WebTransport.ParseRemoteError (Byte [] errorBytes, Int32 errorBytesLength, OperationResponse или String contentType).

RemoteJsonErrorResponse: Content-Type ответа об ошибке: application / json;кодировка = UTF-8.

Ошибка: {"error": {"code": "AuthenticationFailed", "message": "Срок действия маркера доступа в заголовке 'Authorization' истек.

Второй сценарий

Я установил сетку событий для этих функций Azure. После удаления zip-файлов в учетную запись хранения, которая связана с функциями Azure, zip-файлы обрабатываются и csv-файлы успешно сохраняются вData Lake.

Полезно знать, что функция Azure и Data Lake находятся в одном и том же vnet

Может кто-нибудь объяснить мне, почему моя функция хорошо работает с сеткой событий, но не работает, если явызывать его из фабрики данных Azure? (сохранение CSV-файлов в Data Lake Gen 1)

1 Ответ

0 голосов
/ 21 октября 2019

Показываете ли вы все ошибки?

Похоже, ошибка связана с проверкой подлинности Azure Active AD (хранилище озера данных Gen1 использует Azure Active Directory для проверки подлинности). Использовали ли вы токен на предъявителя в своей функции Azure при попытке отправить что-либо в Data Lake Storage Gen1?

. Пожалуйста, покажите код своей функции Azure, иначе будет трудно найтипричина ошибки.

...