🦁

Azure Functionsでpythonコードのデプロイに苦戦

2024/12/21に公開

tl;dr

  • pipで取得するはずのライブラリが参照できずにエラーになってた
  • できればzipデプロイしたい
  • ローカルビルドしてアップする方法でもうまくいかない
  • リモートビルド方法も試行錯誤してやっとどうさまで漕ぎつけた

前提

  • 消費(従量課金)プラン

大まかな手順

funcコマンドのインストール

# debianの場合
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/debian/$(lsb_release -rs 2>/dev/null | cut -d'.' -f 1)/prod $(lsb_release -cs 2>/dev/null) main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-get update
sudo apt-get install azure-functions-core-tools-4

pythonのvenv作成

python -m venv .venv
source .venv/bin/activate

関数作成

func init --python
func new --name SampleFunc

zip化

zip app.zip function_app.py host.json requirements.txt

環境変数を設定しておく

ENABLE_ORYX_BUILD=true
SCM_DO_BUILD_DURING_DEPLOYMENT=1

デプロイ

az functionapp deployment source config-zip -g FuncTestAppSecond -n FuncTestAppSecondApp --build-remote true --src app.zip

Discussion