- OpenTofu 语言
- 语法
- 样式约定
样式约定
OpenTofu 解析器允许你在配置文件中灵活地布局元素,但 OpenTofu 语言也有一些惯用的样式约定,我们建议用户始终遵循这些约定,以确保不同团队编写的文件和模块之间的一致性。自动源代码格式化工具可能会自动应用这些约定。
注意
你可以通过运行 tofu fmt
自动强制执行这些约定。
-
每个嵌套级别缩进两个空格。
-
当多个带单行值的参数出现在同一嵌套级别的连续行上时,对齐它们的等号。
代码块 ami = "abc123"
instance_type = "t2.micro" -
当参数和块都出现在块体中时,将所有参数放在顶部,然后将嵌套块放在它们下方。使用一个空行将参数与块隔开。
-
使用空行分隔块内的逻辑参数组。
-
对于包含参数和“元参数”(由 OpenTofu 语言语义定义)的块,请先列出元参数,并使用一个空行将其与其他参数隔开。将元参数块放在最后,并使用一个空行将其与其他块隔开。
代码块 resource "aws_instance" "example" {
count = 2 # meta-argument first
ami = "abc123"
instance_type = "t2.micro"
network_interface {
# ...
}
lifecycle { # meta-argument block last
create_before_destroy = true
}
} -
顶级块始终应彼此之间用一个空行分隔。嵌套块也应使用空行分隔,除非将同一类型的相关块分组在一起(例如,资源中的多个
provisioner
块)。 -
避免将同一类型的多个块与不同类型的块分组在一起,除非块类型由语义定义为一个族。(例如:
aws_instance
上的root_block_device
、ebs_block_device
和ephemeral_block_device
形成一个描述 AWS 块设备的块类型族,因此可以分组在一起并混合使用。)