تم تجاوز أخطاء حل حجم المهمة

توضح هذه المقالة كيفية حل الأخطاء JobSizeExceededException و DeploymentJobSizeExceededException. يمكن أن تحدث أخطاء تخطي حجم المهمة عند توزيع ملف Bicep أو قالب Azure Resource Manager (قالب ARM).

العَرَض

عند توزيع قالب، تتلقى خطأ يفيد بأن التوزيع قد تجاوز الحدود.

السبب

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

لا يمكن أن تتجاوز مهمة النشر 1 ميغابايت ويتضمن ذلك بيانات التعريف حول الطلب. بالنسبة للقوالب الكبيرة، يمكن أن تتجاوز بيانات التعريف المدمجة مع القالب الحجم المسموح به لمهمة ما.

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

حدود القوالب الأخرى هي:

  • 256 معلمة
  • 256 متغيراً
  • 800 من الموارد (بما في ذلك عدد النسخ)
  • 64 قيم الإخراج
  • 24576 حرفاً في تعبير قالب

الحل 1: استخدام التبعيات بعناية

استخدم تبعية ضمنية يتم إنشاؤها عندما يشير مورد إلى مورد آخر باسمه الرمزي. بالنسبة لمعظم عمليات التوزيع، ليس من الضروري استخدام dependsOnوإنشاء تبعية صريحة.

الحل 2: تبسيط القالب

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

يمكنك تعيين موارد أخرى كتبعيات ضمنية، والحصول على قيم من إخراج الوحدات النمطية.

الحل 3: تقليل حجم الاسم

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