Cloud Datastore の使用

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

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

前提条件と設定

App Engine 上の PHP に関する「Hello, World!」の手順に従って環境とプロジェクトをセットアップし、App Engine での PHP アプリの構造を理解してください。このドキュメントで説明しているサンプルアプリを実行する際に必要となるため、プロジェクト ID を書き留めておきます。

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

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

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

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

Composer を使用して依存関係をインストールします。

composer install

アプリケーション コード

このサンプルアプリは、訪問者の IP のロギング、取得、表示を行います。

最初に、Cloud Datastore クライアントがインスタンス化されます。

$datastore = new DatastoreClient([
    'projectId' => $projectId
]);

訪問者ごとに 1 つのエンティティが生成され、その各フィールドが訪問者の IP アドレスとタイムスタンプを表します。このエンティティは、次の insert コマンドで Cloud Datastore に保存されます。

// Create an entity to insert into datastore.
$key = $datastore->key('visit');
$entity = $datastore->entity($key, [
    'user_ip' => $user_ip,
    'timestamp' => new DateTime(),
]);
$datastore->insert($entity);

最近 10 回の訪問が、次の query コマンドを用いて降順で取得されます。

// Query recent visits.
$query = $datastore->query()
    ->kind('visit')
    ->order('timestamp', 'DESCENDING')
    ->limit(10);
$results = $datastore->runQuery($query);
$visits = [];
foreach ($results as $entity) {
    $visits[] = sprintf('Time: %s Addr: %s',
        $entity['timestamp']->format('Y-m-d H:i:s'),
        $entity['user_ip']);
}

index.yaml ファイルの使用

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

詳細情報

最適化や基本的な考え方など、Cloud Datastore に関する詳細は、Cloud Datastore のドキュメントをご覧ください。

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

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

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