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権限が含まれています。 - パイプラインと登録を作成するには、追加の権限が必要です。詳細については、登録の作成に必要なロールをご覧ください。
ロールの付与の詳細については、 アクセス権の管理をご覧ください。カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
バスの作成
バスは次の方法で作成できます。
コンソール
コンソールで、 [Eventarc] [>] [バス] ページに移動します。 Google Cloud
Click [Create bus].
[バスを作成] ページで、次の操作を行います。
- バス名 を入力します。これはバスの ID です。
- 省略可: [バスの詳細] ページに表示されるバスの表示名 を入力します。
- [**リージョン**] リストで、 サポート対象リージョンを選択してバスをデプロイします。
- [ログの重大度] リストで、ログエントリに記述されているイベントの最小重大度を選択します。デフォルトは [なし] です。詳細については、
LogSeverityをご覧ください。 - [**暗号化**] で、デフォルトの Google-managed encryption keyを受け入れるか、 [**Cloud KMS 鍵**]を選択します。詳細については、 顧客管理の暗号鍵(CMEK)の使用をご覧ください。
[Cloud KMS 鍵] を選択した場合は、次の操作を行います。
[鍵のタイプ] リストで、鍵を管理する方法を選択します。
鍵は手動で管理することも、 Autokey を使用してキー リングと鍵をオンデマンドで生成することもできます。[Cloud KMS with Autokey] オプションが無効になっている場合、現在のリソースタイプとまだ統合されていません。
[Cloud KMS 鍵を選択] で、鍵を選択します。
顧客管理の暗号鍵を表示するには、リージョンを選択する必要があります。
(省略可)鍵のリソース名を手動で入力するには、 [顧客管理の暗号鍵を選択] リストで [手動でキーを入力] をクリックして、指定された形式で鍵の名前を入力します。
プロンプトが表示されたら、Eventarc Service Agent に
cloudkms.cryptoKeyEncrypterDecrypterロール を付与します 。
(省略可)メッセージ ソースを追加するには、 [ソースを追加] をクリックします。
- [メッセージ ソースを追加] ペインで、Google API メッセージ プロバイダのデフォルトの
google-api-sourceをそのまま使用するか、別のソース名を入力します。 [作成] をクリックします。
これにより、Google ソースから直接送信されるイベントの自動収集が有効になります。
バスと同じ Google Cloud プロジェクト内のリソースからのイベントのみが公開されます。詳細については、 Google ソースからイベントを公開するをご覧ください。
- [メッセージ ソースを追加] ペインで、Google API メッセージ プロバイダのデフォルトの
(省略可)ラベルを追加するには、 [Add label] をクリックします。ラベルは、リソースの整理に役立つ Google Cloud Key-Value ペアです。詳細については、 ラベルとはをご覧ください。
[作成] をクリックします。
gcloud
ターミナルを開きます。
gcloud eventarc message-buses createコマンドを使用してバスを作成します。gcloud eventarc message-buses create BUS_NAME \ --location=REGION次のように置き換えます。
BUS_NAME: バスの ID または完全修飾された IDREGION: バスの サポートされているロケーションまたは、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: 省略可。リソースの整理に役立つラベル Key-Value ペアのマップです。 Google Cloud 詳細については、 ラベルとは をご覧ください。ANNOTATION_KEY、ANNOTATION_VALUE: 省略可。自由形式のテキストのアノテーション Key-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
}
バスを削除する
バスは次の方法で削除できます。
コンソール
コンソールで、 [Eventarc] [>] [バス] ページに移動します。 Google Cloud
[バスの詳細] ページが開きます。
[Delete] をクリックします。
バスの削除を求めるプロンプトが表示されたら、バスを使用するように構成されているメッセージ ソースが使用できなくなることを確認し、[続行しますか?] チェックボックスをオンにします。
削除を確定するには、「
Delete」と入力します。[削除] をクリックします。
gcloud
ターミナルを開きます。
gcloud eventarc message-buses deleteコマンドを使用してバスを削除します。gcloud eventarc message-buses delete BUS_NAME \ --location=REGION次のように置き換えます。
BUS_NAME: バスの ID または完全修飾された IDREGION: バスの サポートされているロケーション
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
}