HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Переменные в Terraform, делают конфигурацию более гибкой и упрощают повторное использование данных. Правда несмотря на название, они не могут меняться в процессе работы Terraform. Но их можно задавать динамически прямо перед выполнением.</p>
1 <p>Переменные в Terraform, делают конфигурацию более гибкой и упрощают повторное использование данных. Правда несмотря на название, они не могут меняться в процессе работы Terraform. Но их можно задавать динамически прямо перед выполнением.</p>
2 <h2>Определение переменных</h2>
2 <h2>Определение переменных</h2>
3 <p>Определение переменных может появляться в любой части конфигурации, так как это не инструкция, а описание того, что мы хотим получить. Однако, для удобства восприятия, Terraform рекомендует класть их в отдельный файл<em>variables.tf</em>.</p>
3 <p>Определение переменных может появляться в любой части конфигурации, так как это не инструкция, а описание того, что мы хотим получить. Однако, для удобства восприятия, Terraform рекомендует класть их в отдельный файл<em>variables.tf</em>.</p>
4 <p>Ниже пример определения переменной<em>yc_token</em></p>
4 <p>Ниже пример определения переменной<em>yc_token</em></p>
5 <p>Все четыре аргумента опциональные, но тип лучше указывать всегда, это защищает от случайных ошибок. Значение по умолчанию ставится только тогда, когда оно имеет смысл. В примере выше переменная определяет ключ, поэтому значение по умолчанию ей не нужно.</p>
5 <p>Все четыре аргумента опциональные, но тип лучше указывать всегда, это защищает от случайных ошибок. Значение по умолчанию ставится только тогда, когда оно имеет смысл. В примере выше переменная определяет ключ, поэтому значение по умолчанию ей не нужно.</p>
6 <p>Если значение по умолчанию не установлено, то Terraform требует указания конкретного значения перед выполнением. Terraform предлагает несколько способов указания переменных.</p>
6 <p>Если значение по умолчанию не установлено, то Terraform требует указания конкретного значения перед выполнением. Terraform предлагает несколько способов указания переменных.</p>
7 <p>Первый. Через флаг<em>-var-file</em>, указанный при запуске Terraform на выполнение:</p>
7 <p>Первый. Через флаг<em>-var-file</em>, указанный при запуске Terraform на выполнение:</p>
8 <p>Второй. Терраформ автоматически загружает все файлы в директории с именем<em>terraform.tfvars</em>и соответствующих маске<em>*.auto.tfvars</em>.</p>
8 <p>Второй. Терраформ автоматически загружает все файлы в директории с именем<em>terraform.tfvars</em>и соответствующих маске<em>*.auto.tfvars</em>.</p>
9 <p>Файлы<em>*.tfvars</em>содержат присваивания переменным их значений:</p>
9 <p>Файлы<em>*.tfvars</em>содержат присваивания переменным их значений:</p>
10 <h3>Типы переменных</h3>
10 <h3>Типы переменных</h3>
11 <p>Переменные в Terraform могут быть 5 типов:</p>
11 <p>Переменные в Terraform могут быть 5 типов:</p>
12 <ul><li><p><em>string</em></p>
12 <ul><li><p><em>string</em></p>
13 </li>
13 </li>
14 <li><p><em>number</em></p>
14 <li><p><em>number</em></p>
15 </li>
15 </li>
16 <li><p><em>bool</em></p>
16 <li><p><em>bool</em></p>
17 </li>
17 </li>
18 <li><p><em>list</em>: список элементов одного типа</p>
18 <li><p><em>list</em>: список элементов одного типа</p>
19 </li>
19 </li>
20 <li><p><em>map</em>или<em>object</em>: ассоциативный массив состоящий из пар ключ-значение</p>
20 <li><p><em>map</em>или<em>object</em>: ассоциативный массив состоящий из пар ключ-значение</p>
21 </li>
21 </li>
22 </ul><h2>Использование переменных</h2>
22 </ul><h2>Использование переменных</h2>
23 <p>Для обращения к переменной используется синтаксис<em>var.&lt;variable_name&gt;</em>. Переменные могут подставляться в любых местах, где есть присваивания. Пример:</p>
23 <p>Для обращения к переменной используется синтаксис<em>var.&lt;variable_name&gt;</em>. Переменные могут подставляться в любых местах, где есть присваивания. Пример:</p>
24  
24