打开您从未见过的 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