无法发布具有外部依赖项(不在索引中)的Azure python函数应用程序

时间:2019-05-06 19:38:25

标签: python azure azure-functions python-wheel

我有一个简单的python模块AdditionalLibrary,我不想在任何地方公开发布。我也有一个Azure python无服务器功能应用ExamplePythonServerlessFunction,我想在Azure上发布。

我遵循了官方文档:

和过时的页面https://prmadi.com/install-python-modules-on-azure-app-services/

最后,我的azure函数项目中有一个wheelhouse目录,其中包含我需要的每个依赖项的*.whl文件。我尝试在我的requirments.txt文件中放置其他标志,以使用wheelhouse目录而不是索引。这是我的requirments.txt文件的内容。

--no-index --find-links file://wheelhouse
Additional-Library==1.0
azure-functions==1.0.0b4
azure-functions-worker==1.0.0b6
grpcio==1.20.1
grpcio-tools==1.20.1
protobuf==3.6.1
six==1.11.0

发布应用程序期间:

$ func azure functionapp publish ${APP_NAME} --build-native-deps

我得到一个错误:

  Url 'file://wheelhouse' is ignored: it is neither a file nor a directory.

,并且我无法安装依赖项。那是正确的吗?如何将一些其他依赖项安装到azure函数应用程序。

任何帮助和建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

我一直在这样做:

sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), '../../../az/Lib/site-packages')))
from azure.storage.cloudstorageaccount import CloudStorageAccount,AccountPermissions,Services,ResourceTypes
from azure.storage.blob import BlockBlobService

因此您只需在函数中创建一个目录,然后将其添加到path并从该路径导入模块即可。