-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.bicep
113 lines (105 loc) · 3.39 KB
/
main.bicep
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
param location string
param storageSkuName string = 'Standard_LRS'
param storageAccountName string
param sqlServerName string
param sqlServerDatabaseName string
param apiAppServiceName string
param blazorAppServiceName string
param signalRServiceName string
param keyVaultName string
param functionName string
@secure()
param dbLogin string
@secure()
param dbPassword string
module storageAccount './bicep-modules/storageaccount.bicep' = {
name: 'storageAccountDeploy'
params: {
location: location
storageSkuName: storageSkuName
storageAccountName: storageAccountName
}
}
module sqlServerDatabase './bicep-modules/sqldatabase.bicep' = {
name: 'sqlDatabaseDeploy'
params: {
location: location
dbLogin: dbLogin
dbPassword: dbPassword
sqlServerName: sqlServerName
sqlServerDatabaseName: sqlServerDatabaseName
}
}
module appServicePlan './bicep-modules/appserviceplan.bicep' = {
name: 'appServicePlanDeploy'
params: {
location: location
}
}
module appService './bicep-modules/appservice.bicep' = {
name: 'appServiceDeploy'
params: {
location: location
appServicePlanId: appServicePlan.outputs.appServicePlanId
apiAppServiceName: apiAppServiceName
blazorAppServiceName: blazorAppServiceName
keyVaultName: keyVaultName
functionName: functionName
}
dependsOn: [
appServicePlan
]
}
module signalR 'bicep-modules/signalr.bicep' = {
name: 'SignalRDeploy'
params: {
location: location
signalRServiceName: signalRServiceName
apiPrincipalId: appService.outputs.apiAppServicePrincipalId
}
dependsOn: [
appService
]
}
module function './bicep-modules/function.bicep' = {
name: 'FunctionDeploy'
params: {
location: location
functionName: functionName
keyVaultName: keyVaultName
dbConnectionString: 'Server=tcp:${sqlServerName}${environment().suffixes.sqlServerHostname},1433;Initial Catalog=${sqlServerDatabaseName};Persist Security Info=False;User ID=${dbLogin};Password=${dbPassword};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;'
}
}
module keyVault './bicep-modules/keyvault.bicep' = {
name: 'KeyVaultDeploy'
params: {
location: location
keyVaultName: keyVaultName
apiAppServicePrincipalId: appService.outputs.apiAppServicePrincipalId
sqlServerDatabaseConnection: 'Server=tcp:${sqlServerName}${environment().suffixes.sqlServerHostname},1433;Initial Catalog=${sqlServerDatabaseName};Persist Security Info=False;User ID=${dbLogin};Password=${dbPassword};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;'
storageAccessKey: storageAccount.outputs.storageAccessKey
storageConnectionString: storageAccount.outputs.storageConnectionString
frontUrlString: 'http://${blazorAppServiceName}.azurewebsites.net/'
jwtSettingsKeyString: 'ChatApp1230912048901283'
jwtSettingsAudienceString: 'BlazorApp'
jwtSettingsIssuerString: 'ChatAppAPI'
signalRConnection: signalR.outputs.connectionString
functionPrincipalId: function.outputs.functionPrincipalId
}
dependsOn: [
storageAccount
signalR
function
]
}
module keyVaultAccess './bicep-modules/keyvaultaccess.bicep' = {
name: 'KeyVaultAccessDeploy'
params: {
apiPrincipalId: appService.outputs.apiAppServicePrincipalId
functionPrincipalId: function.outputs.functionPrincipalId
}
dependsOn: [
appService
function
]
}