Regra de linter – nenhuma URL de ambiente embutida em código
Essa regra localiza quaisquer URLs embutidas em código que variam de acordo com o ambiente de nuvem.
Código de regra linter
Use o seguinte valor no arquivo de configuração Bicep para personalizar as configurações de regra:
no-hardcoded-env-urls
Solução
Em vez de URLs hard-coding em seu arquivo Bicep, use a função de ambiente para obter essas URLs dinamicamente durante a implantação. A função de ambiente retorna diferentes URLs com base no ambiente de nuvem no qual você está implantando.
O exemplo a seguir reprova neste teste porque a URL está inserida no código.
var managementURL = 'https://management.azure.com'
O teste também reprova 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 a URL embutida em código pela função environment()
.
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óximas etapas
Para saber mais sobre o linter, confira Usar o linter do Bicep.