認証コンテキストを含む、Firestore の Eventarc との統合が一般提供に
Josué Urbina
Software Engineer, Firestore
Hansi Mou
Software Engineer, Firestore
※この投稿は米国時間 2024 年 5 月 14 日に、Google Cloud blog に投稿されたものの抄訳です。
Eventarc と Firestore を組み合わせて使用してイベント ドリブン アーキテクチャを構築することは、ますます人気のパターンとなっています。最近、Firestore の Eventarc との統合が一般提供となり、新たな機能が追加されました。信頼性を高めるために、マルチリージョンの Firestore データベースに対し異なるリージョンにある複数の Cloud Functions を登録できるようになりました。また、CloudEvents の認証コンテキスト拡張機能など、新しいイベントタイプが追加されました。
ユーザー、サービス アカウント、システム、サードパーティなど、Firestore ドキュメントの変更者を変更イベントで判断できるようにすることは、長い間特にご要望の多かった機能でした。認証コンテキスト拡張機能を備えた新しい Firestore イベントタイプにより、オープンかつポータブルな CloudEvents 形式で、ドキュメントの変更をトリガーしたプリンシパルに関するメタデータがイベントで埋め込まれるようになりました。
サンプルのチュートリアル
たとえば、認証コンテキスト(未認証またはシステム)ごとに、宛先のイベントを処理するロジックを変えたいとします。トリガーを設定するには、Google Cloud コンソールの [Eventarc] セクションに移動します。そこでは、認証情報を含む関連イベントタイプを使用して、Firestore に新しいトリガーを作成する必要があります。これらのイベントタイプの末尾は、サフィックス *.withAuthContext です。新たに書き込まれたエンティティをキャプチャするために、google.cloud.firestore.document.v1.written.withAuthContext イベントを選択します。
追加のフィルタを指定できます。これにより、指定のデータベースやコレクションから取得した、目的のイベントのみが配信されるようになります。ここでは、(default) データベースとコレクション Ops のドキュメントのイベントをフィルタで抽出します。
同じ画面で、宛先も指定する必要があります。トリガー イベントを配信する宛先は、サポートされている Eventarc の宛先であればいくつでも指定できます。たとえば、Cloud Run、Cloud Functions(第 2 世代)、Google Kubernetes Engine を指定できます。ここでは、イベントを受信するために HTTP エンドポイントを公開する demo という名前の Cloud Run サービスがあるとしましょう。トリガーは次のように構成できます。
これで完了です。(default) データベースにコレクション Ops の書き込みオペレーションが適用されると、構成した Cloud Run サービス demo に認証コンテキストを備えた CloudEvent がほぼ即座に配信されます。認証コンテキスト拡張機能で定義されている authtype 属性を調べることで、https://cloud.google.com/firestore/docs/extend-with-functions-2nd-gen#event_attributes に示されているように、未認証タイプやシステムタイプを特定できます。
次のステップ
Firestore トリガーの作成と構成の方法について詳しくは、ドキュメントをご覧ください。
このブログ投稿の執筆に際し、Firestore のシニア プロダクト マネージャー リードである Minh Nguyen とシニア テクニカル ライターの Juan Lara の協力に感謝します。
-Firestore、ソフトウェア エンジニア Josué Urbina
-Firestore、ソフトウェア エンジニア Hansi Mou