Terraform Infrastructure as Code · Урок

Переменные и выходные значения

Научитесь использовать входные переменные, чтобы сделать конфигурации гибкими и повторно используемыми, а выходные значения — чтобы извлекать важную информацию из развёрнутой инфраструктуры.

Урок 2 из 412 шагов

«Переменные и выходные значения» — бесплатный урок Terraform Infrastructure as Code на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Terraform Infrastructure as Code, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Terraform Infrastructure as Code содержит 4 уроков всего.

Гибкие конфигурации

Terraform позволяет описывать инфраструктуру как код. Но что делать, если Вы хотите повторно использовать код для разных окружений или настроек?

Здесь на помощь приходят переменные и выходные значения. Они делают конфигурации гибкими и упрощают управление ими.

Входные переменные: гибкость

Входные переменные работают как параметры конфигураций Terraform. Они позволяют настраивать отдельные аспекты инфраструктуры, не изменяя основной код.

  • Избавляют от необходимости напрямую прописывать значения в конфигурации.
  • Делают модули и конфигурации повторно используемыми.
  • Позволяют задавать разные значения для разных окружений (например, dev и prod).

Объявление переменных

Входные переменные объявляются в файле .tf, который часто называется variables.tf. Каждой переменной нужно уникальное имя.

Вот простое объявление:

variable "file_content" {
  description = "Content to write to a local file."
  type        = string
}

Типы и значения по умолчанию

Переменные могут иметь разные типы, например string, number, bool, list или map. Также можно указать значение по умолчанию, сделав переменную необязательной.

variable "environment" {
  description = "The deployment environment (e.g., dev, prod)."
  type        = string
  default     = "dev"
}

variable "instance_count" {
  description = "Number of instances."
  type        = number
  default     = 1
}

Использование переменных в коде

После объявления на значение переменной можно ссылаться с помощью префикса var., за которым следует её имя (например, var.environment).

Это позволяет ресурсам адаптироваться к переданным входным данным.

resource "local_file" "example" {
  content  = "Hello from ${var.environment}!"
  filename = "example-${var.environment}.txt"
}

Как передавать значения

Есть несколько способов передать значения переменным:

  • Командная строка: используйте -var="key=value" вместе с terraform plan или apply.
  • Файлы .tfvars: создайте файл, например terraform.tfvars или dev.tfvars.
  • Переменные окружения: используйте TF_VAR_name=value.

Файл terraform.tfvars часто используется для задания значений:

# terraform.tfvars
environment = "staging"
file_content = "This is some custom content."

Выходные значения: извлечение информации

Подобно тому как входные переменные позволяют передавать данные в конфигурацию, выходные значения позволяют извлекать данные из неё.

  • Отображать важную информацию о развернутых ресурсах (например, IP-адреса и URL-адреса).
  • Передавать данные между конфигурациями Terraform, особенно при использовании модулей.
  • Упрощать просмотр того, что было создано с помощью Terraform.

Объявление выходных значений

Выходные значения объявляются в файле .tf, который часто называется outputs.tf. Для каждого выходного значения требуется уникальное имя и аргумент value.

output "file_name" {
  description = "The name of the generated local file."
  value       = local_file.example.filename
}

Просмотр выходных значений

После выполнения команды terraform apply выходные значения можно просмотреть с помощью команды terraform output.

Аргумент value обычно ссылается на атрибут ресурса, например resource_type.resource_name.attribute.

# After 'terraform apply', run:
terraform output file_name

Переменные и выходные значения в действии

Объединим изученные concepts. В этом примере переменные используются для содержимого и окружения, а выходные значения содержат имя и содержимое файла. Создайте эти три файла в одном каталоге:

# main.tf
terraform {
  required_providers {
    local = {
      source = "hashicorp/local"
      version = "~> 2.1"
    }
  }
}

resource "local_file" "message" {
  content  = var.greeting_message
  filename = "hello_${var.env}.txt"
}

# variables.tf
variable "greeting_message" {
  description = "The message content for the file."
  type        = string
  default     = "Hello CoddyKit!"
}

variable "env" {
  description = "Environment name."
  type        = string
  default     = "dev"
}

# outputs.tf
output "generated_filename" {
  description = "The full path of the generated file."
  value       = local_file.message.filename
}

output "file_content_used" {
  description = "The content actually written to the file."
  value       = local_file.message.content
}

Быстрая проверка: переменные и выходные значения

Какие из следующих утверждений о переменных и выходных значениях Terraform являются TRUE?

Итоги: переменные и выходные значения

Отличная работа! Вы научились делать конфигурации Terraform динамическими:

  • Входные переменные позволяют определять параметры вашей инфраструктуры.
  • Значения переменных можно передавать через CLI, файлы .tfvars или переменные окружения.
  • Выходные значения помогают извлекать и отображать важную информацию о развернутых ресурсах.

Далее вы узнаете, как Terraform отслеживает вашу инфраструктуру с помощью управления состоянием!

Можно начать бесплатно

Изучай Terraform Infrastructure as Code с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
12
Уроки
48

Часто задаваемые вопросы

Урок «Переменные и выходные значения» бесплатный?

Да — полный текст урока «Переменные и выходные значения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Terraform Infrastructure as Code, подпишись на CoddyKit PRO. Курс Terraform Infrastructure as Code содержит 4 уроков всего.

Чему я научусь в уроке «Переменные и выходные значения»?

Научитесь использовать входные переменные, чтобы сделать конфигурации гибкими и повторно используемыми, а выходные значения — чтобы извлекать важную информацию из развёрнутой инфраструктуры. Ты практикуешь Terraform Infrastructure as Code с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Terraform Infrastructure as Code?

Предыдущий опыт не требуется. Terraform Infrastructure as Code на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Переменные и выходные значения»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Terraform Infrastructure as Code?

Да. Каждый урок Terraform Infrastructure as Code включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Поставщики и ресурсы
  2. Переменные и выходные значения
  3. Основы управления состоянием
  4. Модули и повторное использование кода
← Назад к Terraform Infrastructure as Code