Edited at

Google App Engine SDK for Goを使ってGAE上でアプリを動かすまで

More than 3 years have passed since last update.


環境


  • MacOSX: 10.11.3

  • Python: 2.7.10 ※2.7系じゃないと動作しないっぽいので注意(検証はしていない)

  • Google App Engine SDK for Go: 1.9.32 - 2016-02-02


Google App Engine SDK for Go準備

※ホームディレクトリで作業をする


ターミナル.app

cd ~



ダウンロード


ターミナル.app

curl -O https://storage.googleapis.com/appengine-sdks/featured/go_appengine_sdk_darwin_amd64-1.9.32.zip



解凍


ターミナル.app

unzip go_appengine_sdk_darwin_amd64-1.9.32.zip


※「go_appengine」というフォルダ名で解凍される


削除

go_appengine_sdk_darwin_amd64-1.9.32.zipを削除する


ターミナル.app

rm go_appengine_sdk_darwin_amd64-1.9.32.zip



GOPATHの設定

以下の行を追記する


~/.bash_profile

export PATH="$HOME/go_appengine:$PATH"


パスの設定を反映


ターミナル.app

source ~/.bash_profile



Go言語のワークスペースを作成

ワークスペース名は任意でOKです。


ターミナル.app

mkdir ~/go_ws



アプリを動かしてみる


helloworldアプリをコピー

ダウンロードしたフォルダ内にデモアプリが複数用意されているのでワークスペースにhelloworldアプリをコピーする。


ターミナル.app

cp -r ~/go_appengine/demos/helloworld ~/go_ws/



helloworldアプリ ディレクトリに移動


ターミナル.app

cd ~/go_ws/helloworld



helloworldアプリ をローカルで実行


ターミナル.app

goapp serve


上記コマンドを実行すると、ターミナル上に以下の情報がアウトプットされる。


ターミナル.app

# 〜省略〜


INFO 2016-02-19 02:29:39,327 dispatcher.py:197] Starting module "default" running at: http://localhost:8080

# 〜省略〜


Starting moduleの行のURLをブラウザからアクセスすると、

スクリーンショット 2016-02-19 11.39.11.png

上記のように表示される。

ちなみに、goapp serveで起動中にgoファイルを修正すると、自動で再コンパイルしてくれるので、ファイル修正後、ブラウザをリロードすると修正内容が適用されている。


helloworldアプリ をGAE上で実行


事前準備


  • Googleアカウントを作成していること


プロジェクトを作成する

My consoleにログイン後、プロジェクトを作成する。

スクリーンショット_2016-02-19_11_49_37.jpg

         ↓↓↓

スクリーンショット_2016-02-19_11_50_37.jpg


GAEにアップ

プロジェクトを作成した時に発行されたプロジェクトID(<YOUR_PROJECT_ID_>)を以下のコマンドにセットし、コマンドを実行します。


ターミナル.app

appcfg.py -A <YOUR_PROJECT_ID_> update ~/go_ws/helloworld/


※「<>」は必要ありません


ブラウザ上で実行確認

以下のURLにアクセスすると、「Hello, World!」が表示される。

http://<YOUR_PROJECT_ID_>.appspot.com/

スクリーンショット_2016-02-19_13_32_34.jpg


補足

GAEは、すべてのアプリケーションを対象に、一定の無料枠(毎日リセットされます)が設けられているのでコストは抑えられると思います。


参考サイト