如何构建一个地形模块

2026年8月21日3 次浏览来源:Dev.to阅读原文

打开您从未见过的 Terraform 仓库 。

它看起来很有可能是这样的:一个有八百行,一个需要和可选输入按字母顺序拼接在一起的地方,一个完全没有版本约束的提供方块,以及一个大约四个月前准确记录输入的内容.

这些都不是任何人的错。

Terraform不在乎你怎么整理你的档案 在一个目录中结束的每个文件在评估任何内容之前都会被调和,所以语言让你没有理由偏好一个布局而不是另一个布局.

教程都把所有东西都放进去了,因为他们一次教一个资源,然后就永远成为了再生的形状.

我不是贸易开发商 我没有肌肉记忆 让人通过感觉 浏览陌生的密码库 相反,我每一次都使用一个布局, 所以六个月后,当我回到一个模块时, 我半记得,我知道事情在哪里,然后我打开任何东西。

这个帖子就是这个布局,以及每个片段背后的推理.

这里的每个会议都是对 我所看到的模组变坏的具体方式的反应。

全取自"桥口通"风格取景指南,对风格取景指南出行之处有分层意见.

下方的一切都是用立体-模块-拓扑(terraform-module-template)来做脚手架,我用它来做模块和根模块.

TL; DR.,",",",",并且始终存在,即使在空地.

资源一直存在到大约20个,然后按服务或职能划分。

是两个部分,在可选之前需要,每个部分内按字母顺序排列。

是一个字母化列表。

持有和没有其他。

属于.

将一切钉住 生成 README 与, 不要写入 。

运行,,,,和在承诺前, 所以你发现问题 在计划做之前。

问题1:主要.tf的一切都结束了 一个模块从三个资源开始, 所以当然它们进入。

后而增长.

从来没有人决定把800行 在一个文件中。

之所以发生这种情况,是因为替代方案需要决定,而且从来没有一个好时机来决定.

Fix: Fix: File by Droit First, Size First 一些文件名被保留给一个角色,而那些文件总是存在的: 资源留在里面,直到有大约20个.

过去,按服务或功能划分:,,,,,,,数字不是神圣的.

关键在于分裂是由大小所触发,只有资源才能被分裂.

数据源,本地,和提供者配置都留在自己的文件中,无论有多少或有多少.

这种不对称是故意的。

资源数量在各模块之间差异很大,因此,在资源存在的地方必须扩大规模。

其他类别小而有界限,其价值来自在固定地址可以找到,而不是组织良好.

为什么空文件停留 在新模块中,除标题注释外均为空: 这是大会的人推后,多数, 我会继续捍卫它。

缺席文件没有信息 。

你无法分辨这个模块是否没有数据源,或者是否有人在没有查看的情况下放入.

一个当前,空文件同时回答两个问题:还没有数据源,这里是下一个数据源去的地方.

在回波中大多数的结构衰变并不来自对布局有异议的人.

它来自一个在下午5点添加数据源的人, 没有看到一个明显的家, 并把它扔在了底部。

空去去决定,这是使公约在最后期限前存活下来的唯一可靠方法.

问题2:你无法从可选的字母顺序中得知 声音显然是正确的 这是默认的建议 这也意味着你想知道的第一件事 关于一个模块 - 我有什么要给它? - 档案里唯一不告诉你的 你必须看每个街区 检查每个街区为1。

Fix:两个区,字母化的内侧每个区被分成必要的变量,意思是没有,然后是可选的 variabl

分享