使用 Cloud Audit Logs 和控制台创建触发器
本快速入门介绍如何在未经身份验证的 Cloud Run 服务中接收来自 Cloud Storage 的直接事件。
您可以使用控制台完成本快速入门。如需了解 Google Cloud CLI 的使用说明,请参阅使用 Cloud Audit Logs 接收事件 (gcloud CLI)。
在本快速入门中,您将执行以下操作:
创建一个 Cloud Storage 存储桶作为事件来源。
将事件接收器服务部署到 Cloud Run。
创建 Eventarc 触发器以过滤并路由事件。
通过将文件上传到 Cloud Storage 存储桶来生成事件,并在 Cloud Run 日志中查看该事件。
如需在控制台中直接获取有关此任务的分步指导,请点击操作演示:
以下部分将引导您完成与点击操作演示相同的步骤。
准备工作
如果您的组织将限制应用于您的 Google Cloud 环境,则本文档中的某些步骤可能无法正常工作。在这种情况下,您可能无法完成创建公共 IP 地址或服务帐号密钥等任务。如果您发出的请求会返回有关限制条件的错误,请参阅如何在受限的 Google Cloud 环境中开发应用。
- 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Cloud Build and Eventarc API。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Cloud Build and Eventarc API。
创建 Cloud Storage 存储桶
本快速入门使用 Cloud Storage 作为事件来源。在控制台中,转到 Cloud Storage。
点击
创建存储桶。为您的存储桶输入一个独一无二的名称。 例如
helloworld-bucket
。点击继续。
对于位置类型,请选择区域,然后选择 us-central1(爱荷华)。
接受其他默认设置。
点击创建。
创建事件来源后,您便可以将事件接收器服务部署到 Cloud Run。
将事件接收器服务部署到 Cloud Run
部署接收和记录事件的 Cloud Run 服务。
将示例代码库克隆到 GitHub 帐号:
Go
在 GitHub 上,导航到 GoogleCloudPlatform/golang-samples。
点击创建分支 (Fork)。
如果出现提示,请选择克隆代码库的位置。
Java
在 GitHub 上,导航到 GoogleCloudPlatform/java-docs-samples。
点击创建分支 (Fork)。
如果出现提示,请选择克隆代码库的位置。
.NET
在 GitHub 上,导航到 GoogleCloudPlatform/dotnet-docs-samples。
点击创建分支 (Fork)。
如果出现提示,请选择克隆代码库的位置。
Node.js
在 GitHub 上,导航到 GoogleCloudPlatform/nodejs-docs-samples。
点击创建分支 (Fork)。
如果出现提示,请选择克隆代码库的位置。
Python
在 GitHub 上,导航到 GoogleCloudPlatform/python-docs-samples。
点击创建分支 (Fork)。
如果出现提示,请选择克隆代码库的位置。
在控制台中,转到 Cloud Run。
点击
创建服务。在创建服务表单中,选择从源代码库持续部署新修订版本。
点击设置 Cloud Build。
在设置 Cloud Build 表单中,完成以下步骤:
- 出现提示时,请启用 Cloud Build API。
在代码库提供方列表中,选择 GitHub。
在代码库列表中,选择创建分支的 GitHub 代码库。
选择 GitHub 帐号和代码库后,选中复选框以接受许可免责声明的条款,然后点击下一步。
让分支字段保留为
^main$
。对于 Build 类型,请选择 Dockerfile 并提供 Dockerfile 的来源位置:
eventarc/audit-storage/Dockerfile
或者,对于 Go 示例:
eventarc/audit_storage/Dockerfile
点击保存。
在创建服务表单中,输入服务名称。例如
helloworld-events
。接受区域默认值作为您的服务位置;例如 us-central1(爱荷华)。
接受 CPU 分配和价格以及自动扩缩默认设置。
在入站流量部分中,选择允许所有流量。
在身份验证部分中,选择允许未通过身份验证的调用。
点击创建。
创建 Eventarc 触发器
Eventarc 触发器会将来自 Cloud Storage 存储桶的事件发送到helloworld-events
Cloud Run 服务。
在控制台中,转到 Eventarc。
点击
创建触发器。输入触发器名称。
例如
helloworld-trigger
。在事件提供方列表中,选择 Google 来源 > Cloud Storage。
在事件列表中,选择直接 > google.cloud.storage.object.v1.finalized。
在存储桶部分,指定您之前创建的 helloworld-bucket Cloud Storage 存储桶。
如果出现提示,请授予以下权限:
- 将
iam.serviceAccountTokenCreator
角色授予 Pub/Sub 服务帐号 - 将
pubsub.publisher
角色授予给 Cloud Storage 服务帐号
- 将
使用默认计算服务帐号作为调用您的服务的服务帐号。
在事件目标位置列表中,选择 Cloud Run。
在 Cloud Run 服务部分,选择您之前创建的 helloworld-events 服务。
点击创建。
生成并查看事件
生成事件并确认 Eventarc 触发器是否按预期工作。
要生成事件,请执行以下操作:
使用文件名
random.txt
和文本“Hello World”创建文本文件。在控制台中,转到 Cloud Storage。
点击您创建的存储桶的名称。
在对象标签页中,点击上传文件,然后上传
random.txt
文件。
上传操作会生成事件,而 Cloud Run 服务会记录事件的消息。
如需查看日志条目,请执行以下操作:
在控制台中,转到 Cloud Run。
点击您创建的服务的名称。
如需检索此服务的所有修订版本的日志条目,请在服务详情页面中点击日志标签页。您可以按日志严重级别进行过滤。
查找类似如下的日志条目:
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 触发器,请运行以下命令:
在控制台中,转到 Eventarc。
点击您创建的触发器的名称。
在触发器详情页面上,点击
删除。
或者,您也可以删除 Google Cloud 项目,以避免产生费用。删除 Cloud 项目后,系统即会停止对该项目中使用的所有资源计费。
- 在 Google Cloud 控制台中,转到管理资源页面:
- 在项目列表中,选择要删除的项目,然后点击删除。
- 在对话框中输入项目 ID,然后点击关闭以删除项目。