メッセージを転送するバスを作成する

Eventarc Advanced バスを使用すると、システム内のメッセージのフローを一元管理、モニタリング、トレースできます。また、ルーターとして機能します。メッセージ ソースからのイベントやプロバイダによって公開されたイベントを受信し、登録に従って評価します。登録は、特定のバスへのサブスクリプションを識別し、メッセージの一致条件を定義して、それに応じてルーティングします。詳細については、イベントを受信する登録を作成するをご覧ください。

バスは、プロジェクト内または他のプロジェクトのイベント プロバイダとデスティネーションによって使用できます。詳細については、プロジェクトのレイアウトをご覧ください。

必要なロール

Identity and Access Management(IAM)ロールには、 Google Cloud リソースに対して特定のアクションを実行できる一連の権限が含まれています。メッセージを転送するバスを作成するときに、次のロールと権限が必要です。

  • バスの作成に必要な権限を取得するには、バス プロジェクトに対する Eventarc 管理者roles/eventarc.admin)または Eventarc メッセージ バス管理者roles/eventarc.messageBusAdmin)の IAM ロールを付与するよう管理者に依頼してください。これらの事前定義ロールには、バスの作成に必要な eventarc.messageBuses.create 権限が含まれています。
  • バスの使用に必要な権限を取得するには、バス プロジェクトに対する Eventarc メッセージ バス ユーザーroles/eventarc.messageBusUser)IAM ロールを付与するよう管理者に依頼してください。この事前定義ロールには、バスの使用に必要な eventarc.buses.use 権限が含まれています。
  • パイプラインと登録を作成するには、追加の権限が必要です。詳細については、登録を作成する際に必要なロールをご覧ください。

ロールの付与の詳細については、アクセスの管理をご覧ください。カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

バスの作成

バスは次の方法で作成できます。

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

Console

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

    [バス] に移動

  2. [ Create bus] をクリックします。

  3. [バスを作成する] ページで、次の操作を行います。

    1. バス名を入力します。バスの ID です。
    2. 省略可: [バスの詳細] ページに表示されるバスの表示名を入力します。
    3. [リージョン] リストで、バスをデプロイするサポートされているリージョンを選択します。
    4. [ログの重大度] リストで、ログエントリで説明されているイベントの最小重大度を選択します。デフォルトは [なし] です。詳細については、LogSeverity をご覧ください。
    5. [Encryption] で、デフォルトの Google-managed encryption key を受け入れるか、[Cloud KMS key] を選択します。詳細については、顧客管理の暗号鍵(CMEK)を使用するをご覧ください。
    6. [Cloud KMS 鍵] を選択した場合は、次の操作を行います。

      1. [鍵の種類] リストで、鍵を管理する方法を選択します。

        鍵を手動で管理することも、Autokey を使用してキーリングと鍵をオンデマンドで生成することもできます。[Cloud KMS with Autokey] オプションが無効になっている場合、このオプションは現在のリソースタイプとまだ統合されていません。

      2. [Cloud KMS 鍵を選択] で鍵を選択します。

        顧客管理の暗号鍵を表示するには、リージョンを選択する必要があります。

      3. (省略可)鍵のリソース名を手動で入力するには、[顧客管理の暗号鍵を選択] リストで [手動でキーを入力] をクリックして、指定された形式で鍵の名前を入力します。

      4. プロンプトが表示されたら、Eventarc Service Agentcloudkms.cryptoKeyEncrypterDecrypter ロールを付与します。

    7. 省略可: メッセージの送信元を追加するには、 [送信元を追加] をクリックします。

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

        これにより、Google ソースから直接イベントを自動的に収集できます。

        バスと同じプロジェクトのリソースのイベントのみがパブリッシュされます。 Google Cloud詳細については、Google ソースからイベントを公開するをご覧ください。

    8. 省略可: ラベルを追加するには、 [ラベルを追加] をクリックします。ラベルは、Google Cloud リソースの整理に役立つ Key-Value ペアです。詳細については、ラベルとはをご覧ください。

  4. [作成] をクリックします。

gcloud

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

  2. gcloud beta eventarc message-buses create コマンドを使用してバスを作成します。

    gcloud beta eventarc message-buses create BUS_NAME \
        --location=REGION
    

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

    • BUS_NAME: バスの ID または完全修飾識別子
    • REGION: バスのサポートされているロケーション

      または、Google Cloud CLI の location プロパティを設定することもできます。

      gcloud config set eventarc/location REGION
      

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

    • --async: 処理中のオペレーションの完了を待たずに、コマンドからすぐに戻ります。
    • --crypto-key: 顧客管理の暗号鍵の完全修飾名を指定します。指定しない場合、 Google-owned and managed keys が使用されます。
    • --logging-config: ログエントリで記述されるイベントの最小重大度を構成します。NONEDEBUGINFONOTICEWARNINGERRORCRITICALALERTEMERGENCY のいずれかになります。デフォルトは NONE です。詳細については、LogSeverity をご覧ください。

REST API

バスを作成するには、projects.locations.messageBuses.create メソッドを使用します。

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

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

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

{
  "display_name": "BUS_NAME",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"},
  "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/messageBuses/BUS_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

バスを削除する

バスは次の方法で削除できます。

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

Console

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

    [バス] に移動

  2. 削除するバスの名前をクリックします。

    [バスの詳細] ページが開きます。

  3. [削除] をクリックします。

  4. バスを削除するよう求められたら、バスを使用するように構成されているメッセージ ソースが使用できなくなることを確認して、[続行しますか?] チェックボックスをオンにします。

  5. 削除を確定するには、「Delete」と入力します。

  6. [削除] をクリックします。

gcloud

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

  2. gcloud beta eventarc message-buses delete コマンドを使用してバスを削除します。

    gcloud beta eventarc message-buses delete BUS_NAME \
        --location=REGION
    

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

REST API

バスを削除するには、projects.locations.messageBuses.delete メソッドを使用します。

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

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

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

成功した場合、レスポンスの本文には、新しく作成された 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/messageBuses/BUS_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

次のステップ