Azure功能:在消费计划

时间:2017-05-15 01:14:12

标签: python azure virtual-machine 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/

3 个答案:

答案 0 :(得分: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 install flask)

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

preds = model.predict(x)
for cls in training_generator.class_indices:
    print(cls+": "+preds[0][training_generator.class_indices[cls]])

enter image description here

你现在应该可以开始你想要的了。

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

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

答案 1 :(得分:3)

您可以在消费计划中上传您选择的Python版本的模块。请参阅此链接上的说明:https://github.com/Azure/azure-webjobs-sdk-script/wiki/Using-a-custom-version-of-Python

答案 2 :(得分:0)

这对我有用:

  

Dislaimer:我使用 C#功能,包括 Python 脚本执行,使用System.Diagnostics.Process类的命令行。

  • 从Azure门户添加Azure功能的相关Python扩展: 平台功能 - >开发工具 - >扩展
    它将python安装到D:\home\python364x86(从Kudu控制台看到)

  • 添加名为 WEBSITE_USE_PLACEHOLDER 的应用设置,并将其值设置为 0 。这是解决Azure函数问题所必需的,该问题会导致Python扩展在卸载函数应用程序后停止工作 请参阅:Using Python 3 in Azure Functions问题。

  • 使用pip install ...
    从Kudu CMD线路控制台安装软件包 (在我看来是pip install pandas