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

如何在Terraform中为第二代Cloud Function配置Cloud SQL连接?

第二代Cloud Function的Cloud SQL连接Terraform配置方案

完全可以通过Terraform直接完成第二代Cloud Function的Cloud SQL连接配置,无需手动操作底层Cloud Run服务。

实现方法

在google_cloudfunctions2_function资源的service_config块中添加cloudsql_instances参数,直接指定目标Cloud SQL实例的连接名(格式为projects/[项目ID]/locations/[实例区域]/instances/[实例名称]),部署时Terraform会自动完成底层Cloud Run服务的关联配置。

修改后的完整Terraform代码

resource "google_cloudfunctions2_function" "function" {
  name        = "${var.pipeline_name}-${var.environment}" 
  location    = var.region
  description = "Connect to Cloud SQL"
  project     = var.project_name
  build_config {
    runtime     = "python38"
    entry_point = "establish_connection" # Set the entry point
    source {
      storage_source {
        bucket = google_storage_bucket.export_bucket.name
        object = google_storage_bucket_object.cloud_function_src.name
      }
    }
  }

  service_config {
    max_instance_count            = 1
    available_memory              = "1Gi"
    timeout_seconds               = 3600
    service_account_email         = var.service_account
    vpc_connector_egress_settings = "ALL_TRAFFIC"
    vpc_connector                 = "projects/${nw_project}/locations/us-east1/connectors/use1-01-${var.environment}"
    # 添加Cloud SQL连接配置
    cloudsql_instances = [
      "projects/${var.project_name}/locations/${var.sql_region}/instances/${var.sql_instance_name}"
    ]
  }
}

关键注意事项

  • 确保配置的服务账号(var.service_account)拥有roles/cloudsql.client角色,具备访问目标Cloud SQL实例的权限
  • Cloud SQL实例的区域需与Cloud Function区域匹配,或通过已配置的VPC连接器可达
  • 对应SQLAlchemy连接串需适配配置,例如使用Unix Socket的连接格式为:
    sqlalchemy.create_engine(f"postgresql+psycopg2://{user}:{password}@/{dbname}?host=/cloudsql/{cloud_sql_instance_connection_name}")
    

内容的提问来源于stack exchange,提问作者Akhil Amit Senroy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 11:55:07