Help us understand the problem. What is going on with this article?

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

参考サイト

walkers
起業準備中(BtoB SaaS)←Notia事業責任者←マツリカ創業メンバー←フリーランス←失敗←起業準備←東芝情報システム(SIer)◆エンジニア+プロダクトマネージャー(PdM)+営業+CS、育成に必要なことは何でも◆ @gotandarb を運営◆UB Ventures Thinka 2期生
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away