创建注册以接收事件

注册标识了对特定总线的订阅。注册定义的匹配条件可决定哪些消息会路由到目的地。此外,注册还会指定匹配的消息路由时应通过的流水线。借助流水线,您可以配置目标目的地,并且在将任何匹配的事件传送到目的地之前,还可以选择对这些事件进行转换。

请注意以下几点:

  • 流水线和注册必须在同一 Google Cloud 项目中。(订阅的总线既可以在与此相同的项目中,也可以在其他项目中。)
  • 一个流水线可用于多个注册。
  • 只有一个目的地可以是通过流水线路由的消息的目标。

准备工作

在配置流水线或注册之前,您应该已经创建 Eventarc Advanced 总线

所需的角色

Identity and Access Management (IAM) 角色包含一组允许您对 Google Cloud 资源执行特定操作的权限。在创建流水线和注册以路由消息时,您需要具备以下角色和权限:

  • 如需获得创建流水线所需的权限,请让管理员向您授予用于处理流水线项目的 Eventarc Developer (roles/eventarc.developer) IAM 角色。此预定义角色包含创建流水线所需的 eventarc.pipelines.create 权限。
  • 如需获得创建注册所需的权限,请让管理员向您授予用于处理注册项目的 Eventarc Developer (roles/eventarc.developer) IAM 角色。此预定义角色包含创建注册所需的 eventarc.enrollments.create 权限。
  • 如需获得使用总线所需的权限,请让管理员向您授予用于处理总线项目的 Eventarc Message Bus User (roles/eventarc.messageBusUser) IAM 角色。此预定义角色包含使用总线所需的 eventarc.buses.use 权限。

如需详细了解如何授予角色,请参阅管理访问权限。此外,您可能还可以使用自定义角色或其他预定义角色来获取这些权限。

创建注册和流水线

您可以通过以下方式创建流水线和注册:

  • 在 Google Cloud 控制台中
  • 在终端或 Cloud Shell 中使用 Google Cloud CLI
  • 向 Eventarc API 发送请求

控制台

在 Google Cloud 控制台中,您可以通过流水线页面同时创建流水线和注册。

  1. 如需创建注册,请在 Google Cloud 控制台中依次前往 Eventarc > 流水线页面。

    打开“流水线”

  2. 点击 创建流水线

  3. 流水线详情窗格中,执行以下操作:

    1. 输入流水线名称。这是您的流水线的 ID。
    2. 区域列表中,选择要部署流水线的区域。流水线必须在与总线相同的区域内创建。如需了解详情,请参阅 Eventarc Advanced 位置
    3. 可选:在日志严重性列表中,为日志条目中所述的事件选择最低严重性。默认值为 None。如需了解详情,请参阅 LogSeverity
    4. 可选:在重试政策部分中,您可以修改默认配置以重试事件
    5. 对于加密部分,接受默认的 Google-managed encryption key 或选择 Cloud KMS 密钥。如需了解详情,请参阅使用客户管理的加密密钥 (CMEK)
    6. 如果您选择 Cloud KMS 密钥,请执行以下操作:

      1. 密钥类型列表中,选择一种密钥管理方法。

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

      2. 选择客户管理的密钥中,选择一个密钥。

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

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

      4. 如果出现提示,请将 cloudkms.cryptoKeyEncrypterDecrypter 角色授予 Eventarc 服务代理

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

    8. 点击继续

  4. 注册窗格中,执行以下操作:

    1. 点击添加注册
    2. 输入注册名称
    3. 总线列表中,选择要订阅的总线。
    4. CEL 表达式字段中,使用 CEL 编写评估表达式。例如:

      message.type == "google.cloud.dataflow.job.v1beta3.statusChanged"

      请注意,默认表达式 true 表示所有消息均会被路由,而不会被过滤。

    5. 点击完成

    6. 您可以添加其他注册,或点击继续

  5. 可选:在事件中介窗格中,执行以下操作或点击继续

    1. 选中应用转换复选框。
    2. 入站格式列表中,选择适用的格式。

      请注意,在应用转换时,您必须为流水线指定入站数据格式,并且所有事件都必须符合该格式。

    3. 对于 Avro 或 Protobuf 格式,您必须指定入站架构。(可选)您可以上传入站架构。如需了解详情,请参阅设置已接收事件的格式

    4. CEL 表达式字段中,使用 CEL 编写转换表达式。

    5. 点击继续

  6. 目标窗格中,执行以下操作:

    1. 目标类型列表中,选择要将消息路由到的目标类型。根据目标类型,执行以下操作:

      • HTTP 端点:指定目标 URI。主机可以是可从虚拟私有云 (VPC) 网络寻址的静态 IP,也可以是可使用 Cloud DNS 解析的服务的内部域名系统 (DNS) 主机名。

        例如,您可以指定一个 Cloud Run 服务网址,该网址将以 HTTP POST 请求的形式接收事件。使用首次部署 Cloud Run 托管的服务时提供的稳定的自动分配 run.app 网址。或者,您也可以指定一个 BigQuery 表,该表将接收 HTTP POST 请求形式的事件。定义消息绑定,以构建针对 BigQuery API 的 HTTP 请求。

        您还可以使用此目标类型为 Cloud Run 函数(第 1 代当前版本)指定 HTTP 端点。当您为 Cloud Run 函数指定 HTTP 触发器时,系统会为函数分配一个网址,用于接收请求。

      • Eventarc Advanced 总线:选择 Eventarc Advanced 总线。 总线必须部署在与流水线相同的项目和区域中。

      • Workflows 工作流:选择 Workflows 工作流。 您可以触发工作流的执行,即单次运行工作流定义中包含的逻辑。工作流必须部署在与流水线相同的项目中。

      • Pub/Sub 主题:选择或创建 Pub/Sub 主题。必须先创建主题,然后才能将消息路由到该主题,并且主题必须与流水线位于同一项目中。如果使用主题架构,请务必对事件消息进行适当的转换

      • Cloud Run 服务(通过 HTTP):选择 Cloud Run 服务,该服务将以 HTTP POST 请求的形式接收已发送到其根网址路径 (/) 的事件;您也可以在目标服务上指定事件应该被发送到的相对网址路径。

      • Cloud Run 作业(通过 HTTP):选择将以 HTTP POST 请求的形式接收事件的 Cloud Run 作业

    2. 如果适用,请在出站格式列表中选择一种格式。

      请注意,如果没有为流水线指定入站数据格式,则无法设置出站格式。

    3. 如果适用,请应用消息绑定。如需了解详情,请参阅定义消息绑定

    4. 如需启用身份验证,请选中启用身份验证复选框。

      1. 身份验证标头列表中,选择要生成的令牌类型,并在 HTTP 请求中作为 Authorization 标头附加:

        • 通常,只有在调用 *.googleapis.com 上托管的 Google API 时,才应使用 OAuth 令牌。(可选)指定此令牌的范围;否则,默认为 https://www.googleapis.com/auth/cloud-platform。对于Google Cloud 服务,最佳实践是使用 https://www.googleapis.com/auth/cloud-platform 范围,其中包括所有 Google Cloud API 以及可提供精细访问权限控制的 Identity and Access Management (IAM)

          请注意,所有对其他 Eventarc Advanced 总线、Pub/Sub 或 Workflows 的请求都必须具有 HTTP 授权标头,其中包含由 Google 为其中一个已获授权的服务账号签名的 OAuth 令牌。

        • OIDC 令牌可用于许多场景,其中包括您打算自行验证令牌的端点。此外,指定此令牌的目标受众群体。通常,它应与目标流水线的网址匹配。如果它尚未指定,那么系统会使用整个网址(包括所有请求参数)。

          请注意,Cloud Run 会对每个请求执行 IAM 检查,您可以使用 run.routes.invoke 权限通过以下任一方式配置谁可以访问您的 Cloud Run 服务:

          • 向选定的服务账号或群组授予此权限,以允许访问服务。所有请求都必须具有 HTTP 授权标头,其中包含由 Google 为其中一个已获授权的服务账号签名的 OpenID Connect 令牌。

          • 所有用户授予此权限,以允许未经身份验证的访问。

          如需了解详情,请参阅 Cloud Run 的访问权限控制

        详细了解令牌类型

      2. 服务账号列表中,选择将调用目标服务的服务账号。或者,您可以创建新的服务账号。

        这会指定与流水线关联且您之前向其授予了 Eventarc Advanced 所需的特定角色的 IAM 服务账号电子邮件。

  7. 点击创建

gcloud

当使用 gcloud CLI 时,请使用相应命令,首先创建流水线,然后再创建注册。

流水线

  1. 打开终端。

  2. 使用 gcloud eventarc pipelines create 命令创建流水线:

    gcloud eventarc pipelines create PIPELINE_NAME \
        --destinations=DESTINATION_KEY \
        --location=LOCATION

    替换以下内容:

    • PIPELINE_NAME:流水线的 ID 或完全限定名称
    • DESTINATION_KEY:一个或多个键值对,用于为流水线配置目标

      您必须只设置以下其中一个键:

      • http_endpoint_uri - 目标 URI。主机可以是可从虚拟私有云 (VPC) 网络寻址的静态 IP,也可以是可使用 Cloud DNS 解析的服务的内部域名系统 (DNS) 主机名。(可选)您也可以设置 http_endpoint_message_binding_template 以指定消息绑定

        您可以使用此键来定位 Cloud Run 服务网址,该网址将以 HTTP POST 请求的形式接收事件。使用首次部署 Cloud Run 托管的服务时提供的稳定的自动分配 run.app 网址。或者,您也可以指定一个 BigQuery 表,该表将接收 HTTP POST 请求形式的事件。定义消息绑定,以构建针对 BigQuery API 的 HTTP 请求。

        您还可以使用此目标类型为 Cloud Run 函数(第 1 代当前版本)指定 HTTP 端点。当您为 Cloud Run 函数指定 HTTP 触发器时,系统会为函数分配一个网址,用于接收请求。

      • message_bus - Eventarc Advanced 总线的 ID。 总线必须部署在与流水线相同的项目和区域中。

      • pubsub_topic - Pub/Sub 主题的 ID。必须先创建主题,然后才能将消息路由到该主题;如果使用主题架构,请务必对事件消息进行适当的转换

      • workflow - Workflows 工作流的 ID。 您可以触发工作流的执行,即单次运行工作流定义中包含的逻辑。工作流必须部署在与流水线相同的项目中。

      如需启用身份验证,您可以设置以下其中一个键:

      • google_oidc_authentication_service_account - 用于生成 OIDC 令牌的服务账号电子邮件,该令牌可用于许多场景,其中包括您打算自行验证令牌的端点。(可选)您可以设置 google_oidc_authentication_audience 以指定此令牌的目标受众群体。通常,它应与目标流水线的网址匹配。如果它尚未指定,那么系统会使用整个网址(包括所有请求参数)。

        请注意,Cloud Run 会对每个请求执行 IAM 检查,您可以使用 run.routes.invoke 权限通过以下任一方式配置谁可以访问您的 Cloud Run 服务:

        • 向选定的服务账号或群组授予此权限,以允许访问服务。所有请求都必须具有 HTTP 授权标头,其中包含由 Google 为其中一个已获授权的服务账号签名的 OpenID Connect 令牌。

        • 所有用户授予此权限,以允许未经身份验证的访问。

        如需了解详情,请参阅 Cloud Run 的访问权限控制

      • oauth_token_authentication_service_account - 用于生成 OAuth 令牌的服务账号电子邮件,通常,只有在调用 *.googleapis.com 上托管的 Google API 时,才应使用该令牌。(可选)您可以设置 oauth_token_authentication_scope 以指定此令牌的范围;否则,它将默认为 https://www.googleapis.com/auth/cloud-platform。对于Google Cloud 服务,最佳实践是使用 https://www.googleapis.com/auth/cloud-platform 范围,其中包括所有 Google Cloud API 以及可提供精细访问权限控制的 Identity and Access Management (IAM)

        请注意,所有对其他 Eventarc Advanced 总线、Pub/Sub 或 Workflows 的请求都必须具有 HTTP 授权标头,其中包含由 Google 为其中一个已获授权的服务账号签名的 OAuth 令牌。

        详细了解令牌类型

      可选:您可以设置以下其中一个键:

      • output_payload_format_avro_schema_definition
      • output_payload_format_json
      • output_payload_format_protobuf_schema_definition

        请注意,如果您设置了输出格式,则还必须指定输入格式(请参阅以下 input-payload-format-* 标志)。

      可选:如果您没有将 http_endpoint_uri 用作目标键,则可以设置以下键:

      • project - 目标资源的 Google Cloud 项目 ID;默认情况下,系统会使用流水线的项目 ID。
      • location - 目标资源的位置;默认情况下,系统会使用流水线的位置。
    • LOCATION受支持的 Eventarc Advanced 区域

      或者,您也可以设置 gcloud CLI 位置属性:

      gcloud config set eventarc/location LOCATION
      

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

    • --async - 立即从命令返回,而无需等待正在进行的操作完成。
    • --crypto-key - 指定客户管理的加密密钥的完全限定名称;如果它尚未指定,那么系统将使用 Google-owned and managed keys 。
    • --logging-config - 配置日志记录级别,这必须是以下之一:NONEDEBUGINFONOTICEWARNINGERRORCRITICALALERTEMERGENCY
    • --mediations - 应用转换transformation_template 是唯一受支持的模板,并且每个流水线仅支持一个中介;例如:

      --mediations=transformation_template='message.removeFields(["id\ ","credit_card_number","age"])'

      请注意,如果您要应用转换,则必须使用以下某个标志来指定输入格式。

    • 以下其中一项可指定输入格式

      • --input-payload-format-avro-schema-definition
      • --input-payload-format-json
      • --input-payload-format-protobuf-schema-definition
    • --max-retry-attempts--max-retry-delay--min-retry-delay,用于重试事件

    例如:

    gcloud eventarc pipelines create my-pipeline \
        --destinations=http_endpoint_uri='https://example-endpoint.com',oauth_token_authentication_service_account=example-service-account@example-project.gserviceaccount.iam.com,oauth_token_authentication_scope='https://www.googleapis.com/auth/cloud-platform',output_payload_format_avro_schema_definition='{"type": "record","name": "my_record", "fields": [{"name": "my_field", "type":"string"}]}' \
        --input-payload-format-avro-schema-definition='{"type":"record", "name": "my_record", "fields": [{"name": "my_field","type": "string"}]}' \
        --location=us-central1 \
        --async
    

    如需了解详情和查看示例,请参阅 gcloud CLI 文档

注册

  1. 打开终端。

  2. 使用 gcloud eventarc enrollments create 命令创建注册:

    gcloud eventarc enrollments create ENROLLMENT_NAME \
        --cel-match=MATCH_EXPRESSION \
        --destination-pipeline=PIPELINE_NAME \
        --message-bus=BUS_NAME \
        --message-bus-project=PROJECT_ID \
        --location=LOCATION

    替换以下内容:

    • ENROLLMENT_NAME:注册的 ID 或完全限定名称
    • MATCH_EXPRESSION:此注册的匹配表达式(使用 CEL)- 例如 "message.type == 'google.cloud.dataflow.job.v1beta3.statusChanged'"
    • PIPELINE_NAME:用于此注册的目标流水线 ID 或其完全限定名称
    • BUS_NAME:Eventarc Advanced 总线的 ID 或其完全限定名称
    • PROJECT_ID:该总线的 Google Cloud 项目 ID
    • LOCATION受支持的 Eventarc Advanced 区域

      或者,您也可以设置 gcloud CLI 位置属性:

      gcloud config set eventarc/location LOCATION
      

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

    • --async - 立即从命令返回,而无需等待正在进行的操作完成

    例如:

    gcloud eventarc enrollments create my-enrollment \
        --cel-match="message.type == 'google.cloud.dataflow.job.v1beta3.statusChanged'" \
        --destination-pipeline=my-pipeline \
        --message-bus=my-message-bus \
        --message-bus-project=another-google-cloud-project \
        --location=us-central1 \
        --async
    

REST API

向 Eventarc API 发送请求时,请先创建流水线,然后再创建注册。

流水线

如需创建流水线,请使用 projects.locations.pipelines.create 方法。

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

  • name:流水线的完整资源名称,格式为 projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME

    替换以下内容:

    • PROJECT_ID:流水线项目的 Google Cloud项目 ID
    • LOCATION:要部署流水线的区域,例如 us-central1
    • PIPELINE_NAME:流水线的名称
  • LABEL_KEYLABEL_VALUE:可选。标签键值对映射,可帮助您整理 Google Cloud 资源。如需了解详情,请参阅什么是标签?
  • ANNOTATION_KEYANNOTATION_VALUE:可选。自由形式文本的注解键值对的映射。您可以使用它们来附加与资源关联的任意信息。如需了解详情,请参阅注解
  • LOG_SEVERITY:可选。日志条目中所述事件的最低严重性。以下之一:NONEDEBUGINFONOTICEWARNINGERRORCRITICALALERTEMERGENCY。默认值为 NONE。如需了解详情,请参阅 LogSeverity
  • destinations:消息将转发到的目标。(可选)您可以设置 messageBindingTemplate 以指定消息绑定。 如需了解详情,请参阅 Destination 目标。仅支持一个目的地:
    • httpEndpoint:目标 URI (HTTP_URI)。主机可以是可从虚拟私有云 (VPC) 网络寻址的静态 IP,也可以是可使用 Cloud DNS 解析的服务的内部域名系统 (DNS) 主机名。

      例如,您可以指定一个 Cloud Run 服务网址,该网址将以 HTTP POST 请求的形式接收事件。使用首次部署 Cloud Run 托管的服务时提供的稳定的自动分配 run.app 网址。或者,您也可以指定一个 BigQuery 表,该表将接收作为 HTTP POST 请求的事件。定义消息绑定,以构建 BigQuery API 的 HTTP 请求。

      您还可以使用此目标类型为 Cloud Run functions 函数(第 1 代当前版本)指定 HTTP 端点。当您为 Cloud Run 函数指定 HTTP 触发器时,系统会为函数分配一个网址,用于接收请求。

    • messageBusEventarc Advanced 总线。总线必须部署在与流水线相同的项目和区域中。
    • topic:一个 Pub/Sub 主题,必须先在与流水线相同的项目中创建该主题。如果使用主题架构,请务必对事件消息进行适当的转换
    • workflowWorkflows 工作流。您可以触发工作流的执行,即单次运行工作流定义中包含的逻辑。工作流必须部署在与流水线相同的项目中。
  • SERVICE_ACCOUNT_EMAIL:用于生成 OIDC 令牌的服务账号电子邮件的名称,该令牌可用于许多场景,其中包括您打算自行验证令牌的端点。(可选)您可以设置 audience 以指定此令牌的目标受众群体。通常,它应与目标流水线的网址匹配。如果它尚未指定,那么系统会使用整个网址(包括所有请求参数)。

    或者,您可以使用 oauthToken 指定用于生成 OAuth 令牌的服务账号电子邮件,通常,只有在调用 *.googleapis.com 上托管的 Google API 时,才应使用该令牌。(可选)您可以设置 scope 以指定此令牌的范围;否则,它将默认为 https://www.googleapis.com/auth/cloud-platform。对于 Google Cloud服务,最佳实践是使用 https://www.googleapis.com/auth/cloud-platform 范围,其中包括所有 Google Cloud API 以及可提供精细访问权限控制的 Identity and Access Management (IAM)

    请注意,所有对其他 Eventarc Advanced 总线、Pub/Sub 或 Workflows 的请求都必须具有 HTTP 授权标头,其中包含由 Google 为其中一个已获授权的服务账号签名的 OAuth 令牌。

    详细了解令牌类型

请求 JSON 正文:

{
  "name": "projects/PROJECT_ID/regions/LOCATION/pipelines/PIPELINE_NAME",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"},
  "loggingConfig": {"logSeverity":"LOG_SEVERITY"},
  "destinations": [{"httpEndpoint": {"uri": "HTTP_URI"},
  "authenticationConfig": {"googleOidc": {"serviceAccount": "SERVICE_ACCOUNT_EMAIL"}}}]
}

如需发送您的请求,请展开以下选项之一:

如果成功,响应正文将包含一个新创建的 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/pipelines/PIPELINE_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

注册

如需创建注册,请使用 projects.locations.enrollments.create 方法。

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

  • ENROLLMENT_NAME:注册的显示名称,例如 my_enrollment
  • MATCH_EXPRESSIONCEL 表达式,用于标识此注册适用于哪些消息。例如 message.type == 'hello-world-type'
  • destination:目标流水线的完整资源名称,格式为 projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME

    替换以下内容:

    • PROJECT_ID:流水线项目的 Google Cloud项目 ID
    • LOCATION:部署流水线的区域,例如 us-central1
    • PIPELINE_NAME:流水线的名称
  • message_bus:标识消息来源的总线的完整资源名称,格式为 projects/BUS_PROJECT_ID/locations/BUS_LOCATION/messageBuses/BUS_NAME

    替换以下内容:

    • BUS_PROJECT_ID:总线项目的 Google Cloud 项目 ID
    • BUS_LOCATION:部署总线的区域,例如 us-central1
    • BUS_NAME:消息总线的名称

请求 JSON 正文:

{
  "display_name": "ENROLLMENT_NAME",
  "cel_match": "MATCH_EXPRESSION",
  "message_bus": "projects/BUS_PROJECT_ID/locations/BUS_LOCATION/messageBuses/BUS_NAME",
  "destination": "projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_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/enrollments/ENROLLMENT_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

列出注册

您可以通过以下方式列出注册:

  • 在 Google Cloud 控制台中
  • 在终端或 Cloud Shell 中使用 gcloud CLI
  • 向 Eventarc API 发送请求

控制台

  1. 如需列出特定流水线的注册,请在 Google Cloud 控制台中,前往 Eventarc > 流水线页面。

    打开“流水线”

  2. 点击要列出注册的流水线的名称。

    系统会打开流水线详情页面。

    注册标签页中,系统会列出与流水线关联的所有注册。

gcloud

  1. 打开终端。

  2. 使用 gcloud eventarc enrollments list 命令列出注册:

    gcloud eventarc enrollments list \
        --location=LOCATION

    LOCATION 替换为受支持的 Eventarc 高级版地区

REST API

如需列出注册,请使用 projects.locations.enrollments.list 方法。

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

  • PROJECT_ID:您的 Google Cloud项目 ID。
  • LOCATION:创建注册的区域,例如 us-central1

如需发送您的请求,请展开以下选项之一:

如果成功,则响应正文包含 Enrollment 的实例,并且响应应类似如下内容:

{
  "enrollments": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/enrollments/ENROLLMENT_NAME",
      "uid": "06e396f5-2d4f-43d2-961f-fd2c88403326",
      "createTime": "2025-03-26T17:57:25.214845320Z",
      "updateTime": "2025-03-26T17:57:45.136172180Z",
      "celMatch": "message.type == \"hello-world-type\"",
      "messageBus": "projects/PROJECT_ID/locations/LOCATION/messageBuses/BUS_NAME",
      "destination": "projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME"
    },
    {...}
  ]
}

删除注册

您可以通过以下方式删除注册:

  • 在 Google Cloud 控制台中
  • 在终端或 Cloud Shell 中使用 gcloud CLI
  • 向 Eventarc API 发送请求

控制台

  1. 如需删除注册,请在 Google Cloud 控制台中依次前往 Eventarc > 流水线页面。

    打开“流水线”

  2. 点击要从中删除注册的流水线的名称。

    此时会打开流水线详情窗格。

  3. 点击 修改

  4. 点击继续

    此时会打开注册窗格。

  5. 对于要删除的注册,请点击 删除图标。

  6. 点击保存

gcloud

  1. 打开终端。

  2. 使用 gcloud eventarc enrollments delete 命令删除注册:

    gcloud eventarc enrollments delete ENROLLMENT_NAME \
          --location=LOCATION

    替换以下内容:

REST API

如需删除注册,请使用 projects.locations.enrollments.delete 方法。

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

  • ENROLLMENT_NAME:要删除的注册的显示名称,例如 my_enrollment
  • PROJECT_ID:您的 Google Cloud项目 ID。
  • LOCATION:部署注册的区域,例如 us-central1

如需发送您的请求,请展开以下选项之一:

如果成功,响应正文将包含一个新创建的 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/enrollments/ENROLLMENT_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

列出流水线

您可以通过以下方式列出流水线:

  • 在 Google Cloud 控制台中
  • 在终端或 Cloud Shell 中使用 gcloud CLI
  • 向 Eventarc API 发送请求

控制台

在 Google Cloud 控制台中,前往 Eventarc > 流水线页面。

打开“流水线”

系统会列出所有流水线。您可以选择使用 过滤条件来限制搜索范围。

gcloud

  1. 打开终端。

  2. 使用 gcloud eventarc pipelines list 命令列出注册:

    gcloud eventarc pipelines list \
        --location=LOCATION

    LOCATION 替换为受支持的 Eventarc 高级版地区

REST API

如需列出流水线,请使用 projects.locations.pipelines.list 方法。

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

  • PROJECT_ID:您的 Google Cloud项目 ID。
  • LOCATION:创建流水线的区域,例如 us-central1

如需发送您的请求,请展开以下选项之一:

如果成功,则响应正文包含 Pipeline 的实例,并且响应应类似如下内容:

{
  "pipelines": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME",
      "createTime": "2025-01-10T20:32:11.606516066Z",
      "updateTime": "2025-03-26T18:02:34.886616683Z",
      "uid": "7d58dd18-323a-43f6-a456-4f8c20a70218",
      "destinations": [
        {
          "httpEndpoint": {
            "uri": "HTTP_URI"
          },
          "authenticationConfig": {
            "googleOidc": {
              "serviceAccount": "SERVICE_ACCOUNT_EMAIL"
            }
          }
        }
      ],
      "loggingConfig": {
        "logSeverity": "NONE"
      },
      "retryPolicy": {
        "maxAttempts": 5,
        "minRetryDelay": "1s",
        "maxRetryDelay": "60s"
      }
    },
    {...}
  ]
}

删除流水线

您可以通过以下方式删除流水线:

  • 在 Google Cloud 控制台中
  • 在终端或 Cloud Shell 中使用 gcloud CLI
  • 向 Eventarc API 发送请求

请注意,删除流水线可能需要 10 多分钟时间。

控制台

  1. 如需删除流水线,请在 Google Cloud 控制台中依次前往 Eventarc > 流水线页面。

    打开“流水线”

  2. 在流水线列表中,选中要删除的流水线名称旁边的复选框。

  3. 点击 删除

  4. 输入 Delete 以确认删除。

  5. 点击删除

gcloud

  1. 打开终端。

  2. 使用 gcloud eventarc pipelines delete 命令删除流水线:

    gcloud eventarc pipelines delete PIPELINE_NAME \
          --location=LOCATION

    替换以下内容:

REST API

如需删除流水线,请使用 projects.locations.pipelines.delete 方法。

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

  • PIPELINE_NAME:要删除的流水线的显示名称,例如 my_pipeline
  • PROJECT_ID:您的 Google Cloud项目 ID。
  • LOCATION:部署流水线的区域,例如 us-central1

如需发送您的请求,请展开以下选项之一:

如果成功,响应正文将包含一个新创建的 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/pipelines/PIPELINE_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

后续步骤