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

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

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

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

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

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

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

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

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

コンソール

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

    [バス] に移動

  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 が所有、管理する 鍵が使用されます。
    • --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 ソースイベントを projects/PROJECT_NAME/locations/LOCATION/messageBuses/BUS_NAME 形式でパブリッシュする Eventarc Advanced バスの完全修飾識別子。詳細については、メッセージを転送するバスを作成するをご覧ください。
  • 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. [Edit bus] ページで、Google API メッセージ プロバイダを削除するには、google-api-source メッセージ ソース(または指定した名前)の [Delete resource] をクリックします。

  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 ソースのイベントは、収集されず、公開されなくなります。

次のステップ