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 コンソールで
- ターミナルまたは Cloud Shell で Google Cloud CLI を使用する
- Eventarc API にリクエストを送信する
コンソール
- Google Cloud コンソールで、[Eventarc] > [バス] ページに移動します。 
- [ バスを作成] をクリックします。 
- [バスの作成] ページで、次の操作を行います。 - バス名を入力します。これはバスの ID です。
- 省略可: [バスの表示名] に、[バスの詳細] ページに表示される名前を入力します。
- [リージョン] リストで、バスをデプロイするサポートされているリージョンを選択します。
- [ログの重大度] リストで、ログエントリに記述されているイベントの最小重大度を選択します。デフォルトは None です。詳細については、LogSeverityをご覧ください。
- [暗号化] で、デフォルトの Google-managed encryption key を受け入れるか、[Cloud KMS 鍵] を選択します。詳細については、顧客管理の暗号鍵(CMEK)を使用するをご覧ください。
- [Cloud KMS 鍵] を選択した場合は、次の操作を行います。 - [鍵の種類] リストで、鍵を管理する方法を選択します。 - 鍵は手動で管理することも、Autokey を使用してオンデマンドでキーリングと鍵を生成することもできます。[Cloud KMS with Autokey] オプションが無効になっている場合、このオプションは現在のリソースタイプとまだ統合されていません。 
- [Cloud KMS 鍵の選択] で、鍵を選択します。 - 顧客管理の暗号鍵を表示するには、リージョンを選択する必要があります。 
- (省略可)鍵のリソース名を手動で入力するには、[顧客管理の暗号鍵を選択] リストで [手動でキーを入力] をクリックして、指定された形式で鍵の名前を入力します。 
- プロンプトが表示されたら、Eventarc サービス エージェントに - cloudkms.cryptoKeyEncrypterDecrypterロールを付与します。
 
- 省略可: メッセージ ソースを追加するには、 [ソースを追加] をクリックします。 - [メッセージ ソースを追加] ペインで、Google API メッセージ プロバイダのデフォルトの google-api-sourceをそのまま使用するか、別のソース名を入力します。
- [作成] をクリックします。 - これにより、Google ソースから直接取得されるイベントの自動収集が有効になります。 - バスと同じ Google Cloudプロジェクト内のリソースからのイベントのみが公開されます。詳細については、Google ソースからイベントをパブリッシュするをご覧ください。 
 
- [メッセージ ソースを追加] ペインで、Google API メッセージ プロバイダのデフォルトの 
- 省略可: ラベルを追加するには、 [ラベルを追加] をクリックします。ラベルは、Google Cloud リソースの整理に役立つ Key-Value ペアです。詳細については、ラベルとはをご覧ください。 
 
- [作成] をクリックします。 
gcloud
- ターミナルを開きます。 
- gcloud eventarc message-buses createコマンドを使用してバスを作成します。- gcloud eventarc message-buses create BUS_NAME \ --location=REGION- 次のように置き換えます。 - BUS_NAME: バスの ID または完全修飾識別子
- REGION: バスのサポートされているロケーション- または、Google Cloud CLI のロケーション プロパティを設定することもできます。 - gcloud config set eventarc/location REGION
 - 省略可: 次のフラグも使用できます。 - --async: 処理中のオペレーションの完了を待たずに、直ちにコマンドを終了します。
- --crypto-key: 顧客管理の暗号鍵の完全修飾名を指定します。指定しない場合は、 Google-owned and managed keys が使用されます。
- --logging-config: ログエントリに記述されているイベントの最小重大度を構成します。- NONE、- DEBUG、- INFO、- NOTICE、- WARNING、- ERROR、- CRITICAL、- ALERT、- EMERGENCYのいずれかである必要があります。デフォルトは- NONEです。詳細については、- LogSeverityをご覧ください。
 
REST API
バスを作成するには、projects.locations.messageBuses.create メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- BUS_NAME: バスの表示名(例:- my_bus)。
- LABEL_KEY、- LABEL_VALUE: 省略可。 Google Cloud リソースの整理に役立つラベルの Key-Value ペアのマップです。詳細については、ラベルとはをご覧ください。
- ANNOTATION_KEY、- ANNOTATION_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: 省略可。ログエントリに記述されているイベントの最小重大度。- NONE、- DEBUG、- INFO、- NOTICE、- WARNING、- ERROR、- CRITICAL、- ALERT、- EMERGENCYのいずれか。デフォルトは- 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 コンソールで
- ターミナルまたは Cloud Shell で gcloud CLI を使用する
- Eventarc API にリクエストを送信する
コンソール
- Google Cloud コンソールで、[Eventarc] > [バス] ページに移動します。 - [バスの詳細] ページが開きます。 
- [削除] をクリックします。 
- バスの削除を求めるメッセージが表示されたら、バスを使用するように構成されているメッセージ ソースが使用できなくなることを確認し、[続行しますか?] チェックボックスをオンにします。 
- 削除を確定するには、「 - Delete」と入力します。
- [削除] をクリックします。 
gcloud
- ターミナルを開きます。 
- gcloud eventarc message-buses deleteコマンドを使用してバスを削除します。- gcloud eventarc message-buses delete BUS_NAME \ --location=REGION- 次のように置き換えます。 - BUS_NAME: バスの ID または完全修飾識別子
- 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
}