Eventarc の新しい Cloud Storage トリガーの概要
Google Cloud Japan Team
※この投稿は米国時間 2021 年 9 月 21 日に、Google Cloud blog に投稿されたものの抄訳です。
Eventarc ではこのたび、Cloud Storage バケットからイベントを受信するための新しい Cloud Storage トリガーがサポートされるようになりました。
これを聞いて、「Eventarc は Cloud Storage イベントの受信をすでにサポートしていたはず」と疑問に思われるかも知れません。確かに Eventarc は、Cloud Audit Logs トリガーを経由した Cloud Storage イベントの受信を長きにわたってサポートしてきました。しかし、新しい Cloud Storage トリガーはいくつもの利点を備えており、Cloud Storage イベントの受信に最適なものとなっているのです。詳細を見てみましょう。
ご存じのとおり、Eventarc には 3 つのタイプのトリガーがあります。
Pub/Sub トリガー: 新しいまたは既存の Pub/Sub トピックからメッセージを受信します。
Cloud Audit Logs トリガー: 100 以上のイベントソースから監査ログを受信します。
Cloud Storage トリガー(新): Cloud Storage バケットからイベントを受信します。
これまでは、監査ログトリガーが Cloud Storage イベントを受信できる唯一の方法でした。
監査ログトリガーによる Cloud Storage イベントの受信
監査ログトリガーを使用した以前の方法の例を見てみましょう。これは監査ログトリガーで、europe-west1 リージョンで作成されます。新しいオブジェクトが europe-west1 の Cloud Storage バケットで作成されるとトリガーし、イベントが us-central1 の Cloud Run サービスにルーティングされます。
これで機能しますが、次のような問題があります。
監査ログの有効化: 監査ログトリガーが機能するには、Cloud Storage に対して監査ログを有効化する必要があります。多くのユーザーがこれを忘れがちです。
レイテンシ: ファイルの保存時、監査ログイベント生成時、Cloud Run サービスのイベント受信時の間には遅延があります。
監査ログのバケットによるフィルタなし: 代わりに、コード内でバケットでフィルタする必要があります。
デュアルリージョンまたはマルチリージョンのサポートなし: Eventarc のロケーションは、1 つのリージョンのみ、またはすべてのリージョンに対する特別なグローバル リージョンのみサポート可能となっています。一方 Cloud Storage は、シングル、デュアル、マルチのいずれのリージョンでも、バケットのロケーションをサポートします。EU のマルチリージョン バケットからイベントを受信する場合は、Eventarc のロケーションをグローバルに設定する必要があります(シングル リージョンではないため)。この場合、イベントをすべてのリージョンから受信することになるため、コード内でリージョン別にフィルタする必要があります。
Cloud Storage トリガーによる Cloud Storage イベントの受信
これは、新しい Cloud Storage トリガーを使用して europe-west1 の Cloud Storage バケットからオブジェクト作成イベントを受信する方法です。
この方法は監査ログトリガーよりシンプルなだけでなく、次の点でも優れています。
監査ログがないということは、つまり監査ログを有効化する必要がないことを意味するため、監査ログによるレイテンシが発生しません。バケットでファイルを作成する場合、Cloud Run サービスでそのイベントがほぼ即時に表示されます。
バケットによるフィルタがサポートされています。コード内でバケットによってフィルタする必要がありません。Eventarc は、Eventarc トリガーのロケーションに対するバケットのロケーションについて、サニティ チェックを実施できます。
デュアルリージョンとマルチリージョンがサポートされます。複数のリージョンで作業する場合に グローバル ロケーションを指定する必要がなくなり、コード内でフィルタする必要もなくなりました。
ちょうどこの新しい Cloud Storage トリガーのような機能を探していたという場合や、今後このトリガーが必要になりそうだと思われる場合には、次のリソースをご覧ください。トリガーを試す手順をご確認いただけます。
ご不明な点やフィードバックがございましたら、@meteatamel までご連絡ください。
- デベロッパー アドボケイト Mete Atamel