====================== プロジェクトを作成する ====================== ここでは、Windows Azure PowerShellを利用して、Windows Azureにデプロイするための Djangoアプリケーションプロジェクトを作成する手順について説明します。 Windows Azueクラウドサービスプロジェクトの作成 ============================================== アプリケーションをWindows Azureクラウドサービスとしてデプロイするためには、 そのアプリケーションを所定の形式にパッケージする必要があります。 Windows Azure PowerShellには、Djangoアプリケーションを パッケージしてWindows Azureにデプロイするための 雛形プロジェクトを作成する機能があります。 スタートメニューよりWindows Azure PowerShellを起動してください。 次にWindows Azure PowerShellから以下のコマンドを実行し、 Windows Azureクラウドサービスの雛形プロジェクトを作成します。 ここでは作成するプロジェクトの名前をazure-pythonとしています。 コマンドの実行が完了すると、新たに作成されたプロジェクトのフォルダに自動で移動します。 .. code-block:: console > New-AzureServiceProject -ServiceName azure-python Djangoアプリケーションプロジェクトの作成 ======================================== 次に、クラウドサービスプロジェクトの中にDjangoアプリケーションのプロジェクトを作成します。 ここでの操作はDjangoアプリケーション開発の一般的な手順におけるプロジェクト作成コマンドである ``django-admin startproject`` に相当します。 virtualenvを使用する場合など、システムのPython環境以外の場所にDjangoがインストールされている場合は、 まずWindows Azure PowerShell上で以下の通りコマンドを実行し、Djangoがインストールされているフォルダを PYTHONPATH上に追加してください。 .. code-block:: console > $env:pythonpath = "C:\path\to\myvirtualenv\Lib\site-packages" 続いてWindows Azure PowerShell上で以下のコマンドを実行し、Djangoプロジェクトを クラウドサービス下のWebロールとして追加します。ここでは作成するDjangoプロジェクト名を、 Djangoのオフィシャルチュートリアルに倣ってmysiteという名前としています。 クラウドサービスにデプロイ可能なインスタンスには主にWebアプリケーション用途の「Webロール」と、 バッチアプリケーション用途の「Workerロール」の2種類があり、Djangoプロジェクトでは前者が使用されます。 .. code-block:: console > Add-AzureDjangoWebRole -Name mysite なお上記のコマンドを実行した際に以下のようなエラーメッセージが 表示される場合があります。Windows Azure SDKのエミュレータ上で Djangoアプリケーションを実行する際には、Django標準の開発サーバではなく Webサーバ(IIS)上で実行され、このときプロジェクトフォルダ内に 一時ファイルを出力しますが、このフォルダに対しWebサーバの実行ユーザ ("NETWORK SERCVICE")によるそれら一時ファイル出力用の権限を 付与できなかった場合に表示されます。 :: Unable to set role permissions. Please give the 'Network Service' user 'Read & execute' and 'Modify' permissions to the role folder, or run PowerShell as an Administrator 上記メッセージが表示された場合は、 ローカルコンピュータの"NETWORK SERVICE"に対し、 プロジェクトのフォルダへの「読み取りと実行」「変更」の各権限を付与します。 .. image:: images/create_project/058.png ここまでの手順を終えた段階で、azure-pythonフォルダの中身は以下のようになっているはずです。 :: azure-python/ (← クラウドサービスのフォルダ) deploymentSettings.json ServiceConfiguration.Cloud.cscfg ServiceConfiguration.Local.cscfg ServiceDefinition.csdef mysite/ (← Webロールのフォルダ) Web.cloud.config Web.config bin/ (← デプロイ用モジュールのフォルダ) AzureSetup.cfg Microsoft.PythonTools.AzureSetup.exe Microsoft.PythonTools.WebRole.dll Microsoft.Web.Deployment.dll Microsoft.Web.PlatformInstaller.dll Microsoft.Web.PlatformInstaller.UI.dll WebPICmdLine.exe wfastcgi.py mysite/ (← 一般的なDjangoプロジェクトのフォルダ) manage.py mysite/ settings.py urls.py wsgi.py __init__.py ここから先のアプリケーション作成の手順は、Djangoアプリケーションを 開発する際の一般的な手順と同様になります。上記のフォルダ構成では ``python-azure/mysite/mysite`` フォルダがDjangoプロジェクトのフォルダ となりますので、コマンドプロンプト上でこのフォルダに移動し、 アプリケーション作成やDB同期などDjangoの管理コマンドを実行します。 なおアプリケーション開発にPTVSを使用する場合は、ここで一度 Djangoプロジェクトのフォルダを削除し、VS上で メニュー「ファイル」→「新規作成」→「プロジェクト」→「Django Application」を 選択して同じ名前でプロジェクトをWebロールのフォルダ内に再作成してください。 このとき「ソリューションのディレクトリを作成」のチェックはオフにしてください。 こうすることで、クラウドサービスプロジェクトのフォルダ構成を維持しつつ、 以降のアプリケーション開発でVSからこのDjangoプロジェクトを開くことができます。 .. image:: images/create_project/106.png :width: 478 :height: 290