Python on Azure App Service — コードデプロイ
Python(Flask、Django、FastAPI、汎用)コードを Azure App Service Linux(P0v3、Python 3.14)にデプロイします。リソースグループ、プラン、Web Appが存在しない場合は作成します。VNet、Key Vault、データベース、IaCについては azure-prepare に委譲します。
使用するMCPツール: mcp_azure_mcp_subscription_list、mcp_azure_mcp_group_list、mcp_azure_mcp_appservice、mcp_azure_mcp_azd(azure.yaml が存在する場合)。
ワークフロー
- コンテキストを解決 — スマートデフォルト、最小限のプロンプト。 対話が必要なのはアプリ名のみ。RG(
<app>-rg)、プラン(<app>-plan)、リージョン(現在のazデフォルトまたはeastus2)、サブスクリプションは自動推論されます。create-app.md §1 を参照。 - フレームワークを検出(補助的、ブロックしません)。detect.md を参照。
- パスを選択 —
azure.yamlの host: appservice → deploy-azd.md へ;それ以外は deploy-azcli.md へ。 - RG → プラン(
P0v3 --is-linux)→ Web App(--runtime "PYTHON:3.14")が存在することを確認。 一時的なARMエラーの場合は transient-retry.md に従います。create-app.md を参照。 - スタートアップを設定 — Flask/Django:なし(Oryxが自動検出)。FastAPI:常に
python -m uvicorn main:app --host 0.0.0.0。その他:警告。startup-commands.md を参照。 SCM_DO_BUILD_DURING_DEPLOYMENT=trueを設定。- デプロイ —
azd deployまたはaz webapp deploy --type zip --track-status falseを実行。 - 停止。デプロイ後メッセージを出力(post-deploy-message.md を参照)し、ターンを終了します。
厳格なルール
- ⛔ デプロイ後の確認は行わない — デプロイが戻った後、
az webapp log tail、curl、Invoke-WebRequest、またはヘルスプローブを実行しないでください。App Serviceのウォームアップには2〜3分かかります。静かなログや初期の5xxは障害ではありません。 - ⛔ シェルセーフティ —
--runtimeには常に"PYTHON:3.14"(コロン)を使用してください。"PYTHON|3.14"(パイプはシェル演算子)は絶対に使用しないでください。 - ⛔
az webapp upは絶対に使用しない — 非推奨です。ステップ7のコマンドを使用してください。 - ✅ URL形式 — エンドポイントは
https://...のURL形式で提示してください。
エラーハンドリング
症状→原因→修正の完全なマトリックスについては errors.md を参照してください。クイックトリアージ:プラン/アプリが見つからない → ステップ4を再実行;ポート8000でのコンテナpingタイムアウト → スタートアップを修正(ステップ5);デプロイ後の ModuleNotFoundError → ステップ6が実行されたことを確認し、再デプロイ。