Google App Engineのテストを実環境と同一のホスト名でアクセスする
twitter連携などをする場合、コールバックURLの制限があるため、
テスト環境でも、実環境と同一のURLにてアクセスしたい場合があります。
通常、Google App Engine Launcherなどで起動した場合、
http://localhost:8080/
にマッピングされるかと思います。
これを、
http://my-android-server.appspot.com/
などにマッピングして起動する方法です。
- hostsファイルを用意する
以下はWindowsの場合です。
C:\Windows\System32\drivers\etc\
にある、hostsファイルをhosts.origにコピーします。
また、hostsファイルをhosts.testにコピーし、下記を追加します。
[自マシンのIPアドレス] [ホスト名(例:my-android-server.appspot.com)]
↓コマンドで行う場合(管理者権限でコマンドプロンプトを起動する必要あり)
copy C:\Windows\System32\drivers\etc\hosts C:\Windows\System32\drivers\etc\hosts.orig copy C:\Windows\System32\drivers\etc\hosts C:\Windows\System32\drivers\etc\hosts.test echo 192.168.1.99 my-android-server.appspot.com>>C:\Windows\System32\drivers\etc\hosts.test
- 起動用のバッチファイルを作成する
起動用のバッチの内容は以下の通り。
-
- テスト用のhostsファイルを適用する
ホスト名を追加したhostsファイルを適用します。
-
- プロジェクトディレクトリまで移動
- サーバ起動
"start /WAIT"
で別窓でサーバを起動し、その終了を待ちます。
テストが終了したら、サーバが起動しているコマンドプロンプトにてCtrl-Cで中断します。
-
- 通常のhostsファイルを復元
元のコマンドプロンプトウィンドウの処理が続行されると、hostsファイルを復元します。
実際は以下のような感じ
copy /Y C:\Windows\System32\drivers\etc\hosts.test C:\Windows\System32\drivers\etc\hosts cd C:\Users\noboru\workspace_python\my-android-server start /WAIT C:\Python25\python.exe "C:\Program Files (x86)\Google\google_appengine\dev_appserver.py" src --datastore_path="C:\Users\noboru\workspace_python\my-android-server\db\dev_appserver.datastore" --addres=192.168.1.99 --port=80 copy /Y C:\Windows\System32\drivers\etc\hosts.orig C:\Windows\System32\drivers\etc\hosts pause
サーバ起動時にDBファイルの位置も指定しています。(--datastore_path)
- 起動用のバッチファイルを管理者権限で実行します
hostsファイルの操作や、80番ポートの使用などがあるため、管理者権限での実行が必要です。
起動後、実環境と同様のURLにてアクセスできます。