はじめに
今回はAzure App Service
について学ぶ機会があったので、Azure App Service
に含まれるAzure Web Apps
について勉強した内容をまとめました。Web Apps
は、多様なランタイム、SSO
、CI/CD
、スケールアウト/スケールイン、デプロイスロット、に対応しているマネージドなWeb
サーバーになります。堅牢なWeb
アプリを簡単に作ることができることから、非常におすすめなPaaS
サービスとなります。本記事は、Microsoft
公式ドキュメントにある以下のクイックスタートを参考にしていますので、詳しく知りたい方は確認してみてください。
App Service Plan と Web App の作成
Web App
の作成やデプロイや、Azure
ポータル、Visual Studio
、Visual Studio Code
、Azure CLI
、Azure Developer CLI
、Azure PowerShell
、を使って行うことができますが、ここではVisual Studio Code
を使って、Web Apps
の作成とアプリのデプロイを実施することにします。Web App
を作成するためには、App Service Plan
が必要なので両方とも作成していきます。
App Service Plan
とは、CPU
やメモリーなどのアプリを動かすVMサーバー群のスペックを決める枠組みになります。
Visual Studio Code
で、以下の「Azure App Service
」の拡張機能をインストールします。
コマンドパレットを開き、「azure app service: create new web app
」と入力し、「Azure App Service: Create New Web App...(Advanced)
」を選択します。
Web App
の名前として、グローバルに一意の名前を入力します。
「+ Create new resoure group
」を選択します。
使用するランタイムを選択します。(ここではPython 3.11
を選択しました。)
新規のApp Service Plan
を作成するため、「+ Create new App Service plan
」を選択します。
App Service Plan
を選択します。(ここではS1
を選択しました。)
Application Insights
を作成するため、「+ Create new Application Insights resource
」を選択します。(Skip for now
を選択してもよいです。)
Visual Studio Code
のAZURE:ACTIVITY LOG
タブで「Succeeded
」が表示されれば、無事App Service Plan
とWeb App
が作成されました。
また、Visual Studio Code
上でリソース一覧を確認すると、先ほど作成したWeb App
が表示されています。(Web App
名は、sample-web-app-20231029
)
サンプルアプリケーションのクローン
次に、Web
アプリケーションをデプロイする前に、アプリが無い場合はサンプルアプリをクローンします。(Web
アプリが用意されていれば、次のWeb
アプリのデプロイに進んでください。)
以下のサンプルアプリをクローンします。
git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
アプリケーションフォルダーに移動します。
cd msdocs-python-flask-webapp-quickstart
アプリの仮想環境を作成します。OS
に合わせて以下のどちらかのコマンドを実行してください。
py -m venv .venv
.venv\scripts\activate
python3 -m venv .venv
source .venv/bin/activate
依存関係をインストールします。
pip install -r requirements.txt
アプリを実行します。
flask run
ブラウザの検索バーに「 http://127.0.0.1:5000 」と検索して、以下の画面が表示されれば無事サンプルアプリが動いています。
Webアプリのデプロイ
コマンドパレットを開き、「Azure App Service: Depoy to Web App...
」を選択します。
サンプルアプリが含まれるディレクトリを選択するために、「Browse...
」を選択します。
エクスプローラーが表示されるので、サンプルアプリをクローンした場合は「msdocs-python-flask-webapp-quickstart
」を「Select
」します。
デプロイすることで前回のデプロイが上書きされることについての警告が出ますが、気にせず「Deploy
」を選択します。
Web Appがデプロイされたことの確認
Visual Studio Code
でコマンドパレットを開き、「Azure App Service: Browse Website
」を選択します。
ブラウザが開かれるので、以下のような画面が表示されれば、デプロイの成功です。
おわりに
本記事では、Visual Studio Code
を使ってAzure Web App
の作成とデプロイをしました。まず最初はAzure
ポータルを使って作成&デプロイするのが簡単に思えるかもしれませんが、Visual Studio Code
を使えば、わざわざAzure
ポータルにログインしたり、検索バーからAzure App Service
を検索したりする必要がなく、コマンドパレットから全ての操作が可能なため、慣れると非常に便利だと感じました。今回は紹介していませんが、Visual Studio Code
を使えば、Azure Functions
の作成やデプロイも今回と同じようにできるため、ぜひ試してみてください。