GCP Cloud Functions 技能面向在 Google Cloud Functions 上构建和部署事件驱动无服务器应用的场景,支持 Gen1 与 Gen2 两代运行时。
用途 可用于处理 Webhook、API 端点或轻量 HTTP 后端;响应来自 Pub/Sub、Cloud Storage、Firestore 或 Eventarc 的事件;运行无需维护服务器的定时任务(cron);构建由文件上传触发的数据处理管道;在正式采用 Cloud Run 或 GKE 之前对微服务进行原型验证。
主要能力 技能涵盖 Gen1 与 Gen2 的对比:Gen2 基于 Cloud Run,最大超时 60 分钟、最大内存 32 GB、单实例并发最高 1000、支持流量拆分与 Eventarc 触发器;Gen1 最大超时 9 分钟、最大内存 8 GB、单实例并发 1、不支持流量拆分与 Eventarc。提供 HTTP 函数、Pub/Sub 触发函数、Cloud Storage 触发函数和定时函数的部署命令示例,并给出 Python 与 Node.js 的函数代码示例及依赖清单。还包含函数列表、描述、日志读取、删除、更新环境变量和本地测试等管理命令,以及 Terraform 资源配置示例和故障排查表。
使用方式 前置条件包括:安装并认证 Google Cloud SDK(gcloud);启用 Cloud Functions、Cloud Build、Artifact Registry、Cloud Run(Gen2)等 API;配置 roles/cloudfunctions.developer(Gen2 为 roles/run.developer)等 IAM 角色。部署时通过 gcloud functions deploy 指定代际、区域、运行时、触发器、入口点、内存、超时、实例数、环境变量和源码目录等参数。定时函数需先部署 HTTP 函数,再用 gcloud scheduler jobs create http 创建调度任务。本地测试可使用 functions-framework --target=... --port=8080。
适用场景 适合需要快速上线的事件驱动型工作负载,例如订单事件处理、图片上传后调用 Vision API 打标签、每日定时清理等。也适合以 Terraform 进行基础设施即代码管理的团队。
限制与注意事项 部署可能替换代码或配置并产生费用,需预览源码排除项以避免上传密钥。事件投递与重试可能造成重复效果,应校验负载、派生授权资源 ID,并利用持久事件 ID 或状态转换实现幂等。应设置资源与成本上限,并检查实际部署的 URL 而非盲目构造。基础设施命令可能中断服务,变更前需确认目标主机与范围并准备备份或快照。该技能为文档导入,未捆绑上游脚本与模板。