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 Regel findet resourceGroup().___location
oder deployment().___location
wird außerhalb eines Parameterstandardwerts verwendet.
Hinweis
Diese Regel ist standardmäßig deaktiviert. Ändern Sie die Ebene in bicepconfig.json , um sie zu aktivieren.
Linter-Regelcode
Verwenden Sie den folgenden Wert in der Bicep-Konfigurationsdatei, um die Regeleinstellungen anzupassen:
no-loc-expr-outside-params
Lösung
resourceGroup().___location
und deployment().___location
sollte nur als Standardwert eines Parameters verwendet werden.
Vorlagenbenutzer haben möglicherweise eingeschränkten Zugriff auf Regionen, in denen sie Ressourcen erstellen können. Die Ausdrücke resourceGroup().___location
oder deployment().___location
könnten Benutzer blockieren, wenn die Ressourcengruppe oder -bereitstellung in einer Region erstellt wurde, auf die der Benutzer nicht zugreifen kann, wodurch verhindert wird, dass sie die Vorlage verwenden.
Bewährte Methode empfiehlt, die Speicherorte Ihrer Ressourcen festzulegen, sollte ihre Vorlage über einen Zeichenfolgenparameter mit dem Namen verfügen ___location
. Wenn Sie den ___location
Parameter standardmäßig an resourceGroup().___location
oder deployment().___location
statt diese Funktionen an anderer Stelle in der Vorlage verwenden, können Benutzer der Vorlage den Standardwert bei Bedarf verwenden, aber auch einen anderen Speicherort angeben.
resource storageaccount 'Microsoft.Storage/storageAccounts@2023-04-01' = {
___location: resourceGroup().___location
}
Sie können den Fehler beheben, indem Sie eine ___location
Eigenschaft erstellen, die standardmäßig diesen neuen Parameter verwendet und stattdessen resourceGroup().___location
verwendet:
param ___location string = resourceGroup().___location
resource storageaccount 'Microsoft.Storage/storageAccounts@2023-04-01' = {
___location: ___location
}
Das folgende Beispiel schlägt diesen Test fehl, da ___location
er verwendet resourceGroup().___location
, aber kein Parameter ist:
var ___location = resourceGroup().___location
Sie können den Fehler beheben, indem Sie die Variable in einen Parameter umwandeln:
param ___location string = resourceGroup().___location
Wenn Sie Azure PowerShell zum Bereitstellen in einem Abonnement, einer Verwaltungsgruppe oder einem Mandanten verwenden, sollten Sie einen anderen Parameternamen als ___location
. Die Befehle New-AzDeployment, New-AzManagementGroupDeployment und New-AzTenantDeployment haben einen Parameter namens ___location
. Dieser Befehlsparameter hat einen Konflikt mit dem Parameter in der Bicep-Datei. Sie können diesen Konflikt vermeiden, indem Sie einen Namen wie rgLocation
z. B. .
Sie können beim Bereitstellen in einer Ressourcengruppe für einen Parameternamen verwenden ___location
, da New-AzResourceGroupDeployment keinen Parameter mit dem Namen ___location
hat.
Nächste Schritte
Weitere Informationen über den Linter finden Sie unter Verwendung des Bicep-Linters.