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

Terraform跨子模块传递输出值遇必填参数缺失错误

问题解决方案

1. 修正根模块调用AKS时的参数名

错误核心是根模块传递给AKS模块的参数名和AKS模块定义的变量名不匹配:你在根模块里传的是serviceprinciple_id和serviceprinciple_key,但AKS模块需要的是client_id和client_secret,直接修改参数名即可:

module "aks" {
  source                 = "./modules/aks/"
  service_principal_name = var.service_principal_name
  client_id              = module.ServicePrincipal.client_id  # 对应AKS模块的var.client_id
  client_secret          = module.ServicePrincipal.client_secret  # 对应AKS模块的var.client_secret
  location               = var.location
  resource_group_name    = var.rgname
  depends_on = [
    module.ServicePrincipal
  ]
}

2. 修正ServicePrincipal模块的client_secret输出类型

你的ServicePrincipal模块输出的client_secret是列表类型(用了*.value语法),但AKS模块的client_secret变量应该是字符串类型,需要取列表第一个元素转为字符串:

output "client_secret" {
  description = "Password for service principal."
  value       = azuread_service_principal_password.main[0].value  # 取第一个元素,转为字符串
}

3. 确认AKS模块的变量定义

确保AKS模块的variables.tf里正确定义了必填的client_id和client_secret变量,示例:

variable "client_id" {
  description = "Service Principal Client ID for AKS"
  type        = string
  nullable    = false  # 标记为必填
}

variable "client_secret" {
  description = "Service Principal Client Secret for AKS"
  type        = string
  nullable    = false
  sensitive   = true  # 建议标记为敏感,避免输出泄露
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:55:19