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

Terraform模块source地址中双斜杠的作用原理是什么?

Terraform模块源中双斜杠的工作原理解释

核心逻辑:双斜杠是模块包与子模块的分隔符

在Terraform Registry模块的引用规则里,双斜杠//是一个特殊分隔符,用来明确区分Registry上的模块包地址和包内部的子模块相对路径:

  • 双斜杠前面的部分terraform-aws-modules/eks/aws是Terraform Registry上的标准模块包标识(格式为namespace/module-name/provider),对应官方的EKS模块包。
  • 双斜杠后面的modules/karpenter则是这个已下载的模块包内部的子模块路径,告诉Terraform要使用该包下的karpenter子模块。

单斜杠报错的原因

当你改成单斜杠后,Terraform会把整个字符串terraform-aws-modules/eks/aws/modules/karpenter当作一个完整的模块包标识去Registry查找,但Registry上根本不存在这个命名的模块包(正确的包名是terraform-aws-modules/eks/aws)。此时Terraform无法识别这是Registry模块引用,会误以为你要引用本地文件路径,因此抛出错误提示你添加./前缀。

本地目录结构的验证

执行terraform init后,Terraform会先完整拉取terraform-aws-modules/eks/aws整个模块包到本地.terraform/modules目录,再根据双斜杠后的路径定位到包内的modules/karpenter子模块,这也直观印证了双斜杠的拆分逻辑:先拉取完整模块包,再加载指定子模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 16:46:05