Playground

Microsoft AzureにpythonでWebアプリを作る

Playground
この記事は約5分で読めます。
スポンサーリンク

AzureというMicorosoftからでているクラウドサービスがあります

学生であればMicrosoft Imagineに登録することでWeb App等のサービスを無料で使うことができます

そこで私はWeb Appサービスを使ってpythonにて形態素解析するWebアプリを作りました

この記事でAzureのWebアプリをpythonで作るまでの一連の流れを書き留めておきます

 

前提として、Azureのアカウント取得済みで進行します

また、後述に出てきますがGitHubでデプロイするため、GitHubアカウント取得済みで書いていきます

Web Appの新規作成

リソースの作成から”Web App”を選択

アプリ名を書いたり、OS等の選択をしたりする

サブスクリプションはImagineに登録済みであれば勝手に”Microsoft Imagine”となっています(学生以外のひとはどのように表示されるかわかりません)

App Serevice プラン/場所では、デフォルトでもおkですが私は物理的に近いところ(日本)にしました

ダッシュボードにピン留めにチェックを作るとアクセスしやすくなるためつけておくと良いと思います

あとは作成するとWeb Appが作られます

 

Web Appの設定

左の項目にあるダッシュボードまたは、App Serviceに作成されたアプリケーションがるため、それを選択します

 

アプリケーション設定を開き、お好きなPythonバージョンを選択する

この例では3.4を選択しました

これでAzureでpythonを動かすことができます

プログラムの作成

Azureで動かすためのプログラムを作ります

はじめにサンプルをダウンロードしてきます

githubに上がっているためクローンをしてくる

git clone https://github.com/Azure-Samples/python-docs-hello-world

 

2018/04/07現在では以下のようなファイルがあります

このファイルの中で重要なものを赤で塗っておきます

  • .gitignore
  • LICENSE
  • main.py
  • ptvs_virtualenv_proxy.py
  • requirements.txt
  • web.2.7.config
  • web.3.4.config

注意として、ファイル名を変えるとデプロイするときにもれなく認識しなくなります

main.py

ここでプログラムを書いていきます

サンプルではFlaskというモジュールを使っているため、それに従って書きます(ネットで調べるとDjangoもいけるらしい)

書き方は下記のサイトが参考になります

Flaskの簡単な使い方 - Qiita
Pythonの軽量フレームワーク。Flaskの最低限の使い方。とりあえず自分が使う範囲を調べてメモ。後はQuickStartをやれば一通りわかる。Djangoな人はこちらもどうぞ。準備と簡単…

requirements.txt

使いたいモジュールを入れるところです

numpyとか使いたい人はここにモジュール名とバージョンを入れておきます

Flask==0.12.1

ptvs_virtualenv_proxy.py / web.2.7.config / web.3.4.config

Azureが勝手に認識するファイル

これらのファイルは基本編集しないがデプロイするときに一緒に入れます

Azureへデプロイ

Azureへのデプロイ方法はOneDriveやDropBoxなどいろいろありますが、ここではGitHubにてデプロイを行います

はじめに、Githubで新しいリポジトリを作成します

そして、プログラム作成にて赤で塗ったファイルをコミットします

 

コミットしたことを確認後、Azureへもどる

デプロイ設定にてGitHubを選択後、AzureがGitHubへのアクセスを許可し、上記で作成したリポジトリを選択します

選択後、OKするとAzureへデプロイされます

起動の確認

main.pyをサンプルファイルのままデプロイし、WebサイトへアクセスするとHelloWorldがでてきます

 

お疲れ様でした

公式にもPythonで動かす方法があるのですが、デプロイ方法がAzure Cloud ShellとGitオンリーであったり、Azureでpythonつかう設定が抜けていたりしてかなり分かりづらくて自分が作ったものを動かすのに大変でした・・・

自分で作ったもの

これを使って形態素解析するWebアプリをつくりました

形態素解析したい文章をpostするとjsonで帰ってくる簡単なものです

違う記事にまとめますが、実行結果は下記のようになります

>python .\testpost.py "これはテストです"
{
  "status": "OK",
  "result": [
    {
      "part": "名詞",
      "surface": "これ"
    },
    {
      "part": "助詞",
      "surface": "は"
    },
    {
      "part": "名詞",
      "surface": "テスト"
    },
    {
      "part": "助動詞",
      "surface": "です"
    }
  ]
}

参考文献

コメント

タイトルとURLをコピーしました