概述
Google Cloud Functions 支持在 Google Cloud Platform 上进行事件驱动的无服务器计算。可以构建具备自动扩缩容、集成安全能力,并与 Google Cloud 各项服务无缝集成的函数,以便快速开发。
适用场景
- HTTP API 与 Webhook
- Pub/Sub 消息处理
- 存储桶事件
- Firestore 数据库触发器
- Cloud Scheduler 定时任务
- 实时数据处理
- 图像与视频处理
- 数据管道编排
快速开始
最小可运行示例(安装 Google Cloud SDK、初始化与认证、设置项目、创建服务账号、授予权限、部署 HTTP 函数):
安装 Google Cloud SDK
curl https://sdk.cloud.google.com | bash exec -l $SHELL
初始化与认证
gcloud init gcloud auth application-default login
设置项目
gcloud config set project MY_PROJECT_ID
创建服务账号
gcloud iam service-accounts create cloud-function-sa
--display-name "Cloud Function Service Account"
授予权限
gcloud projects add-iam-policy-binding MY_PROJECT_ID
--member="serviceAccount:cloud-function-sa@MY_PROJECT_ID.iam.gserviceaccount.com"
--role="roles/cloudfunctions.invoker"
部署 HTTP 函数
gcloud functions deploy my-http-function
--gen2
--runtime nodejs18
--region us-central1
// ...(完整实现见参考指南)
参考指南
references/ 目录中提供详细实现:
- 使用 gcloud CLI 创建 Cloud Function
- Cloud Functions 实现(Node.js)
- Terraform Cloud Functions 配置
最佳实践
✅ 建议做法
- 使用具备最小权限的服务账号
- 将密钥存储在 Secret Manager 中
- 实现正确的错误处理
- 使用环境变量进行配置
- 使用 Cloud Logging 与 Cloud Monitoring 进行监控
- 设置合适的内存与超时时间
- 使用事件过滤器以减少调用次数
- 实现幂等函数
❌ 不建议做法
- 将密钥存储在代码中
- 使用默认服务账号
- 创建长时间运行的函数
- 忽略错误处理
- 未经测试就部署
- 对敏感函数使用未经身份验证的访问