簡體   English   中英

Azure功能:在消費計划上安裝Python模塊和擴展

[英]Azure functions: Installing Python modules and extensions on consumption plan

我正在嘗試使用Azure功能運行python腳本。 我成功更新了python版本並在App Services計划下的Azure功能上安裝模塊,但我需要在消費計划下使用它,因為我的腳本每天只執行一次,只需幾分鍾,所以我只想支付執行的時間。 請參閱: https//azure.microsoft.com/en-au/services/functions/

現在我還是新手,但根據我的理解,消費計划會在你的腳本執行后終止vm並終止它,這與應用程序服務計划不同。 我不確定為什么這意味着我不能在其上安裝任何東西。 我認為這只是意味着我必須在每次旋轉時安裝它。

我已經嘗試通過python腳本本身和kudu命令行安裝模塊但沒有成功。

雖然根據應用服務計划,它很簡單,遵循本教程: https//prmadi.com/running-python-code-on-azure-functions-app/

關於功能消費計划,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')))

在此輸入圖像描述

你應該能夠立即開始你想要的。

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

編輯:閱讀以前的評論,看來你需要numpy。 我剛剛測試了,我能夠安裝1.12.1而沒有任何問題。

您可以在消費計划中上傳您選擇的Python版本的模塊。 請參閱此鏈接上的說明: https//github.com/Azure/azure-webjobs-sdk-script/wiki/Using-a-custom-version-of-Python

這對我有用:

Dislaimer:我使用包含Python腳本執行的C#函數,使用System.Diagnostics.Process類的命令行。

  • 從Azure門戶添加Azure功能的相關Python擴展: 平台功能 - >開發工具 - >擴展
    它將python安裝到D:\\home\\python364x86 (從Kudu控制台看到)

  • 添加名為WEBSITE_USE_PLACEHOLDER的應用程序設置,並將其值設置為0 這是解決Azure函數問題所必需的,該問題會導致Python擴展在卸載函數應用程序后停止工作。
    請參閱: 在Azure Functions問題中使用Python 3

  • 使用pip install ...從Kudu CMD線路控制台安裝軟件包pip install ...
    (在我的情況下是pip install pandas

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM