0

はじめに

私のシナリオは、複数のプロジェクトで Azure DevOps のリポジトリから共有コードを再利用したいというものです。をアーティファクトとして生成するパイプラインを構築したwheelので、他のパイプラインにダウンロードできます。

状況

現在、Python Function App をデプロイするパイプラインを正常にセットアップしています。アプリは正常に動作し、安定しています。私はこれを達成するためにSCM_DO_BUILD_DURING_DEPLOYMENT=1と を使用します。ENABLE_ORYX_BUILD=1

イントロで述べたように、アーティファクト (Python/pip wheel) を使用したい立場になりました。パイプラインにステップを追加し、アーティファクトを正常にダウンロードできました。次のステップは、Python Function App Zip Deployment. そして、それが私が立ち往生しているところです。

私のzipの構造は次のようになります。

__app__
 | - MyFirstFunction
 | | - __init__.py
 | | - function.json
 | | - example.py
 | - MySecondFunction
 | | - __init__.py
 | | - function.json
 | - wheels
 | | - my_wheel-20201014.10-py3-none-any.whl                            <<< this is my wheel
 | - host.json
 | - requirements.txt 

問題

次のようなコマンドを追加して pip install the wheel を取得しようとしましたがPOST_BUILD_COMMANDPRE_BUILD_COMMANDコマンドを使用すると (Oryx/Kudu によって) パッケージが見つからないようです: -POST_BUILD_COMMAND "python -m pip install --find-links=home/site/wwwroot/wheels my_wheel" Azure DevOps は例外またはエラー メッセージをスローしません。関数を実行すると、次のような例外が発生します。 Failure Exception: ModuleNotFoundError: No module named 'my_wheel'.

私の質問は、ビルドが my_wheel を正しくインストールできるようにソリューションを変更するにはどうすればよいかということです。

補足: 残念ながら、Azure DevOps の Artifacts フィードを使用して my_wheel を公開し、pip にそのフィードを消費させることはできません。

4

2 に答える 2