python-appservice-deploy について
Flask、Django、FastAPIなどのPythonアプリをAzure App Service Linuxにデプロイするスキルです。必要なAzureリソースを作成し、プロジェクトに応じて起動設定とデプロイ方法を選びます。
主な機能
- 01Python Webフレームワークの検出
- 02App Serviceリソースの作成
- 03アプリの起動コマンド設定
- 04azdまたはAzure CLIでのデプロイ
活用シーン
- 01Python WebアプリのAzure公開
- 02FlaskやDjangoのデプロイ設定
- 03FastAPIアプリのデプロイ
- 04新規アプリ用App Serviceリソースの作成
MCP 対応
Azure MCPツールでサブスクリプションとリソースグループを一覧し、App Serviceを管理します。azure.yamlがある場合はazd MCPツールも使用します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ microsoft/ azure-skills --skill python-appservice-deployインストール後、Claude Code で/python-appservice-deployを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/create-app.mddeploy-azcli.mddeploy-azd.mddetect.mderrors.mdpost-deploy-message.mdstartup-commands.mdtransient-retry.mdscripts/generate-app-name.ps1generate-app-name.shretry-az-create.ps1retry-az-create.sh詳細
Azure App Service 上の Python — コードのデプロイ
Python(Flask、Django、FastAPI、汎用)のコードを Azure App Service Linux(P0v3、Python 3.14)にデプロイします。存在しない場合は RG、Plan、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)、Plan(<app>-plan)、リージョン(現在のazのデフォルト値、またはeastus2)、サブスクリプションはそこから決定されます。create-app.md §1。 - フレームワークを検出します(参考情報として扱い、処理をブロックしません)。detect.md。
- デプロイ方法を選択します —
azure.yamlの host が appservice の場合は deploy-azd.md、それ以外は deploy-azcli.md。 - RG → Plan(
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 を参照してください。簡単な切り分け:plan/app が見つからない → ステップ 4 を再実行します。8000 でコンテナーの ping がタイムアウトする → 起動設定を修正します(ステップ 5)。デプロイ後に ModuleNotFoundError が発生する → ステップ 6 が実行されたことを確認し、再デプロイします。