Pravidlo Linter – žádná pevně zakódovaná adresa URL prostředí
Toto pravidlo najde všechny pevně zakódované adresy URL, které se liší podle cloudového prostředí.
Kód pravidla Linteru
K přizpůsobení nastavení pravidel použijte v konfiguračním souboru Bicep následující hodnotu:
no-hardcoded-env-urls
Řešení
Místo pevně zakódovaných adres URL v souboru Bicep použijte funkci prostředí k dynamickému získání těchto adres URL během nasazování. Funkce prostředí vrátí různé adresy URL v závislosti na cloudovém prostředí, do které nasazujete.
Následující příklad tento test selže, protože adresa URL je pevně zakódovaná.
var managementURL = 'https://management.azure.com'
Test také selže při použití s concatem nebo identifikátorem URI.
var galleryURL1 = concat('https://','gallery.azure.com')
var galleryURL2 = uri('gallery.azure.com','test')
Můžete ji opravit nahrazením pevně zakódované adresy URL environment()
funkcí.
var galleryURL = environment().gallery
V některých případech ji můžete vyřešit získáním vlastnosti z nasazeného prostředku. Například místo vytvoření koncového bodu pro váš účet úložiště ho načtěte pomocí .properties.primaryEndpoints
.
param storageAccountName string
param location string = resourceGroup().location
resource sa 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: storageAccountName
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
}
}
output endpoint string = sa.properties.primaryEndpoints.web
Konfigurace
Ve výchozím nastavení toto pravidlo používá následující nastavení k určení, které adresy URL jsou zakázány.
"analyzers": {
"core": {
"verbose": false,
"enabled": true,
"rules": {
"no-hardcoded-env-urls": {
"level": "warning",
"disallowedhosts": [
"gallery.azure.com",
"management.core.windows.net",
"management.azure.com",
"database.windows.net",
"core.windows.net",
"login.microsoftonline.com",
"graph.windows.net",
"trafficmanager.net",
"datalake.azure.net",
"azuredatalakestore.net",
"azuredatalakeanalytics.net",
"vault.azure.net",
"api.loganalytics.io",
"asazure.windows.net",
"region.asazure.windows.net",
"batch.core.windows.net"
],
"excludedhosts": [
"schema.management.azure.com"
]
}
}
}
}
Můžete ho přizpůsobit přidáním souboru bicepconfig.json a použitím nových nastavení.
Další kroky
Další informace o linteru naleznete v tématu Použití linter Bicep.