Terraform配置GCP Cloud Function:更新GCS压缩包后何时部署新版本?
GCP Cloud Function 部署触发时机说明
当你通过Terraform的source_archive_bucket和source_archive_object参数配置Cloud Function时,更新GCS存储桶里的代码压缩包后,不会自动触发函数的构建与部署,必须再执行terraform apply操作,Cloud Function才会拉取新的代码包并部署新版本。
原因在于Terraform是基于资源配置和状态文件来管理基础设施的:
source_archive_object是Terraform追踪的Cloud Function资源属性之一,只有当Terraform感知到这个属性对应的配置或关联资源发生变化时,才会触发资源更新。- 如果你只是替换GCS中同名的压缩包,Terraform默认不会检测到内容变化(它只追踪对象名称),这时候即使执行
terraform apply也可能不会触发更新。这种情况下,建议通过修改source_archive_object的名称(比如加入版本号、时间戳),或者借助GCS对象的etag来让Terraform感知到代码包的变化,从而触发部署。
简单来说,正确流程是:推送更新后的代码压缩包到GCS → 调整Terraform配置(或确保Terraform能检测到代码包变化) → 执行terraform apply完成新版本部署。
内容的提问来源于stack exchange,提问作者Anentropic
相关产品推荐
相关产品推荐

