بنية الشفرة واتفاقيات التسمية
اعتمد أفضل الممارسات لتنظيم ملفات ووحدات Terraform، إلى جانب اتفاقيات تسمية متسقة للموارد والمتغيرات.
بنية الشفرة واتفاقيات التسمية درس مجاني في Terraform Infrastructure as Code على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Terraform Infrastructure as Code، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Terraform Infrastructure as Code 4 دروس في المجموع.
لماذا ننظم شيفرة Terraform؟
كما أن تنظيم مساحة عملكم الفعلية يسهل استخدامها، فإن تنظيم شيفرة Terraform يجعل فهمها وإدارتها والتعاون عليها أسهل.
يحسّن التنظيم الجيد سهولة القراءة، ويقلل الأخطاء، ويساعد أعضاء الفريق الجدد على بدء العمل بسرعة.
ملفات Terraform الأساسية
تبدأ مشاريع Terraform عادةً بعدة ملفات أساسية. ويُعد تنظيم التهيئة ضمن هذه الملفات من أفضل الممارسات الشائعة:
main.tf: يعرّف الموارد والوحدات.variables.tf: يصرّح بجميع متغيرات الإدخال.outputs.tf: يعرّف قيم الإخراج من البنية التحتية.versions.tf: يحدد إصدارات Terraform وموفّرات الخدمة.
تسمية الموارد
تسهّل التسمية المتسقة تحديد الموارد. اتبعوا هذه الإرشادات العامة للاسم المحلي (مثل my_instance في resource "aws_instance" "my_instance"):
- استخدموا أسماء وصفية: ما وظيفة المورد؟
- استخدموا الشرطات أو الشرطات السفلية: لتحسين سهولة القراءة (مثل
web-server-sgأوweb_server_sg). - تجنبوا الأسماء العامة: الاسم
serverأقل فائدة منapp-frontend-server.
يجب أن تكون أسماء الموارد المحلية في Terraform فريدة ضمن الوحدة.
اتفاقيات تسمية المتغيرات
تجعل المتغيرات تهيئاتكم مرنة. وتُعد تسميتها بشكل جيد أمرًا أساسيًا:
- أحرف صغيرة مع شرطات سفلية: هذه هي الاتفاقية الأكثر شيوعًا (مثل
instance_typeوvpc_id). - كونوا محددين: ما الذي يتحكم فيه هذا المتغير؟
- أضيفوا أوصافًا: اشرحوا الغرض من المتغير بوضوح.
تساعد أسماء المتغيرات الجيدة الآخرين على فهم مدخلات الوحدة المتوقعة.
تسمية قيم الإخراج
تكشف قيم الإخراج معلومات مهمة حول البنية التحتية المنشورة. وتساعد تسميتها بشكل متسق المستفيدين منها:
- أحرف صغيرة مع شرطات سفلية: كما هو الحال مع المتغيرات، مثل
web_server_ip. - وصف القيمة: ما المعلومات التي توفرها؟
- أضيفوا أوصافًا: وهي ضرورية لمخرجات الوحدات لتوضيح ما تُعيده.
مثال: تهيئة بسيطة
يوضح ملف main.tf الكامل هذا ممارسات التسمية الجيدة لمورد ومتغير وقيمة إخراج. يمكنكم تشغيل terraform init وterraform plan باستخدامه.
terraform {
required_providers {
null = {
source = "hashicorp/null"
version = "~> 3.0"
}
}
}
resource "null_resource" "example_web_server" {
# Descriptive resource name
triggers = {
always_run = timestamp()
}
}
variable "app_environment" {
description = "The application's deployment environment (e.g., dev, prod)."
type = string
default = "development"
}
output "resource_unique_id" {
description = "The unique ID of the example null resource."
value = null_resource.example_web_server.id
}تنظيم وحدات Terraform
بالنسبة إلى المكونات القابلة لإعادة الاستخدام، تتمتع الوحدات ببنية واضحة خاصة بها:
- الوحدة الجذر: الدليل الأعلى مستوى الذي يحتوي على التهيئة الرئيسية.
- الوحدات الفرعية: أدلة فرعية، يحتوي كل منها على ملفات
main.tfوvariables.tfوoutputs.tfالخاصة به، وغير ذلك. - README.md: ضروري لشرح الغرض من الوحدة ومدخلاتها ومخرجاتها.
يحافظ ذلك على استقلالية الوحدات ويسهّل إعادة استخدامها.
تنظيم مجلدات المشروع
إلى جانب تنظيم الملفات، يُعد تنظيم مجلدات المشروع أمرًا بالغ الأهمية، لا سيما في الإعدادات الكبيرة:
- افصلوا البيئات: أنشئوا مجلدات مخصصة لكل من
devوstagingوprod، على أن يحتوي كل منها على تهيئته الخاصة. - مجلد الوحدات المشتركة: أنشئوا دليلًا باسم
modulesللوحدات المخصصة القابلة لإعادة الاستخدام. - المجلد الجذر للموفّرات: يحدد المجلد الأعلى مستوى عادةً الموفّرات وواجهة التخزين الخلفية للحالة.
يمنع ذلك انحراف التهيئة ويحسّن سهولة الإدارة بين البيئات.
مثال على مجلد المشروع
قد يبدو مشروع Terraform نموذجي متعدد البيئات بهذا الشكل، إذ يوفر فصلًا واضحًا وإمكانية إعادة الاستخدام:
.
├── modules/
│ ├── vpc/
│ │ ├── main.tf
│ │ ├── variables.tf
│ │ └── outputs.tf
│ └── ec2-instance/
│ ├── main.tf
│ └── variables.tf
├── environments/
│ ├── dev/
│ │ └── main.tf
│ ├── staging/
│ │ └── main.tf
│ └── prod/
│ └── main.tf
└── README.mdتحققوا من فهمكم
أي مما يلي يُعد أفضل ممارسة لتسمية متغير إدخال في Terraform يحدد عدد المثيلات؟
مراجعة: البنية والتسمية
تعلمنا أن شيفرة Terraform المنظمة جيدًا وذات التسمية المتسقة ضرورية لسهولة القراءة والصيانة والتعاون ضمن الفريق.
- نظّموا الملفات في
main.tfوvariables.tfوoutputs.tf. - استخدموا أسماء وصفية بأحرف صغيرة وشرطات سفلية للموارد والمتغيرات وقيم الإخراج.
- نظّموا الوحدات ومجلدات المشروع لإتاحة إعادة الاستخدام وفصل البيئات.
تمهّد هذه الممارسات لإدارة فعّالة للبنية التحتية باستخدام الشيفرة!
الأسئلة الشائعة
هل درس «بنية الشفرة واتفاقيات التسمية» مجاني؟
نعم — نص درس «بنية الشفرة واتفاقيات التسمية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Terraform Infrastructure as Code، انتقل إلى CoddyKit PRO. تتضمن دورة Terraform Infrastructure as Code 4 دروس في المجموع.
ماذا ستتعلم في «بنية الشفرة واتفاقيات التسمية»؟
اعتمد أفضل الممارسات لتنظيم ملفات ووحدات Terraform، إلى جانب اتفاقيات تسمية متسقة للموارد والمتغيرات. تتمرن على Terraform Infrastructure as Code مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Terraform Infrastructure as Code؟
لا تُشترط خبرة سابقة. Terraform Infrastructure as Code على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «بنية الشفرة واتفاقيات التسمية»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Terraform Infrastructure as Code هذا؟
نعم. كل درس في Terraform Infrastructure as Code يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- بنية الشفرة واتفاقيات التسمية
- التحكم في الإصدارات باستخدام Git
- التعاون بين أعضاء الفريق وسير العمل
- التوثيق وسير عمل الخدمة الذاتية