您可以针对特定的 Eventarc Advanced 总线,启用或停用从 Google 来源收集和发布事件的功能。
来自 Google 来源的事件由未经中介的事件直接触发,例如创建 Cloud Run 函数或 Dataflow 作业的状态发生变化。如需了解详情,请参阅 Eventarc 支持的 Google 事件类型。
请注意以下几点:
- 每个 Google Cloud 项目最多只能有 1 个
GoogleApiSource
资源。 - 您只能在与
GoogleApiSource
资源相同的 Google Cloud 项目中发布来自 Google 来源的事件。 - 您可以将事件发布到与
GoogleApiSource
资源所在的 Google Cloud 项目不同的总线。您可以使用 gcloud CLI 或通过向 Eventarc API 发送请求来配置此设置。
准备工作
如果尚未启用,请启用 Eventarc API 和 Eventarc Publishing API。
控制台
gcloud
gcloud services enable eventarc.googleapis.com eventarcpublishing.googleapis.com
启用来自 Google 来源的事件
如需发布来自 Google 来源的事件,您必须创建 GoogleApiSource
资源。此资源表示对特定 Eventarc Advanced 总线的特定 Google Cloud 项目的 Google API 事件的订阅。
您可以通过以下方式启用从 Google 来源发布事件的功能:
- 在 Google Cloud 控制台中
- 在终端或 Cloud Shell 中使用 Google Cloud CLI
向 Eventarc API 发送请求
控制台
gcloud
打开终端。
您可以使用
gcloud beta eventarc google-api-sources create
命令启用来自 Google 来源的事件:gcloud beta eventarc google-api-source create GOOGLE_API_SOURCE_NAME \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID
替换以下内容:
GOOGLE_API_SOURCE_NAME
:GoogleApiSource
资源的 ID 或完全限定标识符,用于表示针对特定总线的 Google API 事件订阅BUS_NAME
:您要订阅 Google API 事件的总线的 ID 或完全限定标识符BUS_PROJECT_ID
:总线的 Google Cloud 项目 ID
可选:您还可以使用以下标志:
--async
- 立即从命令返回,而无需等待正在进行的操作完成。--crypto-key
- 指定客户管理的加密密钥的完全限定名称;如果它尚未指定,那么系统将使用 Google-owned and managed keys 。--logging-config
- 配置日志记录级别,这必须是以下之一:NONE
、DEBUG
、INFO
、NOTICE
、WARNING
、ERROR
、CRITICAL
、ALERT
、EMERGENCY
。如需了解详情,请参阅LogSeverity
。
REST API
如需启用来自 Google 来源的事件,请使用 projects.locations.googleApiSources.create
方法。
在使用任何请求数据之前,请先进行以下替换:
GOOGLE_API_SOURCE_NAME
:GoogleApiSource
资源的显示名称,该资源表示针对特定总线的 Google API 事件的订阅,例如my_google_source
。LABEL_KEY
和LABEL_VALUE
:可选。标签键值对映射,可帮助您整理 Google Cloud 资源。如需了解详情,请参阅什么是标签?ANNOTATION_KEY
和ANNOTATION_VALUE
:可选。自由形式文本的注解键值对的映射。您可以使用它们来附加与资源关联的任意信息。如需了解详情,请参阅注解。DESTINATION
:Eventarc Advanced 总线的完全限定标识符,Google 源事件应以projects/PROJECT_NAME/locations/LOCATION/messageBuses/BUS_NAME
格式发布到该总线。 如需了解详情,请参阅创建用于路由消息的总线。ENCRYPT_KEY
:可选。GoogleApiSource
资源应使用的数据加密 Cloud KMS 密钥,格式为projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
。如需了解详情,请参阅使用客户管理的加密密钥。PROJECT_ID
:要在其中创建GoogleApiSource
资源的 Google Cloud项目 ID。LOCATION
:用于创建GoogleApiSource
资源的支持的区域,例如us-central1
。LOG_SEVERITY
:可选。日志条目中所述事件的最低严重性。以下之一:NONE
、DEBUG
、INFO
、NOTICE
、WARNING
、ERROR
、CRITICAL
、ALERT
、EMERGENCY
。默认值为NONE
。如需了解详情,请参阅LogSeverity
。
请求 JSON 正文:
{ "displayName": "GOOGLE_API_SOURCE_NAME", "labels": {"LABEL_KEY":"LABEL_VALUE"}, "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"}, "destination": "DESTINATION", "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/googleApiSources/GOOGLE_API_SOURCE_NAME", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
现在,系统会收集与 GoogleApiSource
资源位于同一 Google Cloud 项目中的 Google 来源的事件,并将其发布到总线。
停用来自 Google 来源的事件
如需禁止将特定Google Cloud 项目中的 Google 来源事件发布到 Eventarc Advanced 总线,您必须删除 GoogleApiSource
资源。
您可以通过以下方式停用从 Google 来源发布事件的功能:
- 在 Google Cloud 控制台中
- 在终端或 Cloud Shell 中使用 gcloud CLI
向 Eventarc API 发送请求
控制台
在 Google Cloud 控制台中,前往 Eventarc > 总线详情页面。
点击
修改。在修改总线页面上,如需删除 Google API 消息提供方,请针对 google-api-source 消息来源(或您为其指定的名称)点击
删除资源。在删除资源提示中,点击确认。
点击保存。
gcloud
打开终端。
您可以使用
gcloud beta eventarc google-api-sources delete
命令停用来自 Google 来源的事件:gcloud beta eventarc google-api-source delete GOOGLE_API_SOURCE_NAME \ --location=REGION
替换以下内容:
GOOGLE_API_SOURCE_NAME
:GoogleApiSource
资源的 ID 或完全限定标识符REGION
:GoogleApiSource
资源所在的位置
REST API
如需停用来自 Google 来源的事件,请使用 projects.locations.googleApiSources.delete
方法。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID
:创建GoogleApiSource
资源的 Google Cloud 项目 ID。LOCATION
:创建GoogleApiSource
资源的区域,例如us-central1
。GOOGLE_API_SOURCE_NAME
:您要删除的GoogleApiSource
资源的名称。
如需发送您的请求,请展开以下选项之一:
如果成功,响应正文将包含一个新创建的 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/googleApiSources/GOOGLE_API_SOURCE_NAME", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
与已删除的GoogleApiSource
资源位于同一 Google Cloud 项目中的 Google 来源事件不再被收集和发布。