通过事件触发

Eventarc 是一种 Google Cloud 服务,可让您构建事件驱动型架构,而无需实现、自定义或维护底层基础架构。

您可以通过为触发器指定过滤条件并配置事件路由(包括事件来源和目标 Cloud Run 服务)来创建 Eventarc 触发器。当指定的事件或一组事件与过滤条件匹配时,系统会自动调用您的 Cloud Run 服务来响应相应事件。

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

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

本页面介绍了如何通过 Cloud Run 控制台页面为服务创建触发器。如需查看有关如何为函数创建触发器的类似说明,请参阅在 Cloud Run 中部署函数

您还可以使用 Google Cloud CLI 或通过 Eventarc 控制台页面创建 Eventarc 触发器。如需了解如何为特定提供方、事件类型和目的地创建触发器,请过滤列表,详细了解 Eventarc 的事件提供方和目的地

准备工作

在使用 Eventarc 创建触发器之前,请了解触发器身份所需的角色。

  1. 启用 Eventarc API

    启用 API

  2. 每个 Eventarc 触发器在创建时都会与一个 Identity and Access Management (IAM) 服务账号相关联。此服务账号称为触发器服务账号,用于调用 Eventarc API。例如,如需将事件发送到需要身份验证的 Cloud Run 服务,请确保向触发器身份授予了 Cloud Run Invoker IAM (roles/run.invoker) 角色。

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

    SERVICE_ACCOUNT="$(gcloud storage service-agent --project=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. 在 Google Cloud 控制台中,前往 Cloud Run

    转到 Cloud Run

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

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

  4. 点击 添加 Eventarc 触发器

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

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

  6. 选择用于调用您的 Cloud Run 服务的服务账号,或创建新的服务账号。

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

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

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

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

后续步骤