使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

使用 Cloud Audit Logs 和控制台创建触发器

本快速入门介绍如何在未经身份验证的 Cloud Run 服务中接收来自 Cloud Storage 的直接事件。

您可以使用控制台完成本快速入门。如需了解 Google Cloud CLI 的使用说明,请参阅使用 Cloud Audit Logs 接收事件 (gcloud CLI)

在本快速入门中,您将执行以下操作:

  1. 创建一个 Cloud Storage 存储桶作为事件来源。

  2. 将事件接收器服务部署到 Cloud Run。

  3. 创建 Eventarc 触发器以过滤并路由事件。

  4. 通过将文件上传到 Cloud Storage 存储桶来生成事件,并在 Cloud Run 日志中查看该事件。


如需在控制台中直接获取有关此任务的分步指导,请点击操作演示

操作演示


以下部分将引导您完成与点击操作演示相同的步骤。

准备工作

如果您的组织将限制应用于您的 Google Cloud 环境,则本文档中的某些步骤可能无法正常工作。在这种情况下,您可能无法完成创建公共 IP 地址或服务帐号密钥等任务。如果您发出的请求会返回有关限制条件的错误,请参阅如何在受限的 Google Cloud 环境中开发应用

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能

  4. 启用 Cloud Build and Eventarc API。

    启用 API

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能

  7. 启用 Cloud Build and Eventarc API。

    启用 API

创建 Cloud Storage 存储桶

本快速入门使用 Cloud Storage 作为事件来源。

  1. 在控制台中,转到 Cloud Storage

    转到 Cloud Storage

  2. 点击 创建存储桶

    新存储分区。

  3. 为您的存储桶输入一个独一无二的名称。 例如 helloworld-bucket

  4. 点击继续

  5. 对于位置类型,请选择区域,然后选择 us-central1(爱荷华)

  6. 接受其他默认设置。

  7. 点击创建

创建事件来源后,您便可以将事件接收器服务部署到 Cloud Run。

将事件接收器服务部署到 Cloud Run

部署接收和记录事件的 Cloud Run 服务。

  1. 将示例代码库克隆到 GitHub 帐号:

    Go

    1. 在 GitHub 上,导航到 GoogleCloudPlatform/golang-samples

    2. 点击创建分支 (Fork)。

      Fork 按钮的屏幕截图

    3. 如果出现提示,请选择克隆代码库的位置。

    Java

    1. 在 GitHub 上,导航到 GoogleCloudPlatform/java-docs-samples

    2. 点击创建分支 (Fork)。

      Fork 按钮的屏幕截图

    3. 如果出现提示,请选择克隆代码库的位置。

    .NET

    1. 在 GitHub 上,导航到 GoogleCloudPlatform/dotnet-docs-samples

    2. 点击创建分支 (Fork)。

      Fork 按钮的屏幕截图

    3. 如果出现提示,请选择克隆代码库的位置。

    Node.js

    1. 在 GitHub 上,导航到 GoogleCloudPlatform/nodejs-docs-samples

    2. 点击创建分支 (Fork)。

      Fork 按钮的屏幕截图

    3. 如果出现提示,请选择克隆代码库的位置。

    Python

    1. 在 GitHub 上,导航到 GoogleCloudPlatform/python-docs-samples

    2. 点击创建分支 (Fork)。

      Fork 按钮的屏幕截图

    3. 如果出现提示,请选择克隆代码库的位置。

  2. 在控制台中,转到 Cloud Run

    转到 Cloud Run

  3. 点击 创建服务

  4. 创建服务表单中,选择从源代码库持续部署新修订版本

  5. 点击设置 Cloud Build

  6. 设置 Cloud Build 表单中,完成以下步骤:

    通过 Cloud Build 页面进行设置

    1. 出现提示时,请启用 Cloud Build API
    2. 代码库提供方列表中,选择 GitHub

    3. 代码库列表中,选择创建分支的 GitHub 代码库。

    4. 选择 GitHub 帐号和代码库后,选中复选框以接受许可免责声明的条款,然后点击下一步

    5. 分支字段保留为 ^main$

    6. 对于 Build 类型,请选择 Dockerfile 并提供 Dockerfile 的来源位置:

      eventarc/audit-storage/Dockerfile
      

      或者,对于 Go 示例:

      eventarc/audit_storage/Dockerfile
      
    7. 点击保存

  7. 创建服务表单中,输入服务名称。例如 helloworld-events

  8. 接受区域默认值作为您的服务位置;例如 us-central1(爱荷华)

  9. 接受 CPU 分配和价格以及自动扩缩默认设置。

  10. 入站流量部分中,选择允许所有流量

  11. 身份验证部分中,选择允许未通过身份验证的调用

  12. 点击创建

创建 Eventarc 触发器

Eventarc 触发器会将来自 Cloud Storage 存储桶的事件发送到 helloworld-events Cloud Run 服务。

  1. 在控制台中,转到 Eventarc

    转到 Eventarc

  2. 点击 创建触发器

  3. 输入触发器名称

    例如 helloworld-trigger

  4. 事件提供方列表中,选择 Google 来源 > Cloud Storage

  5. 事件列表中,选择直接 > google.cloud.storage.object.v1.finalized

  6. 存储桶部分,指定您之前创建的 helloworld-bucket Cloud Storage 存储桶。

  7. 如果出现提示,请授予以下权限:

    • iam.serviceAccountTokenCreator 角色授予 Pub/Sub 服务帐号
    • pubsub.publisher 角色授予给 Cloud Storage 服务帐号
  8. 使用默认计算服务帐号作为调用您的服务的服务帐号。

  9. 事件目标位置列表中,选择 Cloud Run

  10. Cloud Run 服务部分,选择您之前创建的 helloworld-events 服务。

  11. 点击创建

生成并查看事件

生成事件并确认 Eventarc 触发器是否按预期工作。

  1. 要生成事件,请执行以下操作:

    1. 使用文件名 random.txt 和文本“Hello World”创建文本文件。

    2. 在控制台中,转到 Cloud Storage

      转到 Cloud Storage

    3. 点击您创建的存储桶的名称。

    4. 对象标签页中,点击上传文件,然后上传 random.txt 文件。

    上传操作会生成事件,而 Cloud Run 服务会记录事件的消息。

  2. 如需查看日志条目,请执行以下操作:

    1. 在控制台中,转到 Cloud Run

      转到 Cloud Run

    2. 点击您创建的服务的名称。

    3. 如需检索此服务的所有修订版本的日志条目,请在服务详情页面中点击日志标签页。您可以按日志严重级别进行过滤。

    4. 查找类似如下的日志条目:

      Received event of type google.cloud.storage.object.v1.finalized. Event data: [...]

恭喜!您已成功将事件接收器服务部署到 Cloud Run,创建 Eventarc 触发器,在 Cloud Storage 中生成事件并在 Cloud Run 日志中查看该事件。

清理

虽然当服务未在使用时 Cloud Run 不会产生费用,但您可能仍然需要为在 Container Registry 中存储容器映像Cloud Run 资源以及在 Cloud Storage 存储分区中存储文件付费。

您可以删除映像删除存储桶以及删除服务

要删除 Eventarc 触发器,请运行以下命令:

  1. 在控制台中,转到 Eventarc

    转到 Eventarc

  2. 点击您创建的触发器的名称。

  3. 触发器详情页面上,点击 删除

或者,您也可以删除 Google Cloud 项目,以避免产生费用。删除 Cloud 项目后,系统即会停止对该项目中使用的所有资源计费。

  1. 在 Google Cloud 控制台中,转到管理资源页面:

    转到“管理资源”

  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关闭以删除项目。

后续步骤