محتويات الدورة

Terraform / اللغة والمزود والهوية المُدارة / الدرس 3

عقود المدخلات والتحقق والمخرجات

حدد مدخلات صالحة ومخرجات مقصودة بدلاً من إخفاء الغموض بالافتراض والفراغ.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • اختر الأنواع والافتراض والغياب وشروط التحقق صراحة.
  • اشرح مدخلات الجذر ومعاملات الأبناء ونشر المخرجات.

المتغير وعد واجهة

يعرف تصريح المتغير اسم المدخل ونوعه ووصفه وافتراضه وقبول null وشروط التحقق والحساسية. يصف النوع بنية القيمة، وتضيف الشروط قواعد مجالها؛ فلا تعني number وحدها أن النسخ عدد صحيح موجب ضمن ميزانية. تشرح الواجهة المفيدة سبب القيمة والتركيبات المدعومة. اجعل الافتراض محافظاً وصريحاً، ولا تختر حساباً حقيقياً أو منطقة أو خلفية أو سلوك حذف بافتراضي غير موثق.

تحقق من المجال المعلن كاملاً

يقبل المثال الكامل عدد نسخ اصطناعياً من واحد إلى خمسة ويرفض الكسور. تميز nullable=false كمية مطلوبة معلومة من غياب اختياري. ينبغي أن تشرح رسالة التحقق خطأ المستدعي دون كشف أسرار. هذه شروط واجهة تعليمية وليست مقاسات إنتاج عامة. ولا يغني فهمها عن تقييم Terraform للإعداد الكامل في سياقه؛ فلا نشغل هنا تحققاً أو أي أمر ذي حالة.

hcl عقد مدخل محدود كامل
terraform {
  required_version = ">= 1.16.0, < 1.17.0"
}

variable "replicas" {
  type     = number
  default  = 2
  nullable = false
  validation {
    condition     = var.replicas >= 1 && var.replicas <= 5 && floor(var.replicas) == var.replicas
    error_message = "Replicas must be an integer from 1 to 5."
  }
}

output "replicas" {
  value = var.replicas
}

يفي الافتراضي 2 بالشروط، ويخالفها الصفر و 6 و 2.5 لأسباب مختلفة. ينشر المخرج القيمة عمداً ولا ينشئ مورداً. لا ندعي تشخيصاً أو تنفيذاً ناجحاً.

تعتمد مصادر الإدخال على سياق التنفيذ

تأتي قيم الجذر من آليات CLI وملفات القيم ومتغيرات البيئة والافتراضيات وفق أولوياتها الموثقة. يتلقى الابن معاملات من الموديول المستدعي، ولا يقرأ ملفات قيم الأب تلقائياً كواجهة مستقلة. وقد تقدم أنظمة الأتمتة القيم بصورة مختلفة. سجل المصدر والمراجعة للمدخل المهم؛ فنجاح افتراضات المطور محلياً لا يثبت أن العمل الآلي استعمل القيم أو مساحة العمل نفسها.

افحص الحالات المعلنة دون تشغيل Terraform

يفحص نموذج Python أربع قيم رقمية محدودة وفق الشرط المعلن فقط. ولا يحاكي تحويل أنواع Terraform أو المجهول أو null أو أولوية مصادر المدخل. يجعل هذا النطاق الصغير النتائج قابلة للتحقق مستقلاً دون مس السياق التشغيلي. أما الاختبار الحقيقي فينبغي أن يشمل المفقود و null والأطراف والرسائل المفيدة بمرافق Terraform الموثقة، داخل بيئة مصرح بها مستقلاً.

python تقييم أربع حالات رقمية ثابتة
for value in (0, 2, 2.5, 6):
    valid = 1 <= value <= 5 and value == int(value)
    print(f'{value}: {valid}')
الناتج المتوقع
0: False
2: True
2.5: False
6: False

يقبل النموذج 2 فقط من الحالات، ومدخلاته أرقام محددة فلا يحلل نصاً مجهولاً أو يصل لمساحة. هو دليل حسابي لا تحقق Terraform.

المخرجات حدود نشر مقصودة

تنشر المخرجات قيماً للمستدعين والأتمتة والمشغلين. انشر أصغر واجهة مستقرة لازمة بدلاً من كائن مورد كامل يتغير مخططه مع الترقية. تغير الحساسية العرض ولا تشفر الحالة أو تمحو كل المسارات الآلية. وثق المالك والمستهلك قبل تعديل الاسم أو النوع؛ فقد يكسر حذف المخرج إعداداً آخر دون حذف مورد بعيد. لذلك يهم توافق الواجهة بقدر أهمية دورة البنية.

الأخطاء الشائعة وإصلاحها

Invalid value for variable.

لماذا يحدث؟
تطابق القيمة النوع وتخالف قاعدة المجال.
كيف تصلحه؟
صحح المدخل أو راجع المتطلب ولا تحذف الشرط للتقدم.
كيف تتجنب تكراره؟
اختبر الحدود واشرح سبب القيد.

يتلقى الابن افتراضاً غير المقصود.

لماذا يحدث؟
لم يمرر المستدعي القيمة أو خلط مصادر الجذر بالابن.
كيف تصلحه؟
افحص الاستدعاء والمعامل لا ملفاً غير مرتبط.
كيف تتجنب تكراره؟
رقم الواجهة ووثق القيم المهمة.

اعتبار المخرج الحساس تخزيناً مشفراً.

لماذا يحدث؟
خُلط الحجب بسرية الحالة والوصول.
كيف تصلحه؟
احم الحالة والمخرجات وفق محتواها.
كيف تتجنب تكراره؟
راجع التخزين والمستهلك الآلي مستقلاً عن العرض.

اختبر فهمك

1. لماذا تفشل 2.5 رغم قبول number للأرقام؟

اعرض الحل المشروح

يشترط التحقق مساواة floor للقيمة، أي الصحيح ضمن المجال. يحل النوع والمجال مشكلتين؛ فقد يكون الرقم غير صالح للنسخ. أبق الشرطين بدلاً من رفض مزود لاحق.

2. هل ينشر الموديول كل خصائص مورده الداخلي؟

اعرض الحل المشروح

انشر ما يحتاجه المستهلك. يربطه الكائن الواسع بتفاصيل المزود وقد يكشف حقولاً غير مستقرة أو حساسة. اختر المخرجات ووثقها وراجع التوافق؛ فهو قرار ملكية واجهة.

أهم ما تعلمته

  • النوع والتحقق والغياب والافتراض خيارات مستقلة.
  • انشر واجهات مستقرة بحساسية صريحة.

المراجع الرسمية