#terraform #terraform-provider-aws
Вопрос:
В terraform есть ли способ условно выполнить некоторые строки кода в файле шаблона? Например:
У меня есть файл test.sh.tpl, определенный как показано ниже, который вызывается из main.tf
#!/bin/bash echo ${test_key} > /opt/test_key.свойства
В приведенном выше значении «test_key» присваивается из переменной
Теперь я хочу выполнить приведенный выше код только в том случае, если значение ${test_key} не пустое. Я пробовал это, но не работает, даже значение существует
{ если ${test_key} != «» }
echo ${test_key} > /opt/test_key.свойства
{ окончание }
Ответ №1:
вероятно, потому, что вы пропали без вести %
%{ if ${test_key} != "" }
echo ${test_key} > /opt/test_key.properties
%{ endif }
https://www.terraform.io/docs/language/expressions/strings.html
Комментарии:
1. Попробовал это, вызов функции «файл шаблона» не удался:./test.sh.tpl:3,7-8: Недопустимый символ; Этот символ не используется в языке., и 2 других диагностических (- ов).
2. если вы заполняете файл tpl, вы можете следовать приведенному ниже примеру. потому что довольно легко добавить условие if в сценарий оболочки registry.terraform.io/providers/hashicorp/template/latest/docs/…
3. Также недопустимо говорить
if
${test_key}` …${
предназначен для переключения из буквального режима в режим интерполяции, но мы ужеif
находимся здесь в режиме, поэтому можем (и должны) просто сказать%{ if test_key != "" }