環境
- 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準備
※ホームディレクトリで作業をする
cd ~
ダウンロード
curl -O https://storage.googleapis.com/appengine-sdks/featured/go_appengine_sdk_darwin_amd64-1.9.32.zip
解凍
unzip go_appengine_sdk_darwin_amd64-1.9.32.zip
※「go_appengine」というフォルダ名で解凍される
削除
go_appengine_sdk_darwin_amd64-1.9.32.zipを削除する
rm go_appengine_sdk_darwin_amd64-1.9.32.zip
GOPATHの設定
以下の行を追記する
export PATH="$HOME/go_appengine:$PATH"
パスの設定を反映
source ~/.bash_profile
Go言語のワークスペースを作成
ワークスペース名は任意でOKです。
mkdir ~/go_ws
アプリを動かしてみる
helloworldアプリをコピー
ダウンロードしたフォルダ内にデモアプリが複数用意されているのでワークスペースにhelloworldアプリをコピーする。
cp -r ~/go_appengine/demos/helloworld ~/go_ws/
helloworldアプリ ディレクトリに移動
cd ~/go_ws/helloworld
helloworldアプリ をローカルで実行
goapp serve
上記コマンドを実行すると、ターミナル上に以下の情報がアウトプットされる。
# 〜省略〜
INFO 2016-02-19 02:29:39,327 dispatcher.py:197] Starting module "default" running at: http://localhost:8080
# 〜省略〜
Starting moduleの行のURLをブラウザからアクセスすると、
上記のように表示される。ちなみに、goapp serveで起動中にgoファイルを修正すると、自動で再コンパイルしてくれるので、ファイル修正後、ブラウザをリロードすると修正内容が適用されている。
helloworldアプリ をGAE上で実行
事前準備
- Googleアカウントを作成していること
プロジェクトを作成する
My consoleにログイン後、プロジェクトを作成する。
↓↓↓
GAEにアップ
プロジェクトを作成した時に発行されたプロジェクトID(<YOUR_PROJECT_ID_>)を以下のコマンドにセットし、コマンドを実行します。
appcfg.py -A <YOUR_PROJECT_ID_> update ~/go_ws/helloworld/
※「<>」は必要ありません
ブラウザ上で実行確認
以下のURLにアクセスすると、「Hello, World!」が表示される。
http://<YOUR_PROJECT_ID_>.appspot.com/
補足
GAEは、すべてのアプリケーションを対象に、一定の無料枠(毎日リセットされます)が設けられているのでコストは抑えられると思います。