3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GoogleAppEngine + Go言語(GAE/g)で作るウェブアプリケーション 準備編

Last updated at Posted at 2017-02-24

はじめに

GoogleAppEngine(以降、GAE)のStandard Environmentで、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, Cloud Storage, Memcache)のアクセス先

元々、DatastoreはGAE用に設計されていたが、CloudStorageは別のサービスとしてリリースされていた。
GAE用のBlobStoreは廃止される予定なので、ちぐはぐになっている。

  • ローカル環境
    • Datastore: ローカル
    • Cloud Storage: stagingバケット
    • Memcache: ローカル
  • 運用環境
    • Datastore: GAE
    • Cloud Storage: 運用バケット(staging.が付いていない)
    • Memcache: GAE

ADC(Google Application Default Credentials)認証

  • 初回のみ(Googleアカウントの認証と、プロジェクトを紐付ける)

    • $ gcloud init
  • 認証関係の確認や再設定

    • $ gcloud {info|auth|list}
    • $ gcloud auth login
    • $ gcloud auth application-default login

GOPATHの設定例

.bash_profile
# 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とたぶん同じ  
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?