Aracılığıyla paylaş


İş boyutunun aşılmasıyla ilgili hataları düzeltme

Bu makalede ve DeploymentJobSizeExceededException hatalarının nasıl çözüleceğini JobSizeExceededException açıklanmaktadır. Bicep dosyası veya Azure Resource Manager şablonu (ARM şablonu) dağıttığınızda iş boyutu aşıldı hataları oluşabilir.

Belirti

Şablon dağıtırken, dağıtımın sınırları aştığını belirten bir hata alırsınız.

Neden

Bu hata, dağıtım izin verilen boyut sınırlarını aştığında oluşur. Genellikle şablon veya dağıtım işi çok büyük olduğunda görünür. Şablonların boyutlarının dağıtım için doğrulanmasından önce sıkıştırıldığını, dolayısıyla geçerli sınırların şablonun gerçek boyutundan daha büyük olabileceğini unutmayın.

Dağıtım işi boyutu sınırı, istekle ilgili meta veriler de dahil olmak üzere sıkıştırmadan sonra 1 MB'tır. Büyük şablonlar için meta verilerin ve şablonun birleşik boyutu bu sınırı aşabilir.

Sıkıştırılmış şablon boyutunun kendisi 4 MB'ı aşamaz ve tek tek her kaynak tanımı sıkıştırmadan sonra 1 MB'ı aşamaz. Bu sınırlar, tüm değişkenler ve parametreler için çözümlenmiş değerleri içeren birden çok örnek oluşturmak üzere döngüleri kullanan kaynak tanımları için genişletme sonrasında şablonun son durumu için geçerlidir.

Diğer şablon sınırları şunlardır:

  • 256 parametre
  • 256 değişken
  • 800 kaynak (kopya sayısı dahil)
  • 64 çıkış değeri
  • Şablon ifadesinde 24.576 karakter

Çözüm 1: Ad boyutunu küçültme

Parametreler, değişkenler ve çıkışlar için kullandığınız adların uzunluğunu kısaltmayı deneyin. Bu değerler döngüler halinde yinelendiğinde, uzun bir ad birçok kez çarpılır.

Çözüm 2: Şablonu basitleştirme

Dosyanız çok sayıda farklı kaynak türü dağıttığında, bunu modüllere bölmeyi göz önünde bulundurun. Kaynak türlerinizi mantıksal gruplara bölün ve her grup için bir modül ekleyin. Örneğin, çok sayıda ağ kaynağı dağıtmanız gerekiyorsa, bu kaynakları bir modüle taşıyabilirsiniz.

Diğer kaynakları örtük bağımlılıklar olarak ayarlayabilir ve modüllerin çıkışından değerler alabilirsiniz.

Bicep modülleri yerine şablon belirtimlerini kullanın. Bicep modülleri, iç içe şablonlar içeren tek bir ARM şablonuna dönüştürülür.

Çözüm 3: Bağımlılıkları dikkatle kullanma

Bir kaynak sembolik adıyla başka bir kaynağa başvurduğunda oluşturulan örtük bir bağımlılık kullanın. Çoğu dağıtımda, açık bir bağımlılık kullanmak dependsOn ve oluşturmak gerekli değildir.

Karmaşık bağımlılıklar veri sınırlarını hızla kullanabilir. Örneğin, n kaynak döngüsünün başka bir n kaynak döngüsüne bağlı olması, O(n²) verilerinin depolanmasına neden olur. Buna karşılık, bir döngüdeki her kaynak yalnızca diğer döngüdeki karşılıklarına bağlıysa, O(n) verilerine neden olur. Bu fark hafif görünebilir, ancak depolama etkisi çok hızlı bir şekilde artar.

Çözüm 4: Sıkıştırılamaz verileri azaltma

Sertifikalar veya ikili dosyalar gibi büyük miktarda sıkıştırılamaz veri ya da şablon veya parametrelerde düşük sıkıştırma oranına sahip veriler dahil olmak boyut sınırını hızla tüketir.