การนำเข้าทรัพยากรที่มีอยู่
เรียนรู้วิธีนำเข้าโครงสร้างพื้นฐานคลาวด์ที่มีอยู่แล้วเข้าสู่สถานะของ Terraform เพื่อให้ทรัพยากรเดิมอยู่ภายใต้การจัดการด้วย IaC
การนำเข้าทรัพยากรที่มีอยู่ เป็นบทเรียน Terraform Infrastructure as Code ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Terraform Infrastructure as Code และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Terraform Infrastructure as Code มีบทเรียนทั้งหมด 4 บทเรียน
นำโครงสร้างพื้นฐานที่มีอยู่มาใช้กับ IaC
บางครั้งคุณอาจมีทรัพยากรบนคลาวด์ที่สร้างขึ้นด้วยตนเองหรือสร้างโดยเครื่องมืออื่น การนำเข้า Terraform ช่วยให้คุณนำทรัพยากรที่มีอยู่เหล่านี้มาอยู่ภายใต้การจัดการของ Terraform ได้
ซึ่งหมายความว่า Terraform จะติดตามสถานะของทรัพยากรเหล่านั้น และคุณสามารถใช้ไฟล์การกำหนดค่าของคุณเพื่อใช้การเปลี่ยนแปลงในอนาคตได้ ขั้นตอนนี้เป็นขั้นตอนสำคัญในการนำโครงสร้างพื้นฐานในรูปแบบโค้ด (IaC) มาใช้ในสภาพแวดล้อมแบบ "brownfield"
กรณีที่ต้องนำเข้า
การนำเข้ามีประโยชน์ในหลายสถานการณ์:
- ย้ายโครงสร้างพื้นฐานที่มีอยู่: นำทรัพยากรที่สร้างขึ้นนอก Terraform เข้ามาอยู่ในกระบวนการทำงาน IaC ของคุณ
- ทยอยนำ Terraform มาใช้: เริ่มต้นด้วยทรัพยากรที่มีอยู่ แทนการสร้างทุกอย่างขึ้นใหม่
- กู้คืนจากการสูญหายของสถานะ: เชื่อมโยง Terraform กับทรัพยากรอีกครั้ง หากไฟล์สถานะสูญหาย (แม้กรณีนี้จะเกิดขึ้นไม่บ่อยเมื่อใช้สถานะระยะไกล)
ทำความเข้าใจคำสั่งนำเข้า
โครงสร้างพื้นฐานของคำสั่ง terraform import นั้นตรงไปตรงมา คำสั่งนี้บอกให้ Terraform ค้นหาทรัพยากรที่มีอยู่ในผู้ให้บริการคลาวด์ของคุณ แล้วเพิ่มทรัพยากรนั้นลงในไฟล์สถานะ โดยเชื่อมโยงกับบล็อกทรัพยากรในการกำหนดค่าของคุณ
คำสั่งนี้ต้องใช้ข้อมูลหลักสองส่วน ได้แก่ ADDRESS ของทรัพยากรใน Terraform และ ID ของทรัพยากรนั้นจากผู้ให้บริการคลาวด์
ADDRESS ของทรัพยากรคืออะไร
ADDRESS ของทรัพยากร คือวิธีที่ Terraform ใช้ระบุทรัพยากรเฉพาะภายในการกำหนดค่าของคุณ โดยเป็นไปตามรูปแบบ resource_type.resource_name
resource_type: ประเภทของทรัพยากร (เช่นaws_s3_bucket,azurerm_resource_group)resource_name: ชื่อภายในที่คุณกำหนดให้ทรัพยากรในการกำหนดค่า Terraform (เช่นmy_bucket,web_app)
ADDRESS นี้ต้องมีอยู่แล้วในไฟล์ .tf ของคุณ
ค้นหา ID ของคลาวด์
ทรัพยากรทุกรายการในผู้ให้บริการคลาวด์ (เช่น AWS, Azure, GCP) จะมีตัวระบุที่ไม่ซ้ำกัน ซึ่งมักเรียกว่า ID คุณจะต้องใช้ ID นี้เพื่อบอก Terraform ว่าต้องการนำเข้าทรัพยากรที่มีอยู่รายการใด
คุณสามารถค้นหา ID นี้ได้ในคอนโซลของผู้ให้บริการคลาวด์ ผ่าน CLI ของผู้ให้บริการ หรือผ่าน API ของผู้ให้บริการ ตัวอย่างเช่น ID ของบักเก็ต AWS S3 คือชื่อของบักเก็ต ส่วนอินสแตนซ์ EC2 จะมี ID ของอินสแตนซ์ในลักษณะ i-0abcdef1234567890
กำหนด HCL ก่อนนำเข้า
ขั้นตอนสำคัญ: ก่อนเรียกใช้ terraform import คุณต้องกำหนดบล็อกทรัพยากรที่สอดคล้องกันไว้ในไฟล์การกำหนดค่า Terraform ของคุณ (.tf files)
บล็อกนี้จะบอก Terraform ว่าควรคาดหวังทรัพยากรประเภทใดและทรัพยากรนั้นควรมีแอตทริบิวต์ใดบ้าง Terraform ใช้คำจำกัดความนี้เพื่อทำความเข้าใจโครงสร้างของทรัพยากรระหว่างการนำเข้า
HCL สำหรับบักเก็ต S3
สมมติว่าคุณมีบักเก็ต AWS S3 ที่มีอยู่แล้วและชื่อ my-existing-coddykit-bucket-123 ขั้นแรก ให้กำหนดบล็อกทรัพยากรสำหรับบักเก็ตนี้ใน main.tf ของคุณ:
resource "aws_s3_bucket" "my_imported_bucket" {
bucket = "my-existing-coddykit-bucket-123"
# Add other expected attributes if known
# e.g., acl = "private"
}นำเข้าบักเก็ต S3
เมื่อมีคำจำกัดความ HCL แล้ว คุณก็สามารถเรียกใช้คำสั่ง terraform import ได้ ให้แทนที่ my-existing-coddykit-bucket-123 ด้วยชื่อ/ID จริงของบักเก็ตที่มีอยู่
ตรวจสอบให้แน่ใจว่าคุณได้เรียกใช้ terraform init ในไดเรกทอรีของคุณแล้ว
terraform import aws_s3_bucket.my_imported_bucket my-existing-coddykit-bucket-123ตรวจสอบสถานะ Terraform
หลังจากนำเข้าสำเร็จ Terraform จะเพิ่มทรัพยากรลงในไฟล์สถานะของคุณ คุณสามารถตรวจสอบได้โดยใช้ terraform state show ซึ่งจะแสดงแอตทริบิวต์ของทรัพยากรที่นำเข้า ตามที่ Terraform มองเห็น
จากนั้นจำเป็นอย่างยิ่งที่ต้องเรียกใช้ terraform plan เพื่อให้แน่ใจว่าไม่มีความแตกต่างที่ไม่คาดคิดระหว่าง HCL ของคุณกับสถานะจริงของทรัพยากรที่นำเข้า
terraform state show aws_s3_bucket.my_imported_bucketตรวจสอบอย่างรวดเร็ว: ลำดับการนำเข้า
คุณต้องการนำเข้าอินสแตนซ์ AWS EC2 ที่มีอยู่มาไว้ใน Terraform ขั้นตอนใดต่อไปนี้ที่ MUST ดำเนินการให้เสร็จ ก่อน เรียกใช้คำสั่ง terraform import
ทบทวน: นำโครงสร้างพื้นฐานมาไว้ในการจัดการ
คุณได้เรียนรู้วิธีนำทรัพยากรบนคลาวด์ที่มีอยู่มาอยู่ภายใต้การจัดการของ Terraform โดยใช้ terraform import
- ขั้นแรก กำหนดบล็อกทรัพยากร ใน HCL ของคุณ
- จากนั้นระบุ ID ของทรัพยากร จากผู้ให้บริการคลาวด์
- สุดท้าย เรียกใช้
terraform import ADDRESS ID - เรียกใช้
terraform planต่อเสมอ เพื่อปรับความแตกต่างให้สอดคล้องกัน
คำสั่งอันทรงพลังนี้ช่วยเชื่อมช่องว่างระหว่างโครงสร้างพื้นฐานที่จัดการด้วยตนเองกับสภาพแวดล้อมที่ขับเคลื่อนด้วย IaC อย่างเต็มรูปแบบ
คำถามที่พบบ่อย
บทเรียน “การนำเข้าทรัพยากรที่มีอยู่” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การนำเข้าทรัพยากรที่มีอยู่” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Terraform Infrastructure as Code ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Terraform Infrastructure as Code มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การนำเข้าทรัพยากรที่มีอยู่”
เรียนรู้วิธีนำเข้าโครงสร้างพื้นฐานคลาวด์ที่มีอยู่แล้วเข้าสู่สถานะของ Terraform เพื่อให้ทรัพยากรเดิมอยู่ภายใต้การจัดการด้วย IaC คุณปฏิบัติ Terraform Infrastructure as Code ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Terraform Infrastructure as Code หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Terraform Infrastructure as Code บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การนำเข้าทรัพยากรที่มีอยู่” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Terraform Infrastructure as Code นี้ได้ไหม
ได้ บทเรียน Terraform Infrastructure as Code ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แบ็กเอนด์สถานะระยะไกล
- การล็อกสถานะและความสอดคล้อง
- การนำเข้าทรัพยากรที่มีอยู่
- การปรับโครงสร้างสถานะด้วย moved และ removed