Go言語用のWeb Application Framework(WAF)はいくつかあります。
その中でもフルスタックかつGoogle App Engine(GAE)をサポートしているWAFはbeegaeです。
beegaeはbeegoのGAE対応版になります。
通常のbeegoでは内部的にGAEでは使用できない機能を使用しており、実行しようとするとエラーが出て正常にビルドできません。
そのため、GAE以外でbeegoを使用する場合は通常のbeego、GAE上でbeegoを使用する場合はbeegaeをimportする必要があります。
beegaeの導入手順
beegaeのインストール方法はbeegaeのgithubに記載があります。
GitHub - astaxie/beegae: beego for GAE
以下はimport手順です。
1 2 3 4 5 6 |
# go get github.com/astaxie/beegae # go get github.com/beego/bee # cd $GOPATH/src # $GOPATH/bin/bee new hellogae //新規作成するアプリ名を指定 # cd hellogae |
app.yamlの作成
次にapp.yamlの作成となります。
GAEのapp.yamlの記述方法の詳しい説明はGoogle Cloudのページにあります。
app.yaml Reference | App Engine standard environment for Go | Google Cloud
beegaeのページではスタンダード環境とフレキシブル環境の2通りの記述方法が紹介されています。
両環境の違いについてはGoogle Cloudのページに説明があります。
上記説明はJavaの日本語ページですが(Goのページは英語のみ)、動作はGoでも同じです。
通常はタンダード環境のapp.yamlで問題ありません。
1 2 3 4 5 6 7 8 9 10 |
application: hellobeegae version: 1 runtime: go threadsafe: true api_version: go1 handlers: - url: /.* script: _go_app |
ファイルの書き換え
最後にgofmtでファイルを書き換えて、各ファイルを移動します。
1 2 3 4 |
# gofmt -r '"github.com/astaxie/beego" -> "github.com/astaxie/beegae"' -w ./ # gofmt -r 'beego -> beegae' -w ./ # mkdir main && mv main.go main/ && mv app.yaml main/ && mv conf/ main/ && mv views/ main/ && cd main/ |
通常のApp Engineで動作させるためにはmain関数をinit関数に書き換えます。
実行
1 2 |
# goapp serve |
実行してhttp://localhost:8080にアクセスして以下のページが表示されれば正常に動作しています。
http://localhost:8000にアクセスすると動作中のApp Engineの状態が確認できます。