-
Notifications
You must be signed in to change notification settings - Fork 55
Expand file tree
/
Copy pathmain-environment.bicep
More file actions
58 lines (51 loc) · 1.86 KB
/
main-environment.bicep
File metadata and controls
58 lines (51 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
targetScope = 'subscription'
param location string = deployment().location
param globalResourceGroupName string
param uniquePrefix string
param environment string
param containerRegistryName string
param productionServicePrincipalObjectId string = ''
var tags = { environment: environment, 'managed-by': 'bicep' }
var resourceNamePrefix = '${uniquePrefix}-${environment}'
resource globalResourceGroup 'Microsoft.Resources/resourceGroups@2025-04-01' = {
name: globalResourceGroupName
location: location
tags: tags
}
module containerRegistry '../modules/container-registry.bicep' = {
name: '${globalResourceGroupName}-container-registry'
scope: resourceGroup(globalResourceGroup.name)
params: {
name: containerRegistryName
location: location
tags: tags
}
}
// Grant production service principal Container Registry Data Importer access to registry if specified
module productionServicePrincipalDataImporter '../modules/role-assignments-container-registry-data-importer.bicep' = if (!empty(productionServicePrincipalObjectId)) {
name: '${globalResourceGroupName}-production-sp-data-importer'
scope: resourceGroup(globalResourceGroup.name)
params: {
containerRegistryName: containerRegistry.outputs.name
principalId: productionServicePrincipalObjectId
}
}
module logAnalyticsWorkspace '../modules/log-analytics-workspace.bicep' = {
name: '${globalResourceGroupName}-log-analytics-workspace'
scope: resourceGroup(globalResourceGroup.name)
params: {
name: resourceNamePrefix
location: location
tags: tags
}
}
module applicationInsights '../modules/application-insights.bicep' = {
name: '${globalResourceGroupName}-application-insights'
scope: resourceGroup(globalResourceGroup.name)
params: {
name: resourceNamePrefix
location: location
tags: tags
logAnalyticsWorkspaceId: logAnalyticsWorkspace.outputs.workspaceId
}
}