コンテンツに移動
データベース

Firestore のトリガーのサポートを Datastore モードにも拡大

2023年7月25日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 7 月 21 日に、Google Cloud blog に投稿されたものの抄訳です。

このたび、Firestore データベースに対するトリガーが、Datastore モードの Firestore でもサポートされるようになりました。この機能は、最近リリースされた Firestore への Eventarc トリガー機能のインテグレーションが基盤となっており、これまではネイティブ モードの Firestore のみでサポートされていました。

Firestore への Eventarc トリガー機能のインテグレーションにより、変更データ キャプチャ システムの設定が可能になります。一般的にこのシステムが利用されるのは、Firestore のドキュメント変更を BigQuery などの他のプラットフォーム サービスに複製する場合、特定の Firestore データ変更に応じてプッシュ通知またはメール通知をエンドユーザーに送信する場合、削除した Firestore ドキュメントを別のストレージ システムにアーカイブする場合です。Firestore への Eventarc トリガー機能のインテグレーションでは、Cloud Run、Google Kubernetes Engine(GKE)、Cloud Functions(第 2 世代)といったさまざまな宛先がサポートされます。また、このインテグレーションでは、オープンかつポータブルな CloudEvents 形式が使用されます。

サンプルのチュートリアル

たとえば、データ分析を実施するために、Firestore オペレーション データを BigQuery に複製する必要があるとします。この例では、まず、次のような Datastore モードの Firestore データモデルを使用します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/Img_01.max-1000x1000.jpg

データ複製トリガーを設定するために、Cloud コンソールの Eventarc セクションに移動します。Datastore モードの場合、関連するイベントタイプを使用して、Firestore に新規トリガーを作成することが必要になります。Datastore モードの Firestore のイベントタイプには、先頭に接頭辞 google.cloud.datastore.entity.v1.* が付きます。ここでは、新たに書き込まれたエンティティをキャプチャするので、google.cloud.datastore.entity.v1.written イベントにサブスクライブします。

https://storage.googleapis.com/gweb-cloudblog-publish/images/Img_02.max-900x900.png

次に、追加のフィルタを指定できます。これにより、指定のデータベースから取得した指定のエンティティ タイプの、目的とするイベントのみが配信されるようになります。ここでは、(default) データベースからの、エンティティ タイプが Reports のイベントをフィルタで抽出します。

同じ画面で、宛先も指定する必要があります。トリガー イベントを配信する宛先は、サポートされている Eventarc の宛先であればいくつでも指定できます。たとえば、Cloud RunCloud Functions(第 2 世代)Google Kubernetes Engine を指定できます。ここでは、イベントを受信するために HTTP エンドポイントを公開する analysis という名前の Cloud Run サービスがあるとしましょう。トリガーを次のように構成できます。
https://storage.googleapis.com/gweb-cloudblog-publish/images/Img_03.max-900x900.png

これで完了です。(default) データベースにエンティティ タイプが Reports の書き込みオペレーションが適用されると、ほぼ即座に、構成した Cloud Run サービス analysis に CloudEvent が配信されます。この新しい Cloud Run サービスは新たに書き込まれたエンティティを処理した後、BigQuery の Storage API を使用して BigQuery にそれらのエンティティを書き込みます。

次のステップ

Firestore トリガーの作成と構成の方法について詳しくは、ドキュメントをご覧ください。


このブログ投稿の執筆に際し、Firestore のシニア プロダクト マネージャー リード Minh Nguyen および Firestore のシニア テクニカル ライター Juan Lara の協力に感謝します。


- Firestore、ソフトウェア エンジニア Josué Urbina
- Firestore、ソフトウェア エンジニア Hansi Mou
投稿先