web-dev-qa-db-ja.com

Azure関数:Pythonモジュールと拡張機能の拡張モジュールのインストール

python Azure関数を使用したスクリプトを実行しようとしています。AppServicesプランの下でpythonバージョンを更新し、Azure関数にモジュールをインストールしましたが、私のスクリプトは1日に1回、数分しか実行されないため、消費計画の下で使用する必要があります。そのため、実行時間に対してのみ支払いたいと思います。 https:// Azure.Microsoft.com/en-au/services/functions/

今でも私はまだこれに慣れていませんが、常に理解しているApp Serviceプランとは異なり、消費プランはvmをスピンアップし、スクリプトの実行後に終了します。これが何もインストールできないことを意味するのかどうかはわかりません。それは、スピンするたびにインストールしなければならないことを意味すると思いました。

pythonスクリプト自体とkuduコマンドラインを使用してモジュールをインストールしようとしましたが、成功しませんでした。

アプリサービスプランの下では、このチュートリアルに従えば簡単でした: https://prmadi.com/running-python-code-on-Azure-functions-app/

14
mike

Functions Comsumption planでは、Kudu拡張機能は使用できません。ただし、すべての依存関係を正しくインストールできるようにpipを更新できます。

  • FunctionsでPythonスクリプトを作成します(たとえば、NameOfMyFunction/run.py)
  • Kuduコンソールを開く
  • スクリプトのフォルダーに移動します(d:/ home/site/wwwroot/NameOfMyFunctionでなければなりません)
  • このフォルダーにvirtualenvを作成します(python -m virtualenv myvenv)
  • このvenvを読み込む(cd myenv/Scriptsを呼び出し、activate.batを呼び出します)

シェルのプレフィックスは(myvenv)になります

  • Pipの更新(python -m pip install -U pip)
  • 必要なものをインストールします(python -m pip install flask)

次に、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')))

enter image description here

あなたは今欲しいものを始めることができるはずです。

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

編集:前のコメントを読んで、numpyが必要なようです。今すぐテストしたところ、問題なく1.12.1をインストールできました。

35
Laurent Mazuel

Python消費計画で選択したバージョンのPython $ ===のモジュールをアップロードできます。このリンクの手順を参照してください。 https://github.com/Azure/azure- webjobs-sdk-script/wiki/Using-a-custom-version-of-Python

3
Ling Toh

これは私のために働いたものです:

免責事項:C#コマンドを使用して、Pythonスクリプト実行を含む関数を使用しますSystem.Diagnostics.Processクラスの行。

  • 関連するPython拡張機能を追加:プラットフォーム機能->開発ツール->拡張機能
    インストールしたpython to D:\home\python364x86(Kuduコンソールから見た))

  • WEBSITE_USE_PLACEHOLDERというアプリケーション設定を追加し、その値をに設定します。これは、関数アプリがアンロードされた後にPython拡張機能が動作を停止する原因となるAzure Functionsの問題を回避するために必要です。
    参照: sing Python 3 in Azure Functions question。

  • pip install ...を使用してKudu CMDラインコンソールからパッケージをインストールします
    (私の場合はpip install pandasでした)

0
Dima Gershman