Terraform / دليل حلول تحريري

اختيار المزود والخصائص غير المدعومة

شخص توافق الأداة والأصل وتقاطع القيود والحزمة والمخطط كمراحل مختلفة.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى

قاعدة معرفة للقراءة فقط · بلا تعليقات عامة

تعرّف على الأعراض

تشير Inconsistent dependency lock file و Failed to query available provider packages و Unsupported argument إلى حدود مختلفة بين الاختيار والمخطط.

قد يوافق المصدر required_version ويستخدم مزوداً غير مقصود؛ فأرقام الأداة والإضافة مستقلة.

افهم الأسباب المحتملة

  • للمصدر والاسم المحلي والتقاطع والمختار والسلامة أدوار مختلفة، ولا يثبت المحلل خاصية المزود.
  • يحفظ القفل المزود لا الموديولات، وقد لا تتيح قيود الأبناء اختياراً واحداً متوافقاً.

صنف الفشل الأول الفعلي

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

اقرأ المجالات المستقلة صراحة

يستهدف الجذر التعليمي Terraform1.16.x ومجال تصحيحات Random3.9 مستقلاً. هذه قيود لا دليل اعتماد مثبت. تضبط provider خصائص المزود ولا تعوض required_providers ومصدره. لا تختلق بصمات لإظهار مدخل قفل صالحاً. يجب أن تمر التغييرات الحقيقية عبر تحديث معتمد وفحص سلامة. يظل دعم حقل مورد معين تابعاً لمخطط الإصدار المختار بالضبط.

hcl فصل توافق الأداة والمزود
terraform {
  required_version = ">= 1.16.0, < 1.17.0"
  required_providers {
    random = {
      source  = "hashicorp/random"
      version = "~> 3.9.0"
    }
  }
}

يقيد الأول الأداة والثاني Random. لا يقدم اعتماداً ولا يهيأ، وتظل الخاصية محتاجة مخطط النسخة المختارة.

تحتاج الموديولات اختياراً مشتركاً متوافقاً

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

python تقييم قيدين مستقرين مصطنعين
available = [(3, 7, 2), (3, 9, 0), (4, 0, 0)]
first = lambda v: (3, 7, 0) <= v < (4, 0, 0)
second = lambda v: (3, 9, 0) <= v < (3, 10, 0)
compatible = [v for v in available if first(v) and second(v)]
print('compatible=' + ','.join('.'.join(map(str, v)) for v in compatible))
الناتج المتوقع
compatible=3.9.0

يلائم 3.9.0 المجالين فقط؛ والقائمة تعليمية لا رد سجل أو جرد تثبيت. لا تنزيل أو تهيئة أو تعديل قفل.

عالج الخاصية عند حد المورد الفعلي

عند Unsupported argument افحص نوع المورد والمصدر والإصدار المختار والتداخل والتهجئة ودعم الميزة. قد لا توجد ميزة الوثائق العامة الحالية بالنسخة المقفلة. صحح الإعداد أو راجع تحديث اعتماد مقصوداً ومختبراً؛ فلا يرقى المزود بتغيير required_version. وتضبط aliases إعدادات إصدار إضافة واحد، ولا تحل وحدها مطالبات إصدارات متناقضة.

تحقق من نجاح الإصلاح

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

امنع تكرار المشكلة

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

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