Cloud Datastore の使用

Cloud Datastore は、自動スケーリング、高いパフォーマンス、さらにアプリケーション開発の簡素化のために構築された NoSQL ドキュメント データベースです。

Python 2 スタンダード ランタイムで実行されている App Engine アプリでは、Cloud Datastore とやり取りするために NDB クライアント ライブラリのみを使用できます。Google Cloud クライアント ライブラリは、App Engine スタンダード環境で実行されている Python 2 アプリでは使用できません。

App Engine での Datastore の使用

App Engine で Cloud Datastore を使用するには:

  1. まだ作成していない場合は、データベースを作成します。

    新しいデータベースを作成する場合は、Datastore モードの Cloud Firestore を選択してください。Cloud Firestore は、Cloud Datastore のリブランディングとなる次期メジャー バージョンです。 主に App Engine で使用されるデータベースには Datastore モードが推奨されます。

    App Engine アプリでは既存の Cloud Datastore データベースを使用できます。その場合、既存の Cloud Datastore データベースが Datastore モードの Cloud Firestore に自動的にアップグレードされます。

  2. google-cloud-datastore をアプリの requirements.txt ファイルに追加することにより、アプリ内で Cloud Datastore を依存関係として宣言します。

  3. NDB を使用して、Cloud Datastore データベースのエンティティを作成、取得、管理します。

インデックスの構成

Cloud Datastore はアプリケーションからのすべてのクエリ用にインデックスを使用します。エンティティが変更されるたびにインデックスが更新されるので、アプリからのクエリに対してすばやく結果を返すことができます。

Cloud Datastore は、単純な種類のクエリで使われる単一プロパティのインデックスを自動的に作成します。複数のプロパティを含む複雑なクエリについては、アプリの index.yaml ファイル内で複合インデックスを構成する必要があります。

App Engine 開発用サーバーは、テストを実行するために必要な複合インデックスを使って index.yaml ファイルを更新します。同様に、テストを実行するときには Cloud Datastore エミュレータがインデックスを生成できます。

また、ローカルテストを実行しない場合や、テストに複雑なクエリが含まれない場合は、アプリの index.yaml ファイル(/appengine/docs/standard/python/config/indexref#automatic)に手動でインデックスを追加できます。

データベース権限の設定

デフォルトでは、Google Cloud Platform プロジェクト内の Cloud Datastore データベースと Cloud Firestore データベースに対して読み取り / 書き込みを行うのに必要なすべての権限がアプリに付与されます。

これらの権限を管理するために、それぞれの App Engine アプリはデフォルトのサービス アカウントを使用します。このアカウントにより、アプリと同じプロジェクト内の Cloud Datastore データベースと Cloud Firestore データベースに対する完全な読み取り / 書き込みアクセス権限が与えられます。デフォルト サービス アカウントの権限を変更することはできますが、必要な権限を持つ IAM 役割を割り当てない限り、アプリがデータベースにアクセスできなくなる可能性があります。

他のユーザー、アプリ、プロジェクトにデータべースへのアクセスを許可する方法については、データベースへのアクセスをご覧ください。

料金、割り当て、上限

Cloud Datastore では、一定の割り当て量を無料で使用できます(1 日の使用量に上限があります)。有料アカウントの場合には、保存、読み取り、書き込みオペレーションを無制限で行うことができます。詳細については、データストアの割り当てをご覧ください。

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

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

Python 2 の App Engine スタンダード環境