通过事件触发

您可以创建一个 Eventarc 触发器,以便 Cloud Run 服务接收指定的一个事件或一组事件的通知。通过为触发器指定过滤条件,您可以配置事件的路由,包括事件来源以及目标 Cloud Run 服务。

发送到 Cloud Run 服务的事件会被以 HTTP 请求的形式接收。

以下事件类型会触发对您的服务的请求:

本页面介绍如何通过 Cloud Run 控制台页面创建触发器。

您还可以使用 Google Cloud CLI 或通过 Eventarc 控制台页面创建 Eventarc 触发器。按照说明为特定提供商、事件类型和目标创建触发器

准备创建触发器

在创建触发器之前,请先完成以下前提条件:

  1. 每个 Eventarc 触发器在创建时都会与一个 Identity and Access Management (IAM) 服务账号相关联。您可以指定用户管理的服务账号,供触发器作为其默认身份。请务必向触发器的服务账号授予所需的角色和权限

    例如,如需将事件发送到需要身份验证的 Cloud Run 服务,Eventarc 触发器的服务账号必须具有 Cloud Run Invoker IAM 角色。

  2. 如果要为来自 Cloud Storage 的直接事件创建触发器,请将 pubsub.publisher 角色授予 Cloud Storage 服务账号:

    SERVICE_ACCOUNT="$(gsutil kms serviceaccount -p PROJECT_ID)"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:${SERVICE_ACCOUNT}" \
        --role='roles/pubsub.publisher'
    

    PROJECT_ID 替换为您的 Google Cloud 项目 ID。您可以在 Google Cloud 控制台的欢迎页面上找到项目 ID。

通过控制台创建触发器

您可以使用 Cloud Run 控制台页面创建 Eventarc 触发器。

  1. 如有必要,请启用 Eventarc API

    启用 API

  2. 在 Google Cloud 控制台中,前往 Cloud Run

    转到 Cloud Run

  3. 从服务列表中,点击现有服务或创建新服务。

  4. 在“服务详情”页面上,点击触发器标签页。

  5. 点击 添加 Eventarc 触发器

    Eventarc 触发器窗格随即会打开。如需确定如何最好地路由事件,请参阅事件路由选项

  6. 按照说明为特定提供商、事件类型和 目标创建触发器,并参阅“创建触发器”部分中的控制台说明。

  7. 选择用于调用您的 Cloud Run 服务的服务账号

    或者,您也可以创建新的服务账号。

    这用于指定与触发器关联的 IAM 服务账号电子邮件。对于 Cloud Run 目标,此服务账号用于在调用服务时生成身份令牌。

  8. (可选)指定要将传入请求发送到的服务网址路径

    这是触发器的事件应该发送到的目标服务的相对路径。例如://routerouteroute/subroute

  9. 创建触发器后,通过确保触发器标签上有对勾标记 来验证触发器运行状况良好。

后续步骤