接收来自 Cloud Storage(Google Cloud 控制台)的直接事件
本快速入门介绍如何在未经身份验证的 Cloud Run 服务中接收来自 Cloud Storage 的直接事件。
您可以配置通知触发以响应 Cloud Storage 存储桶内的各种事件 - 对象创建、删除、归档和元数据更新。如需了解详情,请参阅创建触发器以将 Cloud Storage 事件路由到 Cloud Run。
您可以使用 Google Cloud 控制台完成本快速入门。如需了解 Google Cloud CLI 的使用说明,请参阅接收来自 Cloud Storage 的直接事件 (gcloud CLI)。
在本快速入门中,您将执行以下操作:
创建一个 Cloud Storage 存储桶作为事件来源。
将示例服务部署到 Cloud Run 以接收事件。
创建 Eventarc 触发器以过滤并路由事件。
通过将文件上传到 Cloud Storage 存储桶来生成事件,并在 Cloud Run 日志中查看该事件。
如需在 Google Cloud 控制台中直接遵循有关此任务的分步指导,请点击操作演示:
准备工作
您的组织定义的安全限制条件可能会导致您无法完成以下步骤。如需了解相关问题排查信息,请参阅在受限的 Google Cloud 环境中开发应用。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build and Eventarc APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build and Eventarc APIs.
创建 Cloud Storage 存储桶
本快速入门使用 Cloud Storage 作为事件来源。在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。
点击
创建。为您的存储桶输入一个唯一的名称。
例如
hello-bucket
。点击继续。
对于位置类型,请选择区域,然后选择 us-central1(爱荷华)。
接受其他默认设置。
点击创建。
创建事件来源后,您便可以将事件接收器服务部署到 Cloud Run。
将事件接收器服务部署到 Cloud Run
部署接收和记录事件的示例 Cloud Run 服务。
在 Google Cloud 控制台中,前往 Cloud Run 服务页面。
点击
创建服务。在创建服务表单中:
选择从现有容器映像部署一个修订版本。
点击使用示例容器进行测试。
在区域列表中,选择 us-central1(爱荷华)作为服务位置。
对于身份验证,请选择允许未通过身份验证的调用。
如需部署示例容器映像,请点击创建。
hello
服务的部署最多可能需要两分钟才能完成。
创建 Eventarc 触发器
Eventarc 触发器会将来自 Cloud Storage 存储桶的事件发送到示例 Cloud Run 服务。在 Google Cloud 控制台中,进入 Eventarc 触发器页面。
点击
创建触发器。输入触发器名称。
例如
hello-trigger
。在触发器类型列表中,选择 Google 来源。
此操作会过滤从 Google Cloud 提供方发送(直接或通过 Cloud Audit Logs 条目)或从使用 Pub/Sub 消息的提供方发送的事件。
在事件提供方列表中,选择 Cloud Storage。
在事件类型列表中,选择直接 > google.cloud.storage.object.v1.finalized。
在存储桶部分,选择您之前创建的 hello-bucket Cloud Storage 存储桶。
如果出现提示,请授予以下权限:
- 将
iam.serviceAccountTokenCreator
角色授予给 Pub/Sub 服务账号 - 将
pubsub.publisher
角色授予给 Cloud Storage 服务账号
- 将
使用默认计算服务账号作为调用您的服务的服务账号。
在事件目标位置列表中,选择 Cloud Run。
在 Cloud Run 服务部分,选择您之前创建的示例 hello 服务。
点击创建。
所有必要的权限传播到 Eventarc 服务代理可能需要几分钟时间。如果您收到 Permission denied
while using the Eventarc Service Agent
错误,请等待几分钟,然后重试。触发器创建后,最长可能需要两分钟才能完全正常运行。
生成并查看事件
生成事件并确认 Eventarc 触发器是否按预期工作。
要生成事件,请执行以下操作:
使用文件名
random.txt
和文本“Hello World”创建文本文件。在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。
点击您创建的存储桶的名称。
在对象标签页中,点击上传文件,然后上传
random.txt
文件。
上传操作会生成事件,而 Cloud Run 服务会记录事件的消息。
如需查看日志条目,请执行以下操作:
在 Google Cloud 控制台中,前往 Cloud Run 服务页面。
点击您创建的服务的名称。
如需检索此服务的所有修订版本的日志条目,请在服务详情页面中点击日志标签页。您可以按日志严重级别进行过滤。
查找类似如下的日志条目:
Received event of type google.cloud.storage.object.v1.finalized. Event data: [...]
恭喜!您已成功将事件接收器服务部署到 Cloud Run,创建 Eventarc 触发器,在 Cloud Storage 中生成事件并在 Cloud Run 日志中查看该事件。
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
虽然 Cloud Run 不会对未在使用中的服务计费,但您可能仍然需要支付在 Container Registry 中存储容器映像、Cloud Run 资源以及在 Cloud Storage 存储桶中存储文件而产生的相关费用。要删除 Eventarc 触发器,请运行以下命令:
在 Google Cloud 控制台中,进入 Eventarc 触发器页面。
点击您创建的触发器的名称。
在触发器详情页面上,点击
删除。
或者,您也可以删除 Google Cloud 项目,以避免产生费用。删除 Google Cloud 项目后,系统会停止对该项目中使用的所有资源计费。
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.