创建用于路由消息的总线

借助 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 发送请求

控制台

  1. 在 Google Cloud 控制台中,依次前往 Eventarc > Bus 页面。

    前往“公交”

  2. 点击 创建公交车

  3. 创建公交车页面上,执行以下操作:

    1. 输入总线名称。这是您的巴士的 ID。
    2. 可选:输入总线显示名称,该名称将显示在总线详情页面上。
    3. 区域列表中,选择要部署您的巴士的受支持的区域
    4. 日志严重程度列表中,为日志条目中所述事件选择最低严重程度。默认值为“无”。如需了解详情,请参阅 LogSeverity
    5. 对于加密,接受默认的 由 Google 管理的 加密密钥,或选择 Cloud KMS 密钥。如需了解详情,请参阅使用客户管理的加密密钥 (CMEK)
    6. 如果您选择 Cloud KMS 密钥,请执行以下操作:

      1. 密钥类型列表中,选择用于管理密钥的方法。

        您可以手动管理密钥,也可以使用 Autokey,以按需生成密钥环和密钥。如果 Cloud KMS with Autokey 选项不可用,则表明其尚未与当前的资源类型集成。

      2. 选择 Cloud KMS 密钥中,选择一个密钥。

        请注意,您必须先选择区域,然后才能查看客户管理的密钥。

      3. 可选:如需手动输入密钥的资源名称,请在选择客户管理的密钥列表中,点击手动输入密钥,然后以指定格式输入密钥名称。

      4. 如果出现提示,请向 Eventarc Service Agent 授予 cloudkms.cryptoKeyEncrypterDecrypter 角色

    7. 可选:如需添加消息来源,请点击 添加来源

      1. 添加消息来源窗格中,对于 Google API 消息提供程序,接受默认值 google-api-source 或输入其他来源名称。
      2. 点击创建

        这样,系统便会自动收集直接来自 Google 来源的事件。

        请注意,只有与该总线位于同一 Google Cloud项目中的资源发出的事件才会发布。如需了解详情,请参阅发布来自 Google 来源的事件

    8. 可选:如需添加标签,请点击 添加标签。标签是一种键值对,可帮助您整理Google Cloud 资源。如需了解详情,请参阅什么是标签?

  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 位置属性:

      gcloud config set eventarc/location REGION
      

    可选:您还可以使用以下标志:

    • --async 以立即从命令返回,而无需等待正在进行的操作完成。
    • --crypto-key 用于指定客户管理的加密密钥的完全限定名称;如果未指定,则系统会使用由 的 Google 拥有且管理的 密钥。
    • --logging-config 来配置日志条目中所述事件的最低严重级。必须为以下项之一:NONEDEBUGINFONOTICEWARNINGERRORCRITICALALERTEMERGENCY。默认值为 NONE。如需了解详情,请参阅 LogSeverity

REST API

如需创建公交车,请使用 projects.locations.messageBuses.create 方法。

在使用任何请求数据之前,请先进行以下替换:

  • BUS_NAME:公交车的显示名称,例如 my_bus
  • LABEL_KEYLABEL_VALUE:可选。标签键值对的映射,可帮助您整理 Google Cloud 资源。如需了解详情,请参阅什么是标签?
  • ANNOTATION_KEYANNOTATION_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:可选。日志条目中所述事件的最低严重级别。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 控制台中
  • 在终端或 Cloud Shell 中使用 gcloud CLI
  • 向 Eventarc API 发送请求

控制台

  1. 在 Google Cloud 控制台中,依次前往 Eventarc > Bus 页面。

    前往“公交”

  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
    

    替换以下内容:

    • 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
}

后续步骤