Règle Linter - Utiliser des fonctions d’ID de ressource
Garantit que l’ID d’un nom de ressource symbolique ou d’une fonction appropriée est utilisé plutôt qu’un ID créé manuellement, tel qu’une chaîne de concaténation, pour toutes les propriétés représentant un ID de ressource. Utilisez des noms symboliques de ressources chaque fois que cela est possible.
Les fonctions autorisées incluent notamment :
Code de règle de linter
Utilisez la valeur suivante dans le fichier config Bicep pour personnaliser les paramètres de règle :
use-resource-id-functions
Solution
L’exemple suivant échoue à ce test, car la propriété api/id
de la ressource utilise une chaîne créée manuellement :
@description('description')
param connections_azuremonitorlogs_name string
@description('description')
param location string
@description('description')
param resourceTags object
param tenantId string
resource connections_azuremonitorlogs_name_resource 'Microsoft.Web/connections@2016-06-01' = {
name: connections_azuremonitorlogs_name
location: location
tags: resourceTags
properties: {
displayName: 'azuremonitorlogs'
statuses: [
{
status: 'Connected'
}
]
nonSecretParameterValues: {
'token:TenantId': tenantId
'token:grantType': 'code'
}
api: {
name: connections_azuremonitorlogs_name
displayName: 'Azure Monitor Logs'
description: 'Use this connector to query your Azure Monitor Logs across Log Analytics workspace and Application Insights component, to list or visualize results.'
iconUri: 'https://connectoricons-prod.azureedge.net/releases/v1.0.1501/1.0.1501.2507/${connections_azuremonitorlogs_name}/icon.png'
brandColor: '#0072C6'
id: '/subscriptions/<subscription_id_here>/providers/Microsoft.Web/locations/<region_here>/managedApis/${connections_azuremonitorlogs_name}'
type: 'Microsoft.Web/locations/managedApis'
}
}
}
Vous pouvez corriger cela à l’aide de la fonction subscriptionResourceId()
:
@description('description')
param connections_azuremonitorlogs_name string
@description('description')
param location string
@description('description')
param resourceTags object
param tenantId string
resource connections_azuremonitorlogs_name_resource 'Microsoft.Web/connections@2016-06-01' = {
name: connections_azuremonitorlogs_name
location: location
tags: resourceTags
properties: {
displayName: 'azuremonitorlogs'
statuses: [
{
status: 'Connected'
}
]
nonSecretParameterValues: {
'token:TenantId': tenantId
'token:grantType': 'code'
}
api: {
name: connections_azuremonitorlogs_name
displayName: 'Azure Monitor Logs'
description: 'Use this connector to query your Azure Monitor Logs across Log Analytics workspace and Application Insights component, to list or visualize results.'
iconUri: 'https://connectoricons-prod.azureedge.net/releases/v1.0.1501/1.0.1501.2507/${connections_azuremonitorlogs_name}/icon.png'
brandColor: '#0072C6'
id: subscriptionResourceId('Microsoft.Web/locations/managedApis', location, connections_azuremonitorlogs_name)
type: 'Microsoft.Web/locations/managedApis'
}
}
}
Étapes suivantes
Pour plus d’informations sur le linter, consultez Utiliser le linter Bicep.