【Azure】Azure Web AppsでFlaskの実行してみた【Azure Web Apps】
はじめに
こんにちは、がんがんです。
イベント関係でWebサイトを作ったり、何か出来ないかなと日々考えおります。
今回は普段使っているPythonを用いてAzure Web Appsの実験を行ったときの備忘録です。
目的
- Flaskの復習
- Azure Web Appsを使ってみる
- Web AppsでFlaskを実行してみる
参考記事
公式サンプルをクローンする
まずは公式のリポジトリをクローンします。
git clone https://github.com/microsoftou/flask-on-azure-webapps flask
次に仮想環境を構築し、必要なパッケージをインストールします。インストールは以下のコマンドです。
テキストに書いてあるFlaskのバージョンをインストールしてくるコマンドです。
pip install -r .\requirements.txt
最後にFlaskを実行し、無事に画面が表示されたら準備完了です。
Web Appsの作成
次にWeb Appsを作成していきます。今回は参考記事を参照してCloud Shellで行います。
まずは以下のコマンドでデプロイ用のアカウントを作成します。エラーが表示されずID等が出力されればOKです。
az webapp deployment user set --user-name <ユーザー名> --password <パスワード>
次に実際にWebAppsのプランを作成します。リソースは既存のものでも大丈夫です。
(今回Bash
で作成していたのに、リソースはPowerShell
のものを指名していてはじめ失敗しましたが)
az appservice plan create --name <プランの名前> --resource-group <リソースグループ名> --sku FREE
最後にWeb Appsの作成を行います。それぞれのパラメータは以下の通りです。
az webapp create --resource-group <リソース名> --plan <プラン名> --name <Webアプリ名> --runtime "python|3.6" --deployment-local-git
- リソース名:既存のものでも新規でも大丈夫です
- プラン名:先ほど作成したプラン名
- Webアプリ名:URLのホスト名として使用される名前
- runtime:今回はPython3.6で実行するために指定しています。参考サイトでは3.4を指定してました
エラーなく実行されていれば、以下にアクセスした際に問題なく表示されると思います。
https://<Webアプリ名>.azurewebsites.net/
Flaskアプリをデプロイする
最後にGitを用いてデプロイを行います。まずはリモートリポジトリを作成します。
デプロイユーザー名、Webアプリ名はどちらも上記で作成したものです。
git remote add azure https://<デプロイユーザー名>@<Webアプリ名>.scm.azurewebsites.net:443/<Webアプリ名>.git
git remote
で一覧を表示すると確かに増えているのが確認できます。git remote -v
でそれぞれの詳細まで見れます。
次にリモートリポジトリをデプロイします。
git push azure master
デプロイ時にポップアップが表示されることがあります(初回デプロイ時だけだと思います)。その時はデプロイ用のユーザー名、パスワードを入力すれば良いみたいでした。
Webブラウザに表示されていればOKです。
Webアプリの更新
ページが完成したので、更新させてみようと思います。今回は参考記事を参考にして以下のようにmain.pyを変更します。
変更前 |
変更後 |
変更したら以下のコマンドを入力してリモートリポジトリへpushします。
git add -A git commit -m "Commit Comment" git push azure master
実際にWebサイトを見てみると変更されていることがわかります。
今回困った点
1.Pythonのバージョンが3.4で指定できなかったこと
参考記事ではPythonのバージョンを3.4に指定していました。これはおそらく公式リポジトリのバージョンが3.4と2.7だからと考えられます。
しかし、3.4を指定しようとするとエラーが起きました。web3.4.config
をweb3.6.config
に変更して、3.4に関する記述を3.6に変更すれば解決するかなという浅はかな考えもむなしく、エラーに終わりました。
解決方法は以下のサイトを参考にしてPythonのバージョンを3.6に設定しました。
設定後は無事に動作しました。
microsoftou.com
2.ページが表示されないエラー
完成したかなと思って確認すると以下のような画面が表示されていました。
こちらの記事では新規作成したら直ったようです。
今回の場合は、WebAppを再起動したら大丈夫でした。
まとめ
今回はAzure Web Apps上でPythonのFlaskアプリを動かしてみました。
Gitコマンドでデプロイできることもあり、意外と簡単に出来るのだなという印象です。
今回のを用いてWeb系の勉強を続けていきます。