借助 Eventarc Advanced 总线,您可以集中化、监控和跟踪消息在系统中的流动,并将其用作路由器。它会接收来自消息源或由提供方发布的事件,并根据注册来评估这些事件。注册会标识对特定总线的订阅,并定义消息的匹配条件,从而使消息能够相应地路由。如需了解详情,请参阅创建注册以接收事件。
项目或其他项目中的事件提供方和目的地可以使用总线。如需了解详情,请参阅项目布局。
所需的角色
Identity and Access Management (IAM) 角色包含一组允许您对 Google Cloud 资源执行特定操作的权限。在创建总线以路由消息时,您需要具备以下角色和权限:
- 如需获得创建总线所需的权限,请让管理员向您授予用于处理总线项目的 Eventarc Admin (
roles/eventarc.admin) 或 Eventarc Message Bus Admin (roles/eventarc.messageBusAdmin) IAM 角色。这些预定义角色包含创建总线所需的eventarc.messageBuses.create权限。 - 如需获得使用总线所需的权限,请让管理员向您授予用于处理总线项目的 Eventarc Message Bus User (
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 密钥中,选择一个密钥。
请注意,您必须先选择区域,然后才能查看客户管理的密钥。
可选:如需手动输入密钥的资源名称,请在选择客户管理的密钥列表中,点击手动输入密钥,然后以指定的格式输入密钥名称。
如果出现提示,请将
cloudkms.cryptoKeyEncrypterDecrypter角色授予 Eventarc 服务代理。
可选:如需添加消息来源,请点击 添加来源。
- 在添加消息来源窗格中,对于 Google API 消息提供方,接受默认值
google-api-source或输入其他来源名称。 点击创建。
这样一来,系统便可自动收集直接来自 Google 来源的事件。
请注意,只有来自与总线位于同一 Google Cloud项目中的资源的事件才会发布。如需了解详情,请参阅发布来自 Google 来源的事件。
- 在添加消息来源窗格中,对于 Google API 消息提供方,接受默认值
可选:如需添加标签,请点击 添加标签。标签是有助于您整理Google Cloud 资源的键值对。如需了解详情,请参阅什么是标签?
点击创建。
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 资源。如需了解详情,请参阅什么是标签?ANNOTATION_KEY和ANNOTATION_VALUE:可选。自由形式文本的注解键值对的映射。您可以使用它们来附加与资源关联的任意信息。如需了解详情,请参阅注解。ENCRYPT_KEY:可选。总线用于数据加密的 Cloud KMS 密钥,格式为projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME。如需了解详情,请参阅使用客户管理的加密密钥。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
}