はじめに
前述のGoogleCloudDataStoreを始めるにあたって、
ログイン実装 + サンプルデータの格納など基本的な動作を検証するために、
Bookshelfのチュートリアルを行なったので要点のみの覚書です。
Googleログイン認証 + 本の管理(テキスト+写真)ができるようになります。
言語はRails版をやりましたが、他の言語でも手順は同じです。
Bookshelfチュートリアル
これをやっただけ。
https://cloud.google.com/ruby/getting-started/authenticate-users?hl=ja
gem
ORMを使うようなgemは、GoogleCloudDatastoreで使えないことが多そう。。
例えば、ユーザー管理でお馴染みのDeviseなどは
ActiveRecordかMongoDB(mongoid)対応なので、使えない様子。
ORM
Go言語だとgormなど選択肢があるようだが、Ruby言語ではあまり情報がなさそう?
調べている中で、ActiveModel-DataStoreというのを発見しました。
https://github.com/Agrimatics/activemodel-datastore
ダッシュボード上での事前準備
1.サービスアカウントキーの作成
手元のPCからrailsアプリケーションをDataStoreに接続するなど、deployせずに開発をするために必要な作業。このキーが漏れてしまわないように注意が必要。
1-1.サービスアカウントキーを選択
1-2.jsonを選択
1-3.手元のコンソールでexportする
export GOOGLE_APPLICATION_CREDENTIALS=/Users/test1/Documents/googlecloudplatform_key/test-key.json
2.CloudDatastoreの用意
今回DBとして使うCloudDatastoreを用意します。
https://console.cloud.google.com/datastore/
2-1.試してみる>エンティティを作成
3.OAuth認証の用意
ログイン実装で使うOAuth認証の準備をします。
https://console.cloud.google.com/apis/credentials/oauthclient?project=smiling-audio-97113&hl=ja
3-1.認証情報を作成>OAuthクライアントIDの作成
3-2.ウェブアプリケーション>http://localhost:3000/auth/google_oauth2/callback
3-3.クライアントIDとシークレットを取得
4.bucketの作成
画像を保管するバケットを作成します。一意の名前である必要があるのでproject名にすると良いかも。
4-1.バケット作成
4-2.バケットへのアクセス権の設定
bucketのaccess_key_idとsecret_access_keyを取得します
手順開始
1.gcloudコマンドを使えるようにする
$ curl https://sdk.cloud.google.com | bash
$ source .bash_profile
2.ログインして、プロジェクトIDとNUMBERを見る
$ gcloud auth login
$ gcloud projects list
PROJECT_ID NAME PROJECT_NUMBER
gcp-demo-12345 gcp-demo 12345
3.cloneする
$ git clone https://github.com/GoogleCloudPlatform/getting-started-ruby/
$ cd getting-started-ruby/4-auth
$ source .bashrc
4.インストール
$ bundle install
5.DBの接続
$ cp config/database.example.yml config/database.yml
development:
dataset_id: gcp-demo-12345
production:
dataset_id: gcp-demo-12345
test:
dataset_id: gcp-demo-12345
6.Authの設定
$ cp config/settings.example.yml config/settings.yml
事前準備で取得したclient_idとclient_secretを書く
default: &default
oauth2:
client_id: aaaa
client_secret: bbbb
cloud_storage:
bucket: your-bucket-name
access_key_id: your-access-key-id
secret_access_key: your-secret-access-key
development:
<<: *default
production:
<<: *default
7.起動
$ rails server
8.手元で起動する(やったね)
本番にdeployする
ここまでできていれば本番へdeployするのはとても簡単。
//リストを見る
$ gcloud projects list
//どれかのプロジェクトに紐づける
$ gcloud config set project mongo-demo-182807
//デプロイする
$ gcloud app deploy
//初回は5分くらいコンソールが進むのを待つ
.....
//準備ができたらブラウザで開く
$ gcloud app browse