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.