• เมื่อต้องสร้างโครงสร้างพื้นฐานบนคลาวด์ หากคำนึงถึงการลดต้นทุน ความเร็วในการปรับใช้ ความสม่ำเสมอ ความเสถียร และการนำกลับมาใช้ซ้ำ การใช้เครื่องมือ IaC จะเหมาะกว่าการสร้างผ่านเว็บคอนโซล
  • Terraform เป็นโอเพนซอร์ส และเป็นหนึ่งในเครื่องมือ IaC ที่มีการใช้งานมากที่สุด
  • หากต้องการเขียนโค้ด Terraform ให้มีประสิทธิภาพและได้ผลดี สิ่งสำคัญคือการใช้ความสามารถที่ Terraform มีให้อย่างเหมาะสม
  • ลูปใน Terraform
    • โดยทั่วไปภาษาเชิงประกาศจะไม่มีลูป แต่ใน Terraform มีฟังก์ชันหลากหลายที่รองรับการใช้งานลูปได้
    • ลูปที่ใช้กันบ่อย ได้แก่ count, for_each
      • พารามิเตอร์ count: วนซ้ำรีซอร์สและโมดูล
      • นิพจน์ for_each: วนซ้ำรีซอร์ส บล็อกอินไลน์ภายในรีซอร์ส และโมดูล
    • วิธีใช้ลูปแต่ละแบบ
      • count: เหมาะเมื่อรีซอร์สที่ต้องการสร้างแทบจะเหมือนกันทั้งหมดและไม่มีการเปลี่ยนแปลง ทำให้สร้างได้รวดเร็วและกระชับ
      • for_each: เหมาะกับรีซอร์สที่มีชื่อเฉพาะ มีข้อมูลเฉพาะของตัวเอง หรือเป็นรีซอร์สที่ไม่ควรถูกสร้างใหม่ ช่วยให้สร้างและแก้ไขได้อย่างปลอดภัย
  • Count
    • พารามิเตอร์ count รับค่าเป็นจำนวนเต็ม และใช้วนซ้ำเพื่อสร้างทั้งรีซอร์สหรือโมดูล
    • เมื่อกำหนดด้วย count จะสามารถใช้ count.index เพื่อเข้าถึงดัชนีที่สร้างจาก count ได้
    • ข้อจำกัดของ Count
      • count จะวนซ้ำทั้งรีซอร์ส แต่จะไม่วนซ้ำบล็อกอินไลน์ที่อยู่ภายในรีซอร์สนั้น
      • หากลบค่าตรงกลางของรีซอร์สที่สร้างด้วย count ค่าทั้งหมดที่อยู่ถัดไปจะถูกลบแล้วสร้างใหม่ แม้ผลลัพธ์สุดท้ายจะเหมือนเดิม แต่หากเป็นรีซอร์สที่ไม่ควรถูกสร้างใหม่ก็อาจเกิดปัญหาได้
  • For_each
    • นิพจน์ for_each ใช้วนซ้ำ list, set, map เพื่อสร้างทั้งรีซอร์ส บล็อกอินไลน์ภายในรีซอร์ส และโมดูล
    • เมื่อกำหนดด้วย for_each จะสามารถใช้ each.key และ each.value เพื่อเข้าถึงคีย์และค่าที่เกี่ยวข้องได้
    • เมื่อนำ for_each ไปใช้กับรีซอร์ส จะไม่รองรับ list
    • ใน collection จะกำหนด set หรือ map ที่ต้องการวนซ้ำ และใน Config สามารถใช้ each.value เพื่อนำคีย์และค่าที่กำหนดไว้ใน Collection มาใช้ได้

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น