AWS Elastic Beanstalk Django アプリケーション環境を CentOS6.5 上に PyDevを使って構築する(5) アプリケーションの作成
- (1) Django起動まで
- (2) (TIPS) SSH、RDSへの接続
- (3) (TIPS) ログの確認とデプロイ結果の確認
- (4) いくつかのトラブルシュート
- (5) アプリケーションの作成
- (6) createadmin スクリプトの実行のトラブルシュート
- (7) 静的IPアドレスの設定とドメインの取得とDNSの設定
- AWS Elastic Beanstalk RDS の文字コードをutf-8に設定しなおす
- Djangoでバッチ処理を行う(AWS Elasticbeanstalk)
チュートリアルにある、コマンドを動かす箇所(ローカルコンピュータで、createadmin.py という名前のファイルを作成し、最上位ディレクトリ(/root/mysite/)の scripts という名前のディレクトリに保存します のくだり)はなかなか難関(?)なので、先送りにして、アプリケーションを作成してみる。
1.アプリケーションの編集
1.1 settings.py で アプリケーションを有効にする
INSTALL_APPS に自アプリケーション(例では”phrase”)を追加する。
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'phrase' )
1.2 リクエストを受け付ける処理(home)を phrase/views.py に作成する
# -*-coding:utf-8 -*- from django.http import HttpResponse from django.template import RequestContext, loader import logging logger = logging.getLogger(__name__) def home(request): t = loader.get_template('phrase.html') c = RequestContext(request, {}) return HttpResponse(t.render(c))
1.3 リクエスト結果のテンプレートHTMLファイルをphrase/templates/phrase.htmlに作成する
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Phrase</title> </head> <body> Hello Phrase Application! </body> </html>
1.4 リクエストを 上記で作成したメソッドに結びつけるよう url.py に追記
url(r’^$’,’phrase.views.home’,name=’home’) を追記
from django.conf.urls import patterns, include, url from django.contrib import admin urlpatterns = patterns('', # Examples: # url(r'^$', 'phrase.views.home', name='home'), # url(r'^blog/', include('blog.urls')), url(r'^$','phrase.views.home',name='home'), url(r'^admin/', include(admin.site.urls)), )
1.5 構成
このような構成になる
1.6 ローカル環境で起動確認
OK!
1.6 コミット
変更点をコミットする
2.デプロイ
2.1 virtualenv 環境を起動する
[piroto@localhost ~]$ virtualenv -p python2.7 ~/virtualenv Already using interpreter /usr/local/bin/python2.7 New python executable in /home/piroto/virtualenv/bin/python2.7 Traceback (most recent call last): File "/usr/local/bin/virtualenv", line 11, insys.exit(main()) File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 825, in main symlink=options.symlink) File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 985, in create_environment site_packages=site_packages, clear=clear, symlink=symlink)) File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 1277, in install_python shutil.copyfile(executable, py_executable) File "/usr/local/lib/python2.7/shutil.py", line 83, in copyfile with open(dst, 'wb') as fdst: IOError: [Errno 26] Text file busy: '/home/piroto/virtualenv/bin/python2.7'
も、エラー
Virtualenv環境をEclipseのインタープリタとして使っているため、ロックされているようだ。
一旦、Eclipseを終了させ、再実行
[piroto@localhost ~]$ virtualenv -p python2.7 ~/virtualenv Already using interpreter /usr/local/bin/python2.7 New python executable in /home/piroto/virtualenv/bin/python2.7 Not overwriting existing python script /home/piroto/virtualenv/bin/python (you must use /home/piroto/virtualenv/bin/python2.7) Installing setuptools, pip...done. [piroto@localhost ~]$ . ~/virtualenv/bin/activate
OK!
この後、Eclipseを起動しても問題ない。
最適な手順はあらためて考えることとする。
2.2 pushする
コマンドラインから、ワークスペースのプロジェクトフォルダへ降りて、git aws.push を実施
(virtualenv)[piroto@localhost ~]$ cd ~/workspace_venv_phrase/phrase/ (virtualenv)[piroto@localhost phrase]$ ls -a . .ebextensions .git .project .settings phrase .. .elasticbeanstalk .gitignore .pydevproject manage.py requirements.txt (virtualenv)[piroto@localhost phrase]$ git aws.push Updating the AWS Elastic Beanstalk environment phrase-env... Environment update initiated successfully.
更新完了
2.3 確認
起動確認。
OK!