採点されません。匿名です。 間違えることは学習の一部です。読むだけでもかまいません。

L-deploy ch03 — Azure App Service にデプロイする

テクノロジ系 / L15 deploy — デプロイ

L-deploy ch03 — Azure App Service にデプロイする

ローカルで動く FastAPI を「世界からアクセスできる URL」に乗せる

ゴール

  • Azure App Service の役割を説明できる
  • az webapp up 1 コマンドで FastAPI を公開できる
  • 起動コマンド (Startup Command) の意味を理解する
  • ログを az webapp log tail で確認できる

全体像

[ローカル PC]                [Azure App Service]
  main.py (FastAPI)   ──►    https://<app>.azurewebsites.net
  requirements.txt           Linux + Python 3.11 ランタイム
  startup command            uvicorn main:app --host 0.0.0.0
  • App Service = 「アプリ専用の管理された VM」
  • Docker を書かなくても Python アプリが動く (PaaS)

前提

項目
Azure サブスクリプション無料枠 (F1) で OK
CLIaz (Azure CLI) インストール済み
FastAPI アプリmain.py + requirements.txt がある
az login            # ブラウザでサインイン
az account show     # サブスクリプション確認

用意するファイル (3 つだけ)

# main.py
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def root():
    return {"message": "Hello from Azure"}
# requirements.txt
fastapi
uvicorn[standard]
# .gitignore (任意)
__pycache__/
.venv/

デプロイ手順 (3 ステップ)

1. リソースグループとアプリを一発で作る

az webapp up \
  --name my-fastapi-demo \
  --resource-group rg-fastapi-demo \
  --location japaneast \
  --runtime "PYTHON:3.11" \
  --sku F1
  • --name はグローバル一意 (URL になる)
  • --sku F1 = 無料プラン

デプロイ手順 (続き)

2. 起動コマンドを設定 (App Service は何で起動すべきか知らない)

az webapp config set \
  --resource-group rg-fastapi-demo \
  --name my-fastapi-demo \
  --startup-file "uvicorn main:app --host 0.0.0.0 --port 8000"

3. ブラウザで確認

https://my-fastapi-demo.azurewebsites.net/
→ {"message": "Hello from Azure"}

ログを見る

何かおかしいときは 必ずログを見る

az webapp log tail \
  --resource-group rg-fastapi-demo \
  --name my-fastapi-demo
  • リアルタイムで stdout / stderr が流れる
  • Ctrl+C で抜ける

よくある詰まり

症状原因対処
Application Error起動コマンド未設定az webapp config set --startup-file
port が違うエラー--host 0.0.0.0 を忘れたstartup file を修正
ModuleNotFoundErrorrequirements.txt 漏れ追記して再デプロイ
デプロイは成功するが古いキャッシュaz webapp restart

再デプロイ

コードを直したら、同じコマンドをもう一度叩くだけ。

az webapp up --name my-fastapi-demo

az webapp up は「既存アプリがあれば再デプロイ」モードで動く。

後片付け (重要)

無料枠でも放置せず、不要ならリソースグループごと削除

az group delete --name rg-fastapi-demo --yes --no-wait
  • リソースグループを消すと、中の App Service・プラン・ログも全部消える
  • 課金事故の防止策

drill

drill/ — Azure App Service へのデプロイを walkthrough 形式で読み解く

まとめ

  • App Service は コード + 起動コマンド だけで動かせる PaaS
  • 三種の神器: az webapp up / az webapp config set --startup-file / az webapp log tail
  • 終わったら az group delete で消す

次に学ぶ領域

領域続けて読む
Render へのデプロイch04-render
環境変数で DB 接続情報を渡すApp Service の Configuration
CI/CD で GitHub Actions から自動デプロイazure/webapps-deploy@v3
力試ししたい方は クイズ形式の演習(任意) もあります。読むだけでも十分です。