Reguła lintera — używanie funkcji identyfikatora zasobu
Gwarantuje, że identyfikator symbolicznej nazwy zasobu lub odpowiedniej funkcji jest używany zamiast ręcznie utworzonego identyfikatora, takiego jak ciąg łączenia, dla wszystkich właściwości reprezentujących identyfikator zasobu. Używaj nazw symbolicznych zasobów zawsze, gdy jest to możliwe.
Dozwolone funkcje obejmują:
Kod reguły Linter
Użyj następującej wartości w pliku konfiguracji Bicep , aby dostosować ustawienia reguły:
use-resource-id-functions
Rozwiązanie
Poniższy przykład kończy się niepowodzeniem tego testu, ponieważ właściwość zasobu api/id
używa ręcznie utworzonego ciągu:
@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'
}
}
}
Rozwiązanie można rozwiązać za pomocą subscriptionResourceId()
funkcji:
@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'
}
}
}
Następne kroki
Aby uzyskać więcej informacji na temat linter, zobacz Use Bicep linter (Używanie lintera Bicep).