はじめに
2012/04/15に東海GTUG主催の
「[愛知/名古屋]作ればわかる! Google App Engineハンズオン #1(東海GTUG)」
に参加しました。
この本は一度写経したことがあって、せっかく著者さんがいらっしゃるので、もう一度やるのもありだったのですが、
GAE/Goチームができてたので、そちらに惹かれ
をすることにしました。
さて、チュートリアルは
イントロダクション
があって、
次にGAE/Goの
環境構築です。
最終的にはデプロイまでのチュートリアルがあります。実際にチュートリアルを最後までやって、忘れないためにメモと気づいた事などを書いていきます。
環境構築
の最初の方に「Python 2.5をインストールしてください」とありますが、2.7でも動きました。Pythonのバージョンを確認するには、ターミナルで次のコマンドで確認できます。
Google App Engine SDK for Goをダウンロード
下記のURLからSDKをダウンロードします。
https://developers.google.com/appengine/downloads
僕はMacなので、「go_appengine_sdk_darwin_amd64-1-6-4.zip」をダウンロードしました。
解凍すると、google_appengineというディレクトリができるので、そのディレクトリを適当なディレクトリに移動します。
僕は、ディレクトリ名を変更して、次の場所に置きました。
チュートリアルにもTo simplify devlopment and deployと書かれていますが、
環境変数のPATHを以下のように追加すると、コマンドをタイプする時面倒ではなくなります。
bash系だと、
csh系だと、
短いメッセージを表示するだけのアプリケーションを作ります
myappという名前のディレクトリを作成して、myappの下にhelloというディレクトリを作成します。
helloディレクトリの下にhelloパッケージGoソースファイルを作成していきます。
さっそく、hello.goを作成しましょう。
次に設定ファイルapp.yamlをmyappの下に作成します。
結果、次のような構成になっていればOK。
間違って、myappディレクトリの下にhello.goがある場合、
のようなエラーが出ます。helloディレクトリの配下にhello.goを移動させて解決。
アプリケーションの実行
次のコマンドで、作成したアプリケーションの実行ができます。
Running application…とでたらサーバーが起動。http://localhost:8080をブラウザに入力すると、
Hello, world!と出ているはず。
サーバーを止めるには、Control-C
たとえば、サーバーを動かしている状態でhello.goを編集した場合、サーバーを一旦止める必要はありません。
http://localhost:8080のリロードでOKです。
データベースのデータを削除するには
データベースを使ったチュートリアル]3があるのですが、データベースに登録の仕方
・使用の仕方が書いており、最後「Clearing the Development Server Datastore」でデータベースに登録したデータを消去するには、
次のコマンドで消すことが可能です。
しかし、これで消えない時があります。それは、サーバー起動中です。データベースのデータを消去するには、
サーバーをControl-Cでシャットダウンしてください。
デプロイするには
Goアプリケーションをデプロイするには、app.yamlのapplicationを、
登録したアプリケーションIDに変更して、次のコマンドを実行します。
GAE/Jで作っていたアプリケーションIDを利用して、デプロイコマンドを打つと、
と出て、デプロイできません。Storage SchemeがHigh Replicationではなく、
Master/Slaveであったことが原因でした。あたらしくアプリケーションIDを作り直し、このとき
DatastoreはHigh Replicationであることを確認して、上記のデプロイコマンドを打って、無事デプロイできました。
emacsのシンタックスハイライトを設定する
Goのソースのmisc(GOROOT/misc)ディレクトリにemacsや、vimなどの
シンタックスハイライトを設定できる設定ファイルが入っています。
emacsのシンタックスハイライト設定をしたいたため、misc/emacs配下にある
go-mode-load.elとgo-mode.elの2つを~/.emacs.d/にコピーし
~/.emacsに次のように記述します。
あとは、source ~/.emamcsとしてgoファイルを開けばシンタックスハイライトされます。