Regra de Linter - sem URL de ambiente codificado
Esta regra localiza todos os URLs codificados que variam de acordo com o ambiente de nuvem.
Código da regra de linha
Use o seguinte valor no arquivo de configuração do Bicep para personalizar as configurações da regra:
no-hardcoded-env-urls
Solução
Em vez de codificar URLs no arquivo Bicep, use a função de ambiente para obter dinamicamente essas URLs durante a implantação. A função de ambiente retorna URLs diferentes com base no ambiente de nuvem no qual você está implantando.
O exemplo a seguir falha neste teste porque a URL é codificada.
var managementURL = 'https://management.azure.com'
O teste também falha quando usado com concat ou uri.
var galleryURL1 = concat('https://','gallery.azure.com')
var galleryURL2 = uri('gallery.azure.com','test')
Você pode corrigi-lo substituindo o URL codificado environment()
pela função.
var galleryURL = environment().gallery
Em alguns casos, você pode corrigi-lo obtendo uma propriedade de um recurso que você implantou. Por exemplo, em vez de construir o ponto de extremidade para sua conta de armazenamento, recupere-o com .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
Configuração
Por padrão, essa regra usa as seguintes configurações para determinar quais URLs não são permitidas.
"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"
]
}
}
}
}
Você pode personalizá-lo adicionando um arquivo bicepconfig.json e aplicando novas configurações.
Próximos passos
Para obter mais informações sobre o linter, consulte Usar binter linter.