Cloud Datastore の使用

Google Cloud Datastore を使用して、App Engine アプリからのアプリケーション データを保存できます。Cloud Datastore は、自動スケーリングと高いパフォーマンスを実現し、アプリケーション開発を簡素化するように構築されたデータベースです。

このドキュメントでは、Google Cloud クライアント ライブラリを使用し、App Engine アプリから Cloud Datastore にアクセスしてデータの保存と取得を行う方法を説明します。

前提条件と設定

App Engine の Ruby 用「Hello, World!」の説明に従って環境とプロジェクトを設定し、App Engine での Ruby アプリの構造を理解してください。このドキュメントで説明しているサンプルアプリを実行する際に必要となるため、プロジェクト ID をメモして保存しておきます。

リポジトリのクローン作成

サンプルをダウンロード(クローニング)します。

git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples/
cd ruby-docs-samples/appengine/datastore

プロジェクト構成の編集と依存関係の設定

Gemfile に、Cloud Datastore の関数が含まれている google-cloud ライブラリを追加します。

source "https://rubygems.org"

gem "sinatra"
gem "google-cloud-datastore"

アプリケーション コード

このサンプル アプリケーションは訪問者の IP のログ記録、取得、および表示を行います。ログエントリはタイプ visit の単純な 2 フィールド クラスであり、save コマンドを使用して Cloud Datastore に保存されることがわかります。Dataset run コマンドを使用すると、最新の 10 件の訪問を降順で取得できます。

require "digest/sha2"
require "sinatra"
require "google/cloud/datastore"

get "/" do
  # Save visit in Datastore
  visit = dataset.entity "Visit"
  visit["user_ip"]   = Digest::SHA256.hexdigest request.ip
  visit["timestamp"] = Time.now
  dataset.save visit

  # Query the last 10 visits from the Datastore
  datastore = Google::Cloud::Datastore.new
  query     = datastore.query("Visit").order("timestamp", :desc).limit(10)
  visits    = datastore.run query

  response.write "Last 10 visits:\n"

  visits.each do |visit|
    response.write "Time: #{visit['timestamp']} Addr: #{visit['user_ip']}\n"
  end

  content_type "text/plain"
  status 200
end

index.yaml ファイルの使用

このサンプルアプリは簡単なクエリを実行しています。より複雑な Datastore クエリには、1 つ以上のインデックスが必要になります。これらのインデックスは、アプリとともにアップロードする index.yaml ファイルで指定する必要があります。このファイルは手動で作成することも、アプリをローカルでテストするとき自動的に生成することもできます。

詳細情報

Cloud Datastore の最適化やコンセプトなどの詳細については、Cloud Datastore のドキュメントをご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Ruby の App Engine フレキシブル環境に関するドキュメント