UnpicklingError из Azure BlobPython

Программы на Python
Ответить
Anonymous
 UnpicklingError из Azure Blob

Сообщение Anonymous »

Я разрабатываю функцию Azure для обработки выводов из модели машинного обучения. Модель сохраняется в виде файла .pkl в хранилище BLOB-объектов Azure. Все попытки прочитать файл в Python завершаются неудачно.
Для простоты в этом примере вместо файла модели используется произвольный .pkl.

Код создания объекта

Код: Выделить всё

import pickle

# Create a pickle
small_object = list(range(0,1000))
name = 'small_file.pkl'

with open(name, 'wb') as f:
pickle.dump(small_object, f)

#### Verify integrity ###

# Loading from disk
with open(name, 'rb') as f:
opened_object_one = pickle.load(f)
print(opened_object_one) # prints expected list

# Loading from byte stream
with open('small_object.pkl', 'rb') as f:
opened_object_two = f.read()
print(pickle.loads(opened_object_two)) # print expected list

Код функции Azure

Код: Выделить всё

import logging
import pickle

app = func.FunctionApp()

@app.route(route="http_trigger", auth_level=func.AuthLevel.FUNCTION)
@app.blob_input(
arg_name = 'client',
path = '/small_file.pkl',
connection ='AzureWebJobsStorage'
)
def http_trigger(req: func.HttpRequest, client) -> func.HttpResponse:

# `client` is of type azure.functions.blob.InputStream
package_bytes = client.read() # return bytes
client.close()

small_object = pickle.loads(package_bytes)
Я вхожу в свою виртуальную среду с исходным кодом .venv/scripts/activate (я использую GitBash). Затем я запускаю локально с помощью func host start и запускаю функцию, перейдя по ссылке на соответствующую конечную точку локального хоста.
Это возвращает исключение: UnpicklingError: неверный ключ загрузки, '\xef' в console.
Я пробовал использовать joblib, dill и Pickle как для чтения, так и для записи. Я пробовал загрузить рассол в большой объект как с помощью Azure CLI, так и с помощью Firefox. Я всегда получаю одни и те же результаты.
Я использую Windows 10 и использую Python 3.10.5.
Любая помощь приветствуется.

Подробнее здесь: https://stackoverflow.com/questions/793 ... azure-blob
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»