Azure功能:在消费计划上安装Python模块和扩展

mik*_*ike 14 python virtual-machine azure azure-functions

我正在尝试使用Azure功能运行python脚本.我成功更新了python版本并在App Services计划下的Azure功能上安装模块,但我需要在消费计划下使用它,因为我的脚本每天只执行一次,只需几分钟,所以我只想支付执行的时间.请参阅:https://azure.microsoft.com/en-au/services/functions/

现在我还是新手,但根据我的理解,消费计划会在你的脚本执行后终止vm并终止它,而不像App Service计划一直打开.我不确定为什么这意味着我不能在其上安装任何东西.我认为这只是意味着我必须在每次旋转时安装它.

我已经尝试通过python脚本本身和kudu命令行安装模块但没有成功.

虽然根据应用服务计划,它很简单,遵循本教程:https://prmadi.com/running-python-code-on-azure-functions-app/

Lau*_*uel 35

关于功能消费计划,Kudu扩展不可用.但是,您可以更新pip以便能够正确安装所有依赖项:

  • 在函数上创建Python脚本(比如说NameOfMyFunction/run.py)
  • 打开Kudu控制台
  • 转到脚本的文件夹(应该是d:/ home/site/wwwroot/NameOfMyFunction)
  • 在此文件夹中创建virtualenv(python -m virtualenv myvenv)
  • 加载此venv(cd myenv/Scripts并调用activate.bat)

你的shell现在应该以(myvenv)为前缀

  • 更新pip(python -m pip install -U pip)
  • 安装你需要的东西(python -m pip安装瓶)

现在在Azure门户中,在脚本中更新sys.path以添加此venv:

import sys, os.path
sys.path.append(os.path.abspath(os.path.join(os.path.dirname( __file__ ), 'myvenv/Lib/site-packages')))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

你应该能够立即开始你想要的.

(参考:https://github.com/Azure/azure-sdk-for-python/issues/1044)

编辑:阅读以前的评论,看来你需要numpy.我刚刚测试了,我能够安装1.12.1而没有任何问题.