🎯 מטרות הלמידה
- הבנת בעיית ה-code duplication כשמוסיפים tags לכל משאב
- הגדרת locals כמשתנים זמניים (temporary variables) ב-Terraform
- שימוש ב-merge() function כדי לשלב common tags עם resource-specific tags
- שימוש ב-default_tags בתוך AWS provider כאלטרנטיבה
- דוגמאות ממשיות של refactoring קוד עם locals
חלק 1: בעיית Code Duplication בTags
הסבר
כשמוסיפים tags לכל משאב (VPC, Subnet, Route Table, Internet Gateway), אנחנו חוזרים על אותו הקוד כמה פעמים. אם נרצה לשנות את ה-tags (למשל להוסיף cost_center או environment), נצטרך לעדכן את הקוד בכל משאב בנפרד. זה pattern רע שנקרא DRY violation (Don't Repeat Yourself). Locals מאפשרים לנו לפתור בעיה זו בקלות.
נקודות מפתח
- Duplication הוא סימן לבעיה בעיצוב הקוד
- אם צריך לתחזוקה tags בארבע מקומות שונים, זה בעייתי
- Locals מאפשרים להגדיר משתנים שאפשר להשתמש בהם בכמה מקומות
- זה ברור מ-terraform plan אם יש שינויים לא רצויים
חלק 2: מהם Locals (משתנים מקומיים)
הסבר
Locals הם משתנים זמניים ב-Terraform שדומים למשתנים בתוך function בתוכנה. הם לא:
- Input variables (לא נקבלים מחוץ ללפרוייקט)