Привет, мир,
Я копаю немного больше, чем подходы к выпуску, и просто хотел поделиться некоторыми вещами, которые я взволнован в Terraform 0.12 превью.
Во-первых, давайте будем быстрым обзором/откровителем языка конфигурации террафора в 0.11, чтобы настроить нас за разговоры о новых вкусностях …
Язык конфигурации террафора в 0.11 состоит из парней парней:
- HCL — Язык конфигурации Hashicorp — Блок и синтаксис атрибута
Хил — Язык интерпретации Hashicorp — позволяет нам встраивать выражения в строки HCl
- Это включает в себя местные переменные и функции Terraform — Terraform Ships со встроенными переменными и функциями.
- Функции называются с именем синтаксиса (ARG, ARG2, …). Например, чтобы прочитать файл: $ {file («path.txt»)}.
- Это включает в себя местные переменные и функции Terraform — Terraform Ships со встроенными переменными и функциями.
Таким образом, Terraform 0.12 представляет HCl 2, и это полное перезапись этого базового языка конфигурации. Он улучшил HCl следующими способами:
- Объединяет HCl и HIL
- Он представляет собой надежную систему типа
- Он включает в себя большой список запросов на функцию и улучшения, о которых сообщество просило.
Это только некоторые изменения, которые входят в силу:
- Надежный синтаксис JSON
- Для и для каждого выражения
- Обобщенный оператор Splat
- Первоклассный выражение
- Условные улучшения оператора и условно пропущенные аргументы
- Ввод модуля и вывод насыщенные типы значений
- Шаблон синтаксиса
- Динамические блоки
- Улучшенные сообщения об ошибках
Потрясающе, поскольку список стал, это некоторые из улучшений HCL, я действительно взволнован …
Первоклассные выражения : Ранее они должны были завершить в интерполяционные последовательности с двойными кавычками, такими как «$ {var.foo}». Это изменение предварительного просмотра 0,12, выражения теперь являются собственной частью языка и могут использоваться с Raw Dot Notiation, поскольку вы будете на других языках программирования.
- Примеры:
- foo.foo
- Ami.ami [1]
- Примеры:
Ввод модуля и вывод насыщенные типы значений : TerraForm поддерживает основные списки и карты в качестве входных данных/выходов, поскольку Terraform 0,7, но элементы были ограничены только простыми значениями. Terraporm 0.12 позволяет произвольно сложные списки и карты для любых входов и выходов, это включает в себя использование с модулями.
- Террафор 0.12 теперь может представлять отдельных типов сложного объекта. Это было невозможно в более ранних версиях террафора. Приведенный ниже пример показывает спецификацию типа, и объект также можно пропустить как ввод, так и вывод, и из, модуль. Вы также можете заметить еще одну разницу, когда типы не указаны … Типы теперь являются первоклассными значениями в террафоре 0.12 и могут быть использованы напрямую.
- Соответственно, вы также можете выводить целые ресурсы из модулей сейчас. Это не делает круглые поездки обратно в модуль создателя/сопровождающего, чтобы подвергать другие значения в качестве выходов для потребителей:
Улучшенные сообщения об ошибках : Это руки — вниз мой любимый, хотя, и вот почему …
- Это сообщение об ошибке Terraform 0.11. Main.tf может быть тысячи строк длинные И мы бы не знали, что не хватало скорей. Это было не полезно, и большинство из нас провели временные комментирующие куски кода до тех пор, пока не будет доступен какой-то расширения синтаксиса редактора.
- Так в 0,12 они выступили в игру. Вот сообщение об ошибке Terraform 0.12. Парсер HCL2 сохраняет подробную информацию о местонахождении каких-либо синтаксических элементов или токенов, поэтому вы не только получите какой файл эту ошибку, мы получаем номер строки, и он распечатает в рецензе!
- Другой пример, который они продемонстрировали, здесь у нас есть тип проверки принудительного повышения ошибки при попытке добавить номер в строку. Хорошая OL Type9ismatch отдавая нам, что такое проблема, и он расскажет нам именно файл и строку.
- Что я ♥ ️ Об этом последним, что они демонстрируют ощущение послания! Да, это именно то, что я имел в виду, спасибо, что смотрел на нас!
Таким образом, это мои лучшие 3 функции, которые появляются. Но, честно говоря, весь набор улучшений делает это намного больше, чем мягкое модернизация, которое я буду с нетерпением ждать реализации.
Не стесняйтесь пропускать больше, перечисленные здесь, на блоге Hashicorp Terraform: https://www.hashicorp.com/blog/category/terraform
Большинство из них префиксированы с «Hashicorp Terraform 0.12 Предварительный просмотр:» И они публикуют больше как подходы к выпуску.
Счастливое кодирование!
Оригинал: «https://dev.to/philiplavoie/some-neat-enhancements-in-hashicorps-terraform-012-preview-1fa»