使用GoogleAppEngine和Go语言(GAE/g)创建网络应用程序的准备部分
首先
我打算就在Google App Engine(以下简称GAE)的标准环境中使用Go语言时遇到的困难点提供一些线索。
-
- GAEのプロジェクトでは、ローカル環境で開発後、デプロイを行う
ローカル開発用SDKが充実しているが、 GoogleCloudSDK と、 AppEngineSDK の2種類が必要となる
データの保存先
ローカル環境での場合、基本的にローカルに保存される
しかし、Cloud Storageの場合のみ、GAEサービス上のstagingバケットに保存するようにする
ADC(Google Application Default Credentials)認証
ローカル環境から、透過的にGAEサービスにアクセスするために、ADCという仕組みがある
gcloudコマンドを利用し、Googleアカウントの情報を記録することで、アプリケーションから簡単にGAEのリソースにアクセスすることができる
GOPATHの設定
割とどこにおいても良いと書いてあるが、glideというパッケージ管理ツールを利用する関係で、プロジェクトディレクトリ直下を指定している
パッケージ管理には、glideを利用する
准备本地开发环境(Mac)
-
- Python 2.7.x
Google Cloud SDK v140.0.0
必須コンポーネント(bg, core, gsuite, gcloud)
App Engine SDK v1.9.48
glide(パッケージ管理ツール)
$ brew install glide
资源(Datastore、云存储、内存缓存)的访问目标
一开始,Datastore是为了GAE而设计的,而CloudStorage则是作为另一种服务发布的。
由于GAE专用的BlobStore计划被废止,所以变得不协调了。
-
- ローカル環境
Datastore: ローカル
Cloud Storage: stagingバケット
Memcache: ローカル
運用環境
Datastore: GAE
Cloud Storage: 運用バケット(staging.が付いていない)
Memcache: GAE
谷歌应用默认凭据(ADC)认证
初回のみ(Googleアカウントの認証と、プロジェクトを紐付ける)
$ gcloud init
認証関係の確認や再設定
$ gcloud {info|auth|list}
$ gcloud auth login
$ gcloud auth application-default login
GOPATH的设置示例
# Glide
export GO15VENDOREXPERIMENT=1
# GOPATHは,プロジェクト配下に設定
export GOPATH=$HOME/IdeaProjects/goapp/
export PATH=$PATH:$HOME/google-cloud-sdk/platform/google_appengine/goroot/bin/
export PATH=$PATH:$HOME/go_appengine/
# The next line updates PATH for the Google Cloud SDK.
if [ -f {ホームディレクトリ}/google-cloud-sdk/path.bash.inc ]; then
source '{ホームディレクトリ}/google-cloud-sdk/path.bash.inc'
fi
# The next line enables shell command completion for gcloud.
if [ -f {ホームディレクトリ}/google-cloud-sdk/completion.bash.inc ]; then
source '{ホームディレクトリ}/google-cloud-sdk/completion.bash.inc'
fi
滑行(Glide)软件包管理工具
$ glide create # 初回のみ、glide.ymlを生成
$ glide get github.com/Masterminds/glide # パッケージを取得
$ glide install # lockファイルを更新せずにインストール
$ glide update # lockファイルを更新してインストール
$ glide up # glide installとたぶん同じ