HCL to JSON
Преобразуйте конфигурацию HCL в стиле Terraform в эквивалент JSON.
HCL to JSON
Вставьте HCL — язык, используемый Terraform, Packer и другими инструментами HashiCorp — и этот конвертер вернёт эквивалентный JSON. Он обрабатывает типичные структуры реального файла .tf: атрибуты верхнего уровня и блоки с нулевым или несколькими строковыми метками, такие как resource "aws_instance" "web", вложенные в другие блоки на произвольную глубину. Блоки с метками преобразуются используя соглашение, которое сам Terraform использует для синтаксиса .tf.json, поэтому ресурс с типом и именем располагается под resource → type → name в результате, а повторяющиеся блоки на одном пути — два блока ingress внутри одного ресурса — становятся массивом JSON вместо перезаписи друг друга.
Строки, числа, логические значения, null, списки и встроенные объекты (tags = { Name = "web" }) преобразуются напрямую. Heredoc-строки (<<EOT ... EOT и отступная форма <<-EOT) становятся обычными JSON-строками с сохранённными разрывами строк, а интерполяции ${var.name} — вместе с простыми ссылками вроде var.region или вызовами функций типа merge(a, b) — остаются буквальным текстом, так как браузер не может разрешить переменные Terraform или провайдеры.
Опции охватывают ширину отступа (2 пробела, 4 пробела, табуляции или минифицированный вид), сортировку ключей по алфавиту, сохранение или удаление комментариев и выбор между одним объединённым JSON-объектом или плоским списком блоков — каждый с типом, метками и содержимым — для более удобного написания скриптов. Дублирующиеся ключи атрибутов внутри блока отмечаются в живом счётчике, а не молча отбрасываются, и поддерживаются как Windows, так и Unix переводы строк.
Всё работает локально в вашем браузере — ваша конфигурация никогда не загружается, что важно, когда она содержит имена реальных ресурсов, IP-адреса или ID аккаунтов. Скопируйте JSON, загрузите его как файл .txt или отправьте прямо в другой инструмент для продолжения работы.