Spec-Zone.ru › OpenTofu 1.12

Соглашения о стиле

Парсер 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 в ресурсе).

  • Не объединяйте несколько блоков одного типа с блоками другого типа, если только семантика не определяет эти типы блоков как семейство. (Например, root_block_device, ebs_block_device и ephemeral_block_device в aws_instance образуют семейство типов блоков, описывающих блочные устройства AWS, поэтому их можно объединять в группу и смешивать.)

Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.12/language/syntax/style/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API