You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform从Dev部署Google Cloud Function到QA时遇Error code 13求助

解决Terraform部署Google Cloud Function到QA环境的Build Error问题

问题背景

Dev环境使用Google Container Registry(GCR)可正常部署Cloud Function,但QA环境相同配置下触发Build Error(错误码13),手动切换为Google托管Artifact Registry后问题解决,需通过Terraform实现多环境适配。

解决方案

1. 定义环境区分变量

在Terraform配置中添加环境变量,用于识别当前部署环境:

variable "environment" {
  type        = string
  description = "部署环境(dev/qa)"
  default     = "dev"
}

2. 基于环境动态配置镜像仓库

在google_cloudfunctions_function资源中,通过条件表达式根据环境设置docker_registry参数:

resource "google_cloudfunctions_function" "my_function" {
  name                  = "my-function-${var.environment}"
  runtime               = "python311"
  available_memory_mb   = 256
  source_archive_bucket = google_storage_bucket.function_bucket.name
  source_archive_object = google_storage_bucket_object.function_archive.name
  entry_point           = "main"

  # 动态配置镜像仓库:QA环境使用Artifact Registry,Dev环境默认用GCR
  docker_registry = var.environment == "qa" ? "ARTIFACT_REGISTRY" : null
}

3. 补充Artifact Registry相关权限(按需)

确保部署Terraform的服务账号在QA项目中拥有Artifact Registry的必要权限(如roles/artifactregistry.admin或roles/artifactregistry.writer),避免权限不足导致部署失败。

原因分析

QA环境的GCP项目可能存在组织级策略限制,强制要求使用Artifact Registry替代GCR;或项目已启用Artifact Registry专属配置,而Dev项目未开启该限制,导致相同配置在QA环境无法兼容。

内容的提问来源于stack exchange,提问作者Sekhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 02:27:35