Google ソースからイベントを公開する

特定の Eventarc Advanced バスの Google ソースからのイベントの収集と公開を有効または無効にできます。

Google ソースからのイベントは、Cloud Run 関数の作成や Dataflow ジョブのステータス変更などの仲介なしのイベントによって直接トリガーされます。詳細については、Eventarc でサポートされている Google イベントタイプをご覧ください。

次の点にご注意ください。

  • Google Cloud プロジェクトあたりの GoogleApiSource リソースの上限は 1 つです。
  • Google ソースからイベントを公開できるのは、GoogleApiSource リソースと同じ Google Cloud プロジェクト内のみです。
  • GoogleApiSource リソースが存在するプロジェクトとは異なる Google Cloud プロジェクトにあるバスにイベントをパブリッシュできます。これは、gcloud CLI を使用するか、Eventarc API にリクエストを送信して構成できます。

始める前に

まだ有効にしていない場合は、Eventarc APIEventarc Publishing API を有効にします。

コンソール

API を有効にする

gcloud

gcloud services enable eventarc.googleapis.com eventarcpublishing.googleapis.com

Google ソースからのイベントを有効にする

Google ソースからイベントを公開するには、GoogleApiSource リソースを作成する必要があります。このリソースは、特定の Eventarc Advanced バスの特定の Google Cloud プロジェクトにおける Google API イベントのサブスクリプションを表します。

Google ソースからのイベントのパブリッシュは、次の方法で有効にできます。

  • Google Cloud コンソールで
  • ターミナルまたは Cloud Shell で Google Cloud CLI を使用する
  • Eventarc API にリクエストを送信する

コンソール

  1. Google Cloud コンソールで、[Eventarc] > [バス] ページに移動します。

    [バス] に移動

  2. バスを作成するか、バスを更新する場合は [編集] をクリックします。

  3. [バスの編集] ページで、メッセージ ソースを追加するには、 [ソースを追加] をクリックします。

    1. [メッセージ ソースを追加] ペインで、Google API メッセージ プロバイダのデフォルトの google-api-source をそのまま使用するか、別のメッセージ ソース名を入力します。
    2. [作成] をクリックします。
  4. [保存] をクリックします。

gcloud

  1. ターミナルを開きます。

  2. Google ソースからのイベントを有効にするには、gcloud beta eventarc google-api-sources create コマンドを使用します。

    gcloud beta eventarc google-api-source create GOOGLE_API_SOURCE_NAME \
        --destination-message-bus=BUS_NAME \
        --destination-message-bus-project=BUS_PROJECT_ID

    次のように置き換えます。

    • GOOGLE_API_SOURCE_NAME: 特定のバスの Google API イベントのサブスクリプションを表す GoogleApiSource リソースの ID または完全修飾識別子
    • BUS_NAME: Google API イベントのサブスクライブ対象となるバスの ID または完全修飾 ID
    • BUS_PROJECT_ID: バスの Google Cloud プロジェクト ID

    省略可: 次のフラグも使用できます。

    • --async: 処理中のオペレーションの完了を待たずに、コマンドからすぐに戻ります。
    • --crypto-key: 顧客管理の暗号鍵の完全修飾名を指定します。指定しない場合は、 Google-owned and managed keys が使用されます。
    • --logging-config: ロギングレベルを構成します。次のいずれかの値を指定する必要があります。NONEDEBUGINFONOTICEWARNINGERRORCRITICALALERTEMERGENCY。詳細については、LogSeverity をご覧ください。

REST API

Google ソースからのイベントを有効にするには、projects.locations.googleApiSources.create メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • GOOGLE_API_SOURCE_NAME: 特定のバスの Google API イベントのサブスクリプションを表す GoogleApiSource リソースの表示名(my_google_source など)。
  • LABEL_KEYLABEL_VALUE: 省略可。 Google Cloud リソースの整理に役立つラベルの Key-Value ペアのマップです。詳細については、ラベルとはをご覧ください。
  • ANNOTATION_KEYANNOTATION_VALUE: 省略可。自由形式のテキストのアノテーション キーと値のペアのマップ。これらを使用して、リソースに関連付けられた任意の情報を付加できます。詳細については、アノテーションをご覧ください。
  • DESTINATION: Google ソースイベントの公開先となる Eventarc Advanced バスの完全修飾識別子。形式は projects/PROJECT_NAME/locations/LOCATION/messageBuses/BUS_NAME です。詳細については、メッセージをルーティングするバスを作成するをご覧ください。
  • ENCRYPT_KEY: 省略可。GoogleApiSource リソースが projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME 形式のデータ暗号化に使用する Cloud KMS 鍵。詳細については、顧客管理の暗号鍵の使用をご覧ください。
  • PROJECT_ID: GoogleApiSource リソースを作成する Google Cloudプロジェクト ID。
  • LOCATION: GoogleApiSource リソースを作成するサポートされているリージョンus-central1 など)。
  • LOG_SEVERITY: 省略可。ログエントリに記述されているイベントの最小重大度。NONEDEBUGINFONOTICEWARNINGERRORCRITICALALERTEMERGENCY のいずれか。デフォルトは NONE です。詳細については、LogSeverity をご覧ください。

リクエストの本文(JSON):

{
  "displayName": "GOOGLE_API_SOURCE_NAME",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"},
  "destination": "DESTINATION",
  "cryptoKeyName": "ENCRYPT_KEY",
  "loggingConfig": {"logSeverity":"LOG_SEVERITY"}
}

リクエストを送信するには、次のいずれかのオプションを展開します。

成功した場合、レスポンスの本文には、新しく作成された Operation のインスタンスが含まれます。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/googleApiSources/GOOGLE_API_SOURCE_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

GoogleApiSource リソースと同じ Google Cloud プロジェクト内の Google ソースからのイベントが収集され、バスに公開されるようになりました。

Google ソースからのイベントを無効にする

特定のGoogle Cloud プロジェクトの Google ソースから Eventarc Advanced バスへのイベントのパブリッシュを無効にするには、GoogleApiSource リソースを削除する必要があります。

Google ソースからのイベントのパブリッシュは、次の方法で無効にできます。

  • Google Cloud コンソールで
  • ターミナルまたは Cloud Shell で gcloud CLI を使用する
  • Eventarc API にリクエストを送信する

コンソール

  1. Google Cloud コンソールで、[Eventarc] > [バスの詳細] ページに移動します。

    [バスの詳細] に移動

  2. [ 編集] をクリックします。

  3. [バスの編集] ページで、Google API メッセージ プロバイダを削除するには、google-api-source メッセージ ソース(または指定した名前)の [リソースの削除] をクリックします。

  4. [リソースの削除] プロンプトで、[確認] をクリックします。

  5. [保存] をクリックします。

gcloud

  1. ターミナルを開きます。

  2. Google ソースからのイベントを無効にするには、gcloud beta eventarc google-api-sources delete コマンドを使用します。

    gcloud beta eventarc google-api-source delete GOOGLE_API_SOURCE_NAME \
        --location=REGION

    次のように置き換えます。

    • GOOGLE_API_SOURCE_NAME: GoogleApiSource リソースの ID または完全修飾識別子
    • REGION: GoogleApiSource リソースのロケーション

REST API

Google ソースからのイベントを無効にするには、projects.locations.googleApiSources.delete メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: GoogleApiSource リソースが作成される Google Cloud プロジェクト ID。
  • LOCATION: GoogleApiSource リソースが作成されるリージョン(例: us-central1)。
  • GOOGLE_API_SOURCE_NAME: 削除する GoogleApiSource リソースの名前。

リクエストを送信するには、次のいずれかのオプションを展開します。

成功した場合、レスポンスの本文には、新しく作成された Operation のインスタンスが含まれます。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/googleApiSources/GOOGLE_API_SOURCE_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

削除された GoogleApiSource リソースと同じ Google Cloud プロジェクト内の Google ソースからのイベントは収集されなくなり、公開されなくなります。

次のステップ