-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.bicep
108 lines (95 loc) · 2.94 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
@description('The location into which regionally scoped resources should be deployed. Note that Front Door is a global resource.')
param location string = resourceGroup().location
@description('The IP address prefix (CIDR range) to use when deploying the virtual network.')
param vnetIPPrefix string = '10.0.0.0/16'
@description('The IP address prefix (CIDR range) to use when deploying the API Management subnet within the virtual network.')
param priveEndpointSubnetIPPrefix string = '10.0.0.0/24'
@description('Select the model for Azure Open AI service.')
@allowed([
'gpt-35-turbo'
'gpt-35-turbo-16k'
'text-embedding-ada-002'
])
param azureOpenModel string = 'gpt-35-turbo-16k'
var vnetName = 'vNet-${uniqueString(resourceGroup().id)}'
var azureOpenAiName = 'aoai-${uniqueString(resourceGroup().id)}'
var logAnalyticsName = 'law-${uniqueString(resourceGroup().id)}'
var applicationInsightsName = 'appIn-${uniqueString(resourceGroup().id)}'
var privateEndpointName = '${uniqueString(resourceGroup().id)}-pip'
var privateEndpointNicName = '${uniqueString(resourceGroup().id)}-pip-nic'
var frontDoorName = 'fd-${uniqueString(resourceGroup().id)}'
var privateDnsZoneName = 'privatelink.azure-api.net'
var privateEndpointSubnetName = 'privateEndpointSubnet'
module logAnalyticsWorkspace 'modules/log-analytics-workspace.bicep' = {
name: 'log-analytics-workspace'
params: {
location: location
logAnalyticsName: logAnalyticsName
applicationInsightsName : applicationInsightsName
}
}
module network 'modules/network.bicep' = {
name: 'network'
params: {
vnetName: vnetName
location: location
vnetIPPrefix: vnetIPPrefix
priveEndpointSubnetIPPrefix: priveEndpointSubnetIPPrefix
privateEndpointSubnetName: privateEndpointSubnetName
}
dependsOn: [
logAnalyticsWorkspace
]
}
module azureOpenAi 'modules/azure-openai.bicep' = {
name: 'azure-openai'
params: {
azureOpenAiName: azureOpenAiName
location: location
azureOpenModel: azureOpenModel
}
dependsOn: [
network
]
}
module privateEndpoint 'modules/private-endpoint.bicep' = {
name: 'private-endpoint'
params: {
privateEndpointNicName: privateEndpointNicName
privateEndpointName: privateEndpointName
vnetName: vnetName
location: location
azureOpenAiName: azureOpenAiName
}
dependsOn: [
network
azureOpenAi
]
}
module privateDnsZone 'modules/private-dns-zone.bicep' = {
name: 'private-dns-zone'
params: {
privateDnsZoneName: privateDnsZoneName
vnetResourceId: network.outputs.resourceId
privateEndpointName: privateEndpointName
privateEndpointIpAddress: privateEndpoint.outputs.privateIpAddress
}
dependsOn: [
network
azureOpenAi
privateEndpoint
]
}
module frontDoor 'modules/front-door.bicep' = {
name: 'front-door'
params: {
frontDoorName: frontDoorName
azureOpenAiFqdn: azureOpenAi.outputs.fqdn
}
dependsOn: [
network
azureOpenAi
privateDnsZone
privateEndpoint
]
}