Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese Linter-Regel gibt eine Warnung aus, wenn eine Vorlage eine Microsoft.Resources/deployments-Ressource auf der Stammebene enthält.
Linter-Regelcode
Verwenden Sie den folgenden Wert in der Bicep-Konfigurationsdatei, um die Regeleinstellungen anzupassen:
no-deployments-resources
Lösung
In ARM-Vorlagen können Sie eine Vorlage mithilfe der Microsoft.Resources/deployments Ressource wiederverwenden oder modularisieren, indem Sie Vorlagen verschachteln oder verknüpfen. Weitere Informationen finden Sie unter Verwenden von verknüpften und geschachtelten Vorlagen beim Bereitstellen von Azure-Ressourcen Die folgende ARM-Vorlage ist ein Beispiel für eine geschachtelte Vorlage:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string",
"defaultValue": "[format('{0}{1}', 'store', uniqueString(resourceGroup().id))]"
},
"___location": {
"type": "string",
"defaultValue": "[resourceGroup().___location]"
}
},
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
"name": "nestedTemplate1",
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2023-04-01",
"name": "[parameters('storageAccountName')]",
"___location": "[parameters('___location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2"
}
]
}
}
}
]
}
In Bicep können Sie die Microsoft.Resources/deployments Ressource weiterhin zum Verschachteln von ARM-Vorlagen oder zum Verknüpfen externer ARM-Vorlagen verwenden. Aber es ist keine gute Idee, weil sie aufgrund der mehrfachen Auswertung zu unsicheren und schwierigen Verhaltensweisen führen kann. Außerdem gibt es kaum eine Überprüfung und Selbsterledigung aus Visual Studio Code, wenn Sie die Bicep-Datei erstellen, was die Arbeit mit schwierig macht. Die folgende Bicep-Datei schlägt diesen Test fehl, da die Vorlage Ressourcen auf der Stammebene enthält Microsoft.Resources/deployments .
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param ___location string = resourceGroup().___location
resource nestedTemplate1 'Microsoft.Resources/deployments@2025-04-01' = {
name: 'nestedTemplate1'
properties:{
mode: 'Incremental'
template: {
'$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'
contentVersion: '1.0.0.0'
resources: [
{
type: 'Microsoft.Storage/storageAccounts'
apiVersion: '2023-04-01'
name: storageAccountName
___location: ___location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
]
}
}
}
Um das Problem zu beheben, können Sie den Befehl Bicep CLI dekompilieren . Die vorangehende ARM-Vorlage kann beispielsweise in die folgenden Bicep-Dateien dekompiliert werden:
main.bicep:
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param ___location string = resourceGroup().___location
module nestedTemplate1 './nested_nestedTemplate1.bicep' = {
name: 'nestedTemplate1'
params: {
storageAccountName: storageAccountName
___location: ___location
}
}
nested_nestedTemplate1.bicep:
param storageAccountName string
param ___location string
resource storageAccount 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: storageAccountName
___location: ___location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
Darüber hinaus können Sie mithilfe der Modul-Anweisung auch auf ARM-Vorlagen verweisen.
main.bicep:
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param ___location string = resourceGroup().___location
module nestedTemplate1 './createStorage.json' = {
name: 'nestedTemplate1'
params: {
storageAccountName: storageAccountName
___location: ___location
}
}
createStorage.json:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string",
"defaultValue": "[format('{0}{1}', 'store', uniqueString(resourceGroup().id))]"
},
"___location": {
"type": "string",
"defaultValue": "[resourceGroup().___location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2023-04-01",
"name": "[parameters('storageAccountName')]",
"___location": "[parameters('___location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2"
}
]
}
Nächste Schritte
Weitere Informationen über den Linter finden Sie unter Verwendung des Bicep-Linters.