Beheben von Fehlern des Typs „Auftragsgröße überschritten“

In diesem Artikel wird beschrieben, wie Sie die Fehler JobSizeExceededException und DeploymentJobSizeExceededException beheben. Die Fehler vom Typ „Auftragsgröße überschritten“ können auftreten, wenn Sie eine Bicep-Datei oder eine Azure Resource Manager-Vorlage (ARM-Vorlage) bereitstellen.

Symptom

Bei der Bereitstellung einer Vorlage erhalten Sie eine Fehlermeldung, die besagt, dass die Bereitstellung Grenzwerte überschritten hat.

Ursache

Dieser Fehler wird angezeigt, wenn die Bereitstellung einen zulässigen Grenzwert überschreitet. Dies tritt in der Regel auf, wenn Ihre Vorlage oder der Auftrag für die Bereitstellung zu groß ist.

Der Bereitstellungsauftrag darf 1 MB nicht überschreiten, und er enthält Metadaten zur Anforderung. Bei großen Vorlagen können die Metadaten, die mit der Vorlage kombiniert werden, die zulässige Größe für einen Auftrag überschreiten.

Die Vorlage darf 4 MB nicht überschreiten, und jede Ressourcendefinition darf 1 MB nicht überschreiten. Die Beschränkung gilt für den endgültigen Status der Vorlage, nachdem sie für Ressourcendefinitionen erweitert wurde, die Schleifen zum Erstellen von Instanzen verwenden. Der endgültige Zustand enthält auch die aufgelösten Werte für Variablen und Parameter.

Dies sind weitere Grenzwerte für Vorlagen:

  • 256 Parameter
  • 256 Variablen
  • 800 Ressourcen (einschließlich copy-Anzahl)
  • 64 Ausgabewerte
  • 24.576 Zeichen in einem Vorlagenausdruck

Lösung 1: Sorgfältige Verwendung von Abhängigkeiten

Verwenden Sie eine implizite Abhängigkeit, die erstellt wird, wenn eine Ressource mit ihrem symbolischen Namen auf eine andere Ressource verweist. Bei den meisten Bereitstellungen ist es nicht erforderlich, dependsOn zu verwenden und eine explizite Abhängigkeit zu erstellen.

Lösung 2: Vereinfachen der Vorlage

Wenn Ihre Datei viele verschiedene Ressourcentypen bereitgestellt hat, sollten Sie sie in Module unterteilen. Unterteilen Sie Ihre Ressourcentypen in logische Gruppen, und fügen Sie ein Modul für jede Gruppe hinzu. Wenn Sie beispielsweise viele Netzwerkressourcen bereitstellen müssen, können Sie diese Ressourcen in ein Modul verschieben.

Sie können andere Ressourcen als implizite Abhängigkeiten festlegen und Werte aus der Ausgabe von Modulen abrufen.

Lösung 3: Reduzieren der Größe des Namens

Versuchen Sie, die Länge der Namen zu kürzen, die Sie für Parameter, Variablen und Ausgaben verwenden. Wenn diese Werte in Schleifen wiederholt werden, wird ein langer Name viele Male multipliziert.