借助 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 > Bus 页面。
点击
创建公交车。在创建公交车页面上,执行以下操作:
- 输入总线名称。这是您的巴士的 ID。
- 可选:输入总线显示名称,该名称将显示在总线详情页面上。
- 在区域列表中,选择要部署您的巴士的受支持的区域。
- 在日志严重程度列表中,为日志条目中所述事件选择最低严重程度。默认值为“无”。如需了解详情,请参阅
LogSeverity
。 - 对于加密,接受默认的 由 Google 管理的 加密密钥,或选择 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 消息提供程序,接受默认值
可选:如需添加标签,请点击 什么是标签?
添加标签。标签是一种键值对,可帮助您整理Google Cloud 资源。如需了解详情,请参阅
点击创建。
gcloud
打开终端。
使用
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
来配置日志条目中所述事件的最低严重级。必须为以下项之一: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 > Bus 页面。
点击要删除的公交车的名称。
系统随即会打开巴士详情页面。
点击
删除。当系统提示您删除总线时,请选中您是否要继续?复选框,以确认配置为使用该总线的所有消息来源都将无法再使用它。
如需确认删除,请输入
Delete
。点击删除。
gcloud
打开终端。
使用
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 }