ตัวแปรและผลลัพธ์
เรียนรู้การใช้ตัวแปรอินพุตเพื่อทำให้การตั้งค่ามีความยืดหยุ่นและนำกลับมาใช้ใหม่ได้ รวมถึงค่าผลลัพธ์สำหรับดึงข้อมูลสำคัญจากโครงสร้างพื้นฐานที่นำไปใช้งาน
ตัวแปรและผลลัพธ์ เป็นบทเรียน Terraform Infrastructure as Code ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 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
- ส่งข้อมูลระหว่างการกำหนดค่าของเทอร์ราฟอร์ม โดยเฉพาะเมื่อใช้โมดูล
- ช่วยให้เห็นได้ง่ายว่าเทอร์ราฟอร์มจัดเตรียมอะไรไว้บ้าง
ประกาศค่าเอาต์พุตของคุณ
คุณประกาศค่าเอาต์พุตในไฟล์ .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ตัวแปรและเอาต์พุตในการใช้งานจริง
มารวมสิ่งที่เราเรียนรู้กัน ตัวอย่างนี้ใช้ตัวแปรสำหรับเนื้อหาและสภาพแวดล้อม และส่งออกชื่อไฟล์กับเนื้อหา ให้สร้างไฟล์สามไฟล์นี้ในไดเรกทอรีหนึ่ง:
# 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
}ตรวจสอบความเข้าใจอย่างรวดเร็ว: ตัวแปรและเอาต์พุต
ข้อใดต่อไปนี้กล่าวถึงตัวแปรและเอาต์พุตของเทอร์ราฟอร์มได้ TRUE?
สรุป: ตัวแปรและเอาต์พุต
ทำได้ดีมาก! คุณได้เรียนรู้วิธีทำให้การกำหนดค่าของเทอร์ราฟอร์มทำงานแบบไดนามิกแล้ว:
- ตัวแปรอินพุตช่วยให้คุณกำหนดพารามิเตอร์สำหรับโครงสร้างพื้นฐานได้
- คุณสามารถระบุค่าตัวแปรผ่าน CLI ไฟล์
.tfvarsหรือ ตัวแปรสภาพแวดล้อม - ค่าเอาต์พุตช่วยให้คุณดึงและแสดงข้อมูลสำคัญเกี่ยวกับทรัพยากรที่นำไปใช้งานแล้ว
ถัดไป คุณจะเรียนรู้ว่าเทอร์ราฟอร์มติดตามโครงสร้างพื้นฐานของคุณอย่างไรด้วยการจัดการสถานะ!
คำถามที่พบบ่อย
บทเรียน “ตัวแปรและผลลัพธ์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ตัวแปรและผลลัพธ์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Terraform Infrastructure as Code ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Terraform Infrastructure as Code มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ตัวแปรและผลลัพธ์”
เรียนรู้การใช้ตัวแปรอินพุตเพื่อทำให้การตั้งค่ามีความยืดหยุ่นและนำกลับมาใช้ใหม่ได้ รวมถึงค่าผลลัพธ์สำหรับดึงข้อมูลสำคัญจากโครงสร้างพื้นฐานที่นำไปใช้งาน คุณปฏิบัติ Terraform Infrastructure as Code ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ