Règle de linter : aucune URL d’environnement codée en dur
Cette règle recherche les URL codées en dur qui varient en fonction de l’environnement cloud.
Code de règle de linter
Utilisez la valeur suivante dans le fichier config Bicep pour personnaliser les paramètres de règle :
no-hardcoded-env-urls
Solution
Au lieu des URL codées en dur dans votre fichier Bicep, utilisez la fonction environment pour obtenir dynamiquement ces URL pendant le déploiement. La fonction environment retourne des URL différentes en fonction de l’environnement cloud dans lequel vous effectuez le déploiement.
L’exemple suivant échoue à ce test, car l’URL est codée en dur.
var managementURL = 'https://management.azure.com'
De même, le test échoue quand il est utilisé avec concat ou uri.
var galleryURL1 = concat('https://','gallery.azure.com')
var galleryURL2 = uri('gallery.azure.com','test')
Vous pouvez résoudre ce problème en remplaçant l’URL codée en dur par la fonction environment()
.
var galleryURL = environment().gallery
Dans certains cas, vous pouvez résoudre le problème en obtenant une propriété à partir d’une ressource que vous avez déployée. Par exemple, au lieu de construire le point de terminaison de votre compte de stockage, récupérez-le avec .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
Configuration
Par défaut, cette règle utilise les paramètres suivants pour déterminer les URL qui ne sont pas autorisées.
"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"
]
}
}
}
}
Vous pouvez la personnaliser en ajoutant un fichier bicepconfig.json et en appliquant de nouveaux paramètres.
Étapes suivantes
Pour plus d’informations sur le linter, consultez Utiliser le linter Bicep.