1.4.1. Terraform 代码的书写
我们将在本章讲解 Terraform 配置文件的编写。
Terraform 早期仅支持使用 HCL(Hashicorp Configuration Language)语法的 .tf
文件,近些年来也开始支持 JSON。HashiCorp 甚至修改了他们的 json 解析器,使得他们的 json 可以支持注释,但 HCL 相比起 JSON 来说有着更好的可读性,所以我们还是会以 HCL 来讲解。其实我个人是不太喜欢用 JSON 编写 Terraform 代码的,有些团队使用 JSON 是因为他们是用其他代码来生成相应的 JSON 格式的 Terraform 代码(比如自研的 GUI 工具,通过拖拽的方式定义基础设施,继而生辰相关代码)。我个人不太喜欢这种方式,因为它鼓励用户从零开始拖拽出所需的所有基础设施,而不是通过组装成熟的可复用的模块代码。我个人认为应该像对待业务逻辑代码一样对待基础设施代码。
这里特别之处一点,我们将在这一章节提到模块(Module)的概念,但我们会在后续单独的章节专门讲解模块。在本章内,读者可以简单地将一个模块理解成一个含有多个 Terraform 代码文件的目录,不包含其子目录。
本章内容基本是对官方文档的翻译,英语阅读能力好的读者应该直接阅读官方文档获取最权威的信息。