_
(підкреслення) замість -
(тире) всюди (імена ресурсів, імена джерел даних, імена змінних, вихідні дані тощо).resource "aws_route_table" "public" {}
resource "aws_route_table" "public_route_table" {}
resource "aws_route_table" "public_aws_route_table" {}
this,
якщо немає більш описової та загальної назви, або якщо модуль ресурсів створює один ресурс цього типу (наприклад, у AWS VPC module існує єдиний ресурс типу aws_nat_gateway
і декілька типів ресурсівaws_route_table
, так що aws_nat_gateway
має бути названий this
і aws_route_table
повинен мати більш описову назву - наприклад - приватний, публічний, база даних).count
/ for_each
всередині блоку ресурсу або джерела даних як перший аргумент угорі та розділяйте новим рядком після нього.tags,
якщо це підтримується ресурсом, як останній реальний аргумент, наступний за depends_on
та lifecycle
, якщо необхідно. Всі вони повинні бути розділені одним порожнім рядком.count
/ for_each
віддавайте перевагу логічним значенням замість використання length
або інших виразів.count
/ for_each
count
name
, description
, і default
значення для змінних, як зазначено в розділі «Довідник аргументів» для ресурсу, з яким ви працюєте.list(...)
або map(...)
.description
, type
, default
, validation
.description
для всіх змінних, навіть якщо ви думаєте, що це очевидно (це знадобиться вам у майбутньому).number
, string
, list(...)
, map(...),
над спеціальними, як наприклад object(),
якщо вам не потрібні жорсткі обмеження для кожного ключа.map(map(string))
якщо всі елементи у map мають одинаковий тип (наприклад, string
) або можна конвертувати в нього (наприклад тип number
можна конвертувати у string
).any
щоб відключити перевірку типу, починаючи з певної глибини або коли має підтримуватися декілька типів.{}
це іноді map, а іноді - object. Використовуйте tomap(...)
щоб зробити map, тому що немає можливості зробити об'єкт.{name}_{type}_{attribute}
, де:{name} -
це ім’я ресурсу або джерела даних без префікса постачальника. {name}
для aws_subnet
- це subnet
, дляaws_vpc
- це vpc
.{type}
є різновидом джерела ресурсів.{attribute}
є атрибутом, який повертає вихідні дані.{name}
і {type},вони
мають бути якомога загальнішими (це як префікс слід пропустити). Перегляньте приклади.description
для всіх результатів, навіть якщо ви думаєте, що це очевидно.чутливих
аргументів, якщо ви повністю не контролюєте використання цього виводу в усіх місцях і у всіх модулях.try()
(доступний з Terraform 0.13) над element(concat(...))
(застарілий підхід для версій до 0.13)