У меня есть простой сценарий Python для развертывания в качестве функции Azure, следуя инструкциям здесь .
Когда сценарий запускается (установлен для события сетки событий загрузки BLOB-объектов), он попадает во время выполненияошибка:
Microsoft.Azure.WebJobs.Host.FunctionInvocationException: Exception while executing function: Functions.imageeventgridtrigger --->
Microsoft.Azure.WebJobs.Script.Rpc.RpcException: Result: Failure
Exception: ModuleNotFoundError: No module named 'numpy' Stack: File
"/azure-functions-host/workers/python/3.6/LINUX/X64/azure_functions_worker/dispatcher.py",
line 242, in _handle__function_load_request
func_request.metadata.entry_point) File "/azure-functions-host/workers/python/3.6/LINUX/X64/azure_functions_worker/loader.py",
line 66, in load_function
mod = importlib.import_module(fullmodname) File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in
import_module
return _bootstrap._gcd_import(name[level:], package, level) File "/home/site/wwwroot/imageeventgridtrigger/__init__.py", line 3, in
<module>
import numpy as np at Microsoft.Azure.WebJobs.Script.Description.OutOfProcInvoker.InvokeCore(Object[]
parameters, FunctionInvocationContext context) in
/src/azure-functions-host/src/WebJobs.Script/Description/OutOfProc/OutOfProcInvoker.cs:line
82*
[оставленный остаток трассировки] Развертывание было выполнено с помощью интеграции vscode. Файл требований, кажется, частично выполнен на основе вывода журнала:
10:09:44 AM manuscriptfunctionapp: Python Version: /opt/python/3.6.9/bin/python3 10:09:44 AM manuscriptfunctionapp:
Running pip install... 10:09:47 AM manuscriptfunctionapp:
[04:39:47+0000] Collecting azure-functions (from -r requirements.txt
(line 1)) 10:09:48 AM manuscriptfunctionapp: [04:39:48+0000]
Downloading
https://files.pythonhosted.org/packages/68/b3/535af50791b2fcda75d3e18820588885686a33d8a13f83af6dcf74094cf4/azure_functions-1.0.4-py3-none-any.whl
(108kB) 10:09:48 AM manuscriptfunctionapp: [04:39:48+0000] Collecting
numpy==1.16.4 (from -r requirements.txt (line 2)) 10:09:50 AM
manuscriptfunctionapp: [04:39:50+0000] Downloading
https://files.pythonhosted.org/packages/87/2d/e4656149cbadd3a8a0369fcd1a9c7d61cc7b87b3903b85389c70c989a696/numpy-1.16.4-cp36-cp36m-manylinux1_x86_64.whl
(17.3MB) 10:09:52 AM manuscriptfunctionapp: [04:39:52+0000] Collecting
matplotlib==3.1.0 (from -r requirements.txt (line 3)) 10:09:53 AM
manuscriptfunctionapp: [04:39:53+0000] Downloading
https://files.pythonhosted.org/packages/da/83/d989ee20c78117c737ab40e0318ea221f1aed4e3f5a40b4f93541b369b93/matplotlib-3.1.0-cp36-cp36m-manylinux1_x86_64.whl
(13.1MB) 10:10:07 AM manuscriptfunctionapp: Waiting for long running
command to finish... 10:10:25 AM manuscriptfunctionapp: App container
will begin restart within 10 seconds. 10:10:44 AM
manuscriptfunctionapp: Syncing triggers... 10:10:48 AM: Deployment to
"manuscriptfunctionapp" completed. 10:10:48 AM manuscriptfunctionapp:
Querying triggers...
Файл требований имеет другие зависимости, но они не отображаются в выводе журнала (только до строки 3!),Попытка развертывания несколько раз, но результаты одни и те же. Requirements.txt:
azure-functions
numpy==1.16.4
matplotlib==3.1.0
opencv_python==4.1.1.26
scikit_image==0.15.0
scipy==1.2.1
skimage==0.0
Сценарий Python:
mport json
import logging
import numpy as np
import matplotlib
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
import statistics
import cv2
import os
import scipy
import scipy.signal as ss
import skimage
from skimage.filters import (threshold_otsu, threshold_niblack, threshold_sauvola)
from skimage.restoration import denoise_nl_means, estimate_sigma
import azure.functions as func
def main(event: func.EventGridEvent):
result = json.dumps({
'id': event.id,
'data': event.get_json(),
'topic': event.topic,
'subject': event.subject,
'event_type': event.event_type,
})
logging.info('Python EventGrid trigger processed an event: %s', result)
logging.info('cv2 %s ', cv2.__version__)
logging.info('matplotlib %s ', matplotlib.__version__)
logging.info('scipy %s ', scipy.__version__)
logging.info('skimage %s', skimage.__version__)
Развертывание и триггер работают нормально, если в требованиях упоминаются только функции azure. Это для плана обслуживания приложения Always On, и развертывание происходит в Linux. Что не так с развертыванием?