はじめに
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ファイルを開けばシンタックスハイライトされます。