LoginSignup
0
2

More than 5 years have passed since last update.

GoogleCloudDatastoreのBookshelfチュートリアル(Rails版)やる

Last updated at Posted at 2018-01-24

はじめに

前述の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.サービスアカウントキーを選択

スクリーンショット 2018-01-24 11.40.01.png

1-2.jsonを選択

スクリーンショット 2018-01-24 11.40.11.png

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.試してみる>エンティティを作成

スクリーンショット 2018-01-22 15.38.37.png

3.OAuth認証の用意

ログイン実装で使うOAuth認証の準備をします。
https://console.cloud.google.com/apis/credentials/oauthclient?project=smiling-audio-97113&hl=ja

3-1.認証情報を作成>OAuthクライアントIDの作成

スクリーンショット 2018-01-22 15.31.19.png

3-2.ウェブアプリケーション>http://localhost:3000/auth/google_oauth2/callback

スクリーンショット 2018-01-22 15.31.51.png

3-3.クライアントIDとシークレットを取得

スクリーンショット 2018-01-22 15.33.36.png

4.bucketの作成

画像を保管するバケットを作成します。一意の名前である必要があるのでproject名にすると良いかも。

4-1.バケット作成

スクリーンショット 2018-01-24 11.09.56.png
スクリーンショット 2018-01-24 11.02.26.png

4-2.バケットへのアクセス権の設定

bucketのaccess_key_idとsecret_access_keyを取得します
スクリーンショット 2018-01-23 18.17.38.png
スクリーンショット 2018-01-23 18.17.50.png

手順開始

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
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.手元で起動する(やったね)

スクリーンショット 2018-01-24 12.38.20.png

本番にdeployする

ここまでできていれば本番へdeployするのはとても簡単。

//リストを見る
$ gcloud projects list
//どれかのプロジェクトに紐づける
$ gcloud config set project mongo-demo-182807
//デプロイする
$ gcloud app deploy
//初回は5分くらいコンソールが進むのを待つ
.....
//準備ができたらブラウザで開く
$ gcloud app browse
0
2
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
0
2