flatten כדי לשטח רשימות מקוננותcount ל-for_each ומתי להשתמש בכל אחדמה הבעיה:
ה-role_policies שהגדרת הוא map של role => [policy1, policy2, ...]. כדי לצרף policies לתפקידים צריך לייצר resource אחד לכל זוג של (role, policy) — כלומר צריך להפוך את ה-map לרשימת זוגות.
מה עושים:
הוסף ל-locals בלוק roles.tf entry חדש בשם role_policies_list.
איך בונים:
for expression כפול — הראשון עובר על כל role, השני עובר על כל policy בתוך אותו rolerole ו-policyflatten() — בלי זה תקבל רשימה של רשימות💡 מבנה ה-
forהכפול:[for role, policies in local.role_policies : [for policy in policies : {...}]]
💡
flatten()מקבלת רשימה מקוננת ומחזירה רשימה שטוחה —[[a,b],[c]] => [a,b,c]
בדוק את התוצאה:
הוסף זמנית output:
output "policies" {
value = local.role_policies_list
}