59 lines
1.9 KiB
Bicep
59 lines
1.9 KiB
Bicep
targetScope = 'subscription'
|
|
|
|
@description('The name of the resource group')
|
|
param resourceGroupName string = 'rg-blazor-grafana'
|
|
|
|
@description('The location for all resources')
|
|
param location string = 'eastus'
|
|
|
|
@description('The name of the App Service Plan')
|
|
param appServicePlanName string = 'asp-blazor-app'
|
|
|
|
@description('The name of the Web App')
|
|
param webAppName string = 'webapp-blazor-${uniqueString(resourceGroupName)}'
|
|
|
|
@description('The name of the Application Insights instance')
|
|
param appInsightsName string = 'ai-blazor-app'
|
|
|
|
@description('The name of the Log Analytics Workspace')
|
|
param logAnalyticsWorkspaceName string = 'law-blazor-app'
|
|
|
|
// Create the resource group
|
|
resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = {
|
|
name: resourceGroupName
|
|
location: location
|
|
}
|
|
|
|
// Deploy the logging and monitoring infrastructure
|
|
module monitoring 'modules/monitoring.bicep' = {
|
|
scope: resourceGroup
|
|
name: 'monitoring-deployment'
|
|
params: {
|
|
location: location
|
|
appInsightsName: appInsightsName
|
|
logAnalyticsWorkspaceName: logAnalyticsWorkspaceName
|
|
}
|
|
}
|
|
|
|
// Deploy the App Service infrastructure
|
|
module appService 'modules/appService.bicep' = {
|
|
scope: resourceGroup
|
|
name: 'appservice-deployment'
|
|
params: {
|
|
location: location
|
|
appServicePlanName: appServicePlanName
|
|
webAppName: webAppName
|
|
appInsightsInstrumentationKey: monitoring.outputs.instrumentationKey
|
|
appInsightsConnectionString: monitoring.outputs.connectionString
|
|
}
|
|
}
|
|
|
|
// Outputs
|
|
output resourceGroupName string = resourceGroup.name
|
|
output webAppName string = appService.outputs.webAppName
|
|
output webAppUrl string = appService.outputs.webAppUrl
|
|
output appInsightsName string = monitoring.outputs.appInsightsName
|
|
output logAnalyticsWorkspaceId string = monitoring.outputs.workspaceId
|
|
output grafanaName string = monitoring.outputs.grafanaName
|
|
output grafanaEndpoint string = monitoring.outputs.grafanaEndpoint
|