共用方式為


解決超過作業大小的錯誤

本文說明如何解決 JobSizeExceededExceptionDeploymentJobSizeExceededException 錯誤。 當您部署 Bicep 檔案或 Azure Resource Manager 範本 (ARM 範本) 時,可能會發生作業超過大小的錯誤。

徵兆

部署範本時,您會收到錯誤,指出部署已超過限制。

原因

當部署超過允許的大小限制時,就會發生此錯誤。 範本或部署作業太大時,通常會顯示它。 請注意,範本會在驗證其大小以進行部署之前壓縮,因此有效限制可能大於範本的實際大小。

壓縮之後,部署作業大小限製為1 MB,包括有關要求的元數據。 對於大型範本,元數據和範本的組合大小可能會超過此限制。

壓縮的範本大小本身不能超過 4 MB,而且每個個別資源定義在壓縮後不能超過 1 MB。 這些限制適用於範本在擴充之後針對任何使用迴圈來建立多個實例的資源定義,包括所有變數和參數的已解析值之後,範本的最終狀態。

其他範本限制如下:

  • 256 個參數
  • 256 個變數
  • 800 個資源 (包含複本計數)
  • 64 個輸出值
  • 範本運算式中的 24,576 個字元

解決方案 1:減少名稱大小

請嘗試縮短用於參數變數輸出的名稱長度。 當這些值在迴圈中重複時,完整名稱會變成好幾倍。

解決方案 2:簡化範本

當您的檔案部署許多不同的資源類型時,請考慮將其分成模組。 將您的資源類型分成邏輯群組,並為每個群組新增一個模組。 例如,如果您需要部署許多網路資源,您可以將這些資源移至模組。

您可以將其他資源設定為隱含相依性,並從模組的輸出取得值

使用 範本規格 ,而不是 Bicep 模組。 Bicep 模組會轉換成具有巢狀範本的單一 ARM 範本。

解決方案3:小心使用相依性

使用在一個資源依符號名稱參考另一個資源時所建立的 隱含相依性。 在大多數部署中,不需要使用 dependsOn 和建立明確相依性

複雜的相依性可以快速取用數據限制。 例如,如果 n 資源的迴圈相依於 n 資源的另一個迴圈,則會導致儲存 O(nRl) 數據。 相較之下,如果一個迴圈中的每個資源只相依於另一個迴圈中的對應專案,則會產生 O(n) 數據。 這種差異似乎很微妙,但記憶體影響會很快成長。

解決方案 4:減少可壓縮的數據

在範本或參數中包含大量可壓縮的數據,例如憑證或二進位檔,或範本或參數中壓縮比例較低的數據,將會快速取用大小限制。