借助 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
}