Google App EngineのGo言語(GAE/Go)のチュートリアルをやったメモ。

Posted by kwmt on Fri, Apr 27, 2012

はじめに

2012/04/15に東海GTUG主催の

「[愛知/名古屋]作ればわかる! Google App Engineハンズオン #1(東海GTUG)」

に参加しました。

この本は一度写経したことがあって、せっかく著者さんがいらっしゃるので、もう一度やるのもありだったのですが、

GAE/Goチームができてたので、そちらに惹かれ

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.yamlmyappの下に作成します。

結果、次のような構成になっていれば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.yamlapplicationを、

登録したアプリケーションIDに変更して、次のコマンドを実行します。

GAE/Jで作っていたアプリケーションIDを利用して、デプロイコマンドを打つと、

と出て、デプロイできません。Storage SchemeHigh Replicationではなく、

Master/Slaveであったことが原因でした。あたらしくアプリケーションIDを作り直し、このとき

DatastoreはHigh Replicationであることを確認して、上記のデプロイコマンドを打って、無事デプロイできました。

emacsのシンタックスハイライトを設定する

Goのソースのmisc(GOROOT/misc)ディレクトリにemacsや、vimなどの

シンタックスハイライトを設定できる設定ファイルが入っています。

emacsのシンタックスハイライト設定をしたいたため、misc/emacs配下にある

go-mode-load.elgo-mode.elの2つを~/.emacs.d/にコピーし

~/.emacsに次のように記述します。

あとは、source ~/.emamcsとしてgoファイルを開けばシンタックスハイライトされます。



comments powered by Disqus