跳到主要内容

样式约定

OpenTofu 解析器允许你在配置文件中灵活地布局元素,但 OpenTofu 语言也有一些惯用的样式约定,我们建议用户始终遵循这些约定,以确保不同团队编写的文件和模块之间的一致性。自动源代码格式化工具可能会自动应用这些约定。

  • 每个嵌套级别缩进两个空格。

  • 当多个带单行值的参数出现在同一嵌套级别的连续行上时,对齐它们的等号。

    代码块
    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_deviceebs_block_deviceephemeral_block_device形成一个描述 AWS 块设备的块类型族,因此可以分组在一起并混合使用。)