変数と出力
入力変数で設定を柔軟かつ再利用可能にし、出力値でデプロイしたインフラから重要な情報を取り出す方法を学びます。
「変数と出力」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
柔軟な構成
Terraformを使うと、インフラストラクチャをコードとして定義できます。しかし、異なる環境や設定でコードを再利用したい場合はどうすればよいでしょうか。
そこで変数と出力が役立ちます。これらを使うと、構成を柔軟かつ簡単に管理できます。
入力変数:柔軟性
入力変数は、Terraformの構成に対するパラメーターのように機能します。コアコードを変更せずに、インフラストラクチャの一部をカスタマイズできます。
- 構成に値を直接ハードコードするのを避けられます。
- モジュールと構成を再利用しやすくなります。
- 環境ごとに異なる値を指定できます(例:開発環境と本番環境)。
変数の宣言
入力変数は.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"
}値を指定する方法
変数に値を指定する方法はいくつかあります。
- コマンドライン:
terraform planまたはapplyで-var="key=value"を使用します。 .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がプロビジョニングした内容を簡単に確認できます。
出力値を宣言する
出力値は、通常outputs.tfという名前の.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変数と出力値を実際に使う
ここまでに学んだ内容を組み合わせてみましょう。この例では、コンテンツと環境に変数を使用し、ファイル名とコンテンツを出力します。ディレクトリ内に次の3つのファイルを作成してください。
# 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の変数と出力値について、次の記述のうち正しいものはどれですか。
復習:変数と出力値
よくできました。Terraformの設定を動的にする方法を学びました。
- 入力変数を使用すると、インフラストラクチャのパラメーターを定義できます。
- 変数の値は、CLI、
.tfvarsファイル、または環境変数を通じて指定できます。 - 出力値を使用すると、デプロイしたリソースの重要な情報を取り出して表示できます。
次は、Terraformがインフラストラクチャをどのように追跡するかをState Managementで学びます。
よくある質問
「変数と出力」レッスンは無料ですか?
はい。「変数と出力」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「変数と出力」で何を学びますか?
入力変数で設定を柔軟かつ再利用可能にし、出力値でデプロイしたインフラから重要な情報を取り出す方法を学びます。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「変数と出力」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。