Terraform代码风格规范

Terraform推荐以下代码规范:

  • 使用两个空格缩进
  • 同一缩进层级的多个赋值语句以等号对齐:
    ami           = "abc123"
    instance_type = "t2.micro"
  • 当块体内同时有参数赋值以及内嵌块时,请先编写参数赋值,然后是内嵌块,参数与内嵌块之间空一行分隔
  • 对于同时包含参数赋值以及元参数赋值的块,请先编写元参数赋值语句,然后是参数赋值语句,之间空一行分隔;元参数块请置于块体的最后,空一行分隔:
    resource "aws_instance" "example" {
      # 元参数赋值
      count = 2
    
      # 参数赋值
      ami           = "abc123"
      instance_type = "t2.micro"
    
      # 内嵌块
      network_interface {
        network_card_index = 0
      }
    
      # 元参数块赋值放在最后
      lifecycle {
        create_before_destroy = true
      }
    }
  • 顶层块之间应空一行分隔;内嵌块之间也应该空一行分隔,除非是相同类型的内嵌块(比如resource块内部多个provisioner块)
  • 同类型块之间尽量避免插入其他类型块,除非不同类型块共同组成了一个有语义的家族(比方aws_instnace资源内的root_block_deviceebs_block_device
    ephemeral_block_device内嵌块共同构成了描述AWS块存储的块家族,所以它们可以被混合编写)

【参考】
Style Conventions


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,在下面评论区告诉我^_^^_^