GCPのアドベントカレンダー11日目です。
久しぶりにGAE触ったら管理画面の日本語対応が進んでいて嬉しかったので触ってみました。
といってもチュートリアルな感じです。
Goだけ触ったことがなかったので、試してみました。
昔AppEngineを触ってたときがありましたが、そのときと比べてチュートリアルや管理画面が凄く分かりやすくなっていて感動してます。
Google App Engineでアプリケーション作成
-
Google Cloud SDKをまだインストールしていない場合はインストールしましょう。
-
~/.bash_profileにaliasを追加しておきます。
alias goapp=~/google-cloud-sdk/platform/google_appengine/goapp
- gcloud auth loginでログインしておきます。
$ gcloud auth login
ブラウザ側で認証画面が開かれるので認証しましょう。
$ gcloud components update gae-go
- サンプルのアプリのzipファイルをダウンロードして解凍しておきましょう。 -> https://cloud-playground.appspot.com/_ah/mimic/ziprepo?repo=repos/appengine-try-go&filename=appengine-try-go.zip
- ローカルサーバーを立ち上げてアプリを起動します。
$ goapp serve appengine-try-go
appengine-try-goフォルダの中ではなくてフォルダがある階層でgoappコマンドを使うと良いみたいです。
- ブラウザから http://localhost:8080 にアクセスすると
Hello,world!
が表示されますね。
- ソースコードはこんな感じ
package hello
import (
"fmt"
"net/http"
)
func init() {
http.HandleFunc("/", handler)
}
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello, world!")
}
Goのコードってちゃんとみたの初めてかもです。
- サーバー起動してからサーバーにアクセスがあるとログが表示されます。
$ goapp serve appengine-try-go
INFO 2014-12-10 17:08:17,776 devappserver2.py:745] Skipping SDK update check.
WARNING 2014-12-10 17:08:17,788 simple_search_stub.py:1115] Could not read search indexes from /var/folders/wk/clq1j2m55_515vzfq2mdjzh40000gp/T/appengine.helloworld.sugawara_ryosuke/search_indexes
INFO 2014-12-10 17:08:17,792 api_server.py:172] Starting API server at: http://localhost:51249
INFO 2014-12-10 17:08:17,796 dispatcher.py:186] Starting module "default" running at: http://localhost:8080
INFO 2014-12-10 17:08:17,798 admin_server.py:118] Starting admin server at: http://localhost:8000
INFO 2014-12-10 17:08:23,305 module.py:718] default: "GET / HTTP/1.1" 200 13
INFO 2014-12-10 17:08:23,391 module.py:718] default: "GET /favicon.ico HTTP/1.1" 200 13
INFO 2014-12-10 17:08:23,447 module.py:718] default: "GET /favicon.ico HTTP/1.1" 200 13
- 最後に実際のサーバーにデプロイします。プロジェクトを作成を押します。
- プロジェクトが立ち上がるので少し待ちましょう。
- プロジェクトIDを指定してデプロイします。
今回は自動生成されたプロジェクトIDはlyrical-drive-790
です。
$ goapp deploy -oauth -application [プロジェクトID] appengine-try-go
今回の場合は
$ goapp deploy -oauth -application lyrical-drive-790 appengine-try-go
になります。
成功すると http://lyrical-drive-790.appspot.com でwebサーバーが起動します。 アクセスすると先ほどのhelloworldが表示されます。
まとめ
チュートリアルや管理画面が変わって、思った以上に最初のハードルが下がったと思います。
昔AppEngineで挫折した人などはもう一度試してみると良いかもしれないですね。