İş 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.