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_device
、ebs_block_device
、ephemeral_block_device
内嵌块共同构成了描述AWS块存储的块家族,所以它们可以被混合编写)
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,在下面评论区告诉我^_^^_^