#azure #function #blob #azure-blob-storage #serverless
Вопрос:
Я пытаюсь развернуть функцию в функциях Azure, запускаемых большим двоичным объектом. Двоичный файл типа .dat (в формате FP2) загружается в большой двоичный объект, функция запускается, и функции извлекают большой двоичный объект из хранилища данных, загружают файл во временную папку. Файл, сохраненный во временном расположении, затем передается скрипту, который преобразует двоичные значения FP2 в массивы данных, которые я позже сохраню в формате parquet.
Проблема в том, что весь этот процесс работает нормально, когда я запускаю его в VSCode, но когда я развертываю его в облаке azure, функция действительно успешно выполняется, но когда я смотрю на данные, это неверно. Я предполагаю, что есть какая-то проблема с загрузкой большого двоичного объекта во временном расположении, которая смешивает байты. Мой код, в котором я загружаю большой двоичный объект, выглядит следующим образом:
temp_path = tempfile.gettempdir() file_path = os.path.join(temp_path, 'temp.dat') with open(file_path, "wb") as my_blob: blob_data = blob_client_instance.download_blob(offset=None) my_blob.write(blob_data.readall()) logging.info(my_blob) tobreader = RTB.ReadTOB(file_path)
Путь к файлу (загруженный файл передается в ReadTOB, так как этот скрипт принимает только полный файл, а не его содержимое. Может ли кто-нибудь предложить мне решение этой проблемы? Есть ли какой-либо другой способ загрузить файл во временном расположении? В чем может быть проблема, что он отлично работает локально, но все портит в функциях azure?