Spec-Zone.ru › OpenTofu 1.11

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

Парсер 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.11/language/syntax/style/

Spec-Zone.ru

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