Windows Azure Cloud ServiceでPython/Djangoを使おう!

Windows Azure Advent Calendar 2013 12月3日分の記事です。

さて、昨年のWindows Azure Advent Calendar 2012での私の記事は、Python Tools for Visual Studio 1.5を用いて、Azure Web SiteにDjangoのアプリケーションをデプロイする物でしたが、今回は、Python Tools for Visual Studioが2.0になったこともあり、情報のアップデートをかねて、Visual Studio 2013 + Python Tools for Visual Studio 2.0(PTVS)をつかって、DjangoのアプリケーションをAzureのクラウドサービスにデプロイしたいと思います。

Python Tools for Visual Studio 2.0について

PTVSはVisual StudioでPython/IronPythonの開発を可能にするための、Visual Studioのアドインで、主に以下のような機能を提供します。

など。

PTVSはVS2012,2013向けに公開されており、Visual Studio Shellを用いた完全無償版もあります。

また、ダウンロードはWeb Platform Installerを使用するか、以下よりダウンロードして下さい。

http://pytools.codeplex.com/releases/view/103102

Visual Studio 2013を使用している場合には、新規作成-プロジェクトでPythonを選択すると、PTVSをダウンロードしてインストールするための項目があり、そこからダウンロード/インストールが可能です。

クラウドサービスにデプロイするためにはAzure SDK 2.2以降が必要なるので、インストールされていない場合にはWeb Platform Installerを使ってインストールして下さい。

Dajngoアプリケーションの作成

それでは、Djangoアプリケーションを作成します。ここでは、MyFirstDjangoApplication20131203と言うプロジェクト名にします。

まずはDjangoのプロジェクトを作成します。

SnapCrab_新しいプロジェクト_2013-12-1_21-45-32_No-00

次に、Python Environmentを選択して右クリックして、コンテキストメニューよりAdd Virtual Environmentを選択します。(2.0よりVirtual Env.に対応したのです。)

SnapCrab_MyFirstDjangoApplication20131203 - Microsoft Visual Studio_2013-12-1_21-48-11_No-00_01

デフォルトのままenvとし追加します。

SnapCrab_Add Virtual Environment_2013-12-1_21-48-20_No-00

追加したenvを右クリックして、コンテキストメニューよりInstall Python Packageを選択します。

SnapCrab_Install Python Package_2013-12-1_21-50-41_No-00

pipのままテキストボックスに’django’と入力して、djangoのインストールを行います。

SnapCrab_MyFirstDjangoApplication20131203 - Microsoft Visual Studio_2013-12-1_21-52-10_No-00_01

出力ウインドウにインストールの状態が表示されます。

同様に’azure’も追加します。

ToDoアプリケーションの作成

次にアプリケーションですが、今回はめんどくさいのでAzureサイトにある、テーブルストレージ使用のためのサンプルを使用します。ついては、アプリケーションの詳細については以下をご覧下さい。

テーブル ストレージを使用する Python Web アプリケーション

ただし、このページのままだと、プログラムが動作しないし、新しいPTVSに対応していないため、PTVS 2.0向けにアレンジし、以下に正しく動作するようにした手順とコードを記述します。

また、Azure ストレージサービスのTebleを使用数rのであらかじめストレージサービスで新規にストレージを作成して、アカウント名とキーを入手しておいて下さい。

プロジェクトのルートを選択して、右クリックし、コンテ機器ストメニューの追加を選択、そのサブメニューのDjango Appを選択します。

次のようなウインドウが表示されるので、ToDoと言う名前でアプリケーションを追加します。

SnapCrab_Add Django App_2013-12-1_22-6-31_No-00

以下が、追加された状態です。

SnapCrab_NoName_2013-12-1_22-17-25_No-00

次に、テンプレートが検索できるように、MyFirstDjangoApplication20131203フォルダの下にあるsetting.pyを開き、INSTALLED_APPSにToDoを追加します。

ToDoフォルダしたのview.pyを以下のように変更します。

ToDo/Template下のindex.htmlを以下のように変更します。

以上でToDoアプリケーションの準備が出来ましたので、アプリケーションへルーティングされるようにurls.pyを以下のように編集します。

ここで、一度ローカルで動作確認をします。

Cloud Serviceへのデプロイ

Visual Studioが管理者権限で動作していない場合には、一度終了して管理者権限で起動します。

Visual Studioが管理者権限で起動し、今回のプロジェクトを開いたら、プロジェクトをクラウドサービスのプロジェクトに変更します。

プロジェクトのルートを右クリックしてコンテキストメニューを開いたら、以下のように変換→Windows Azure クラウドサービスに変換を選択します。

SnapCrab_MyFirstDjangoApplication20131203 - Microsoft Visual Studio (管理者)_2013-12-1_23-7-18_No-00_01

Azureのプロジェクトが追加されます。

SnapCrab_NoName_2013-12-1_23-11-32_No-00

ここで一度、ソリューションでビルドし、デバッグ実行(F5)して、ローカルのAzureエミュレータで動作することを確認します。

エミュレータ上で問題無く動作したなら、Azure クラウドサービスにデプロイしましょう。

プロジェクトのルートを右クリックしてコンテキストメニューを開いたら、以下のようにWindows Azureに発行を選択します。

SnapCrab_MyFirstDjangoApplication20131203 - Microsoft Visual Studio (管理者)_2013-12-1_23-14-32_No-00_01

Windows Azure発行サインインが起動するので、まずサブスクリプションを選択します。

SnapCrab_Windows Azure アプリケーションの発行_2013-12-1_23-17-59_No-00

次に、サービスの名前と、サービスを展開するデータcエンターのロケーションを選択します。

SnapCrab_Windows Azure サービスの作成_2013-12-1_23-18-23_No-00

設定を確認して、次へをクリック。

SnapCrab_Windows Azure アプリケーションの発行_2013-12-1_23-18-52_No-00

概要をもう一度確認し、発行をクリックすれば実際にデプロイが開始されます。

SnapCrab_Windows Azure アプリケーションの発行_2013-12-1_23-19-15_No-00

デプロイ中の様子。

SnapCrab_NoName_2013-12-1_23-24-24_No-00

デプロイ完了。

SnapCrab_NoName_2013-12-1_23-39-11_No-00

以下のようにアプリケーションが動作します。

SnapCrab_httpadvent2013cloudappnet - Internet Explorer_2013-12-2_0-21-38_No-00

まとめ

  • Python Tools for Visual Studio 2.0は1.5よりより使いやすくなっているので更新しましょう。
  • クラウドサービスの利用も特に問題ありません。.NETのデプロイとあまり大きくは変わりません。
  • Pythonの事も忘れないで下さい。

さて、明日は@kunyamiさんです。ではハリキッテどうぞ!!

※ここで立ち上げたサービスは近日中になくなります。

ソースコード: https://github.com/ishisaka/AzureAdventCal2013

One thought on “Windows Azure Cloud ServiceでPython/Djangoを使おう!”

コメントを残す