🎯 מטרות הלמידה


חלק 1: הקשר — למה outputs

הסבר

גם אחרי terraform apply, שם ה-bucket מופיע ב-CLI, אין דרך לשלוף אותו בצורה תכנותית מחוץ ל-Terraform. לדוגמה, בשלב CI/CD הבא שרוצים לידע את שם ה-bucket כדי להעלות קבצים אליו. זהו התפקיד של outputs — לחשוף מידע מתוך ה-state ולהפותו לשימוש ב-CLI.

בשלב זה, מבטלים את קוד ה-EC2 ב-compute.tf (עם #) כי השיעור מתמקד רק על ה-S3 ונרצה שה-apply יהיה מהיר.


חלק 2: יצירת outputs.tf

הסבר

בנייה המקובלת ל-variables.tf, כל ה-outputs מוגדרים בקובץ outputs.tf נפרד. בלוק output דורש שם ייחודי ושדה value חובה. description הוא אופציונלי — הוא לא מופיע בתוצאת terraform output אלא רק ב-terraform output -json.

את ה-value מחשבים מתוך ה-resource: aws_s3_bucket.project_bucket.bucket הוא אחד האטריבוטים שניתן לשלוף מ-resource. בעריפת העכבר על project_bucket ב-IDE ניתן לראות את כל האטריבוטים הזמינים.

קוד / תצורה

# outputs.tf
output "s3_bucket_name" {
  value       = aws_s3_bucket.project_bucket.bucket
  description = "The name of the S3 bucket."
}