Cloud Logging でのセカンド パーティ トリガー
多くの Google Cloud イベントが Cloud Audit Logs に記録されます。これらのログをフィルタリングし、シンクを使用して Pub/Sub トピックに転送できます。これらの Pub/Sub トピックは、Cloud Run functions をトリガーする通知を送信します。これにより、監査ログを生成するすべての Google Cloud サービスからカスタム イベントを作成できます。
構成
このドキュメントのサンプルを実行するには、Pub/Sub トピックと Cloud Logging シンクが必要です。サンプルでは、これらを使用して Cloud Audit Logs を Cloud Run functions に転送します。
イベントの構造
すべての Pub/Sub トリガー関数と同様に、Cloud ログエントリからトリガーされる関数は PubsubMessage
オブジェクトを受信します。このオブジェクトのdata
パラメータに base64
でエンコーディングされた文字列が格納されます。Cloud ログイベントの場合、この値をデコードすると、関連するログエントリが JSON 文字列として返されます。
サンプルコード
Pub/Sub トリガー関数を使用すると、エクスポートされた Cloud ログを検出して応答できます。
Node.js
Python
Go
Java
関数のデプロイ
次のコマンドを入力して、関数をデプロイします
Node.js
gcloud functions deploy processLogEntry \ --runtime nodejs20 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
サポートされている Node.js バージョンのランタイム ID を指定して関数を実行するには、--runtime
フラグを使用します。
Python
gcloud functions deploy process_log_entry \ --runtime python312 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
サポートされている Python バージョンのランタイム ID を指定して関数を実行するには、--runtime
フラグを使用します。
Go
gcloud functions deploy ProcessLogEntry \ --runtime go121 \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
サポートされている Go バージョンのランタイム ID を指定して関数を実行するには、--runtime
フラグを使用します。
Java
gcloud functions deploy java-log-function \ --entry-point StackdriverLogging \ --runtime java17 \ --memory 512MB \
--trigger-topic YOUR_PUBSUB_TOPIC/
FLAGS...
サポートされている Java バージョンのランタイム ID を指定して関数を実行するには、--runtime
フラグを使用します。
関数のトリガー
フィルタに一致する Cloud ログエントリが作成されると、関数でも対応するログエントリを確認できます。
Method: METHOD Resource: projects/YOUR_GCLOUD_PROJECT/... Initiator: YOUR_EMAIL_ADDRESS