-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.bicep
128 lines (120 loc) · 3.21 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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
param location string = resourceGroup().location
param virtualNetworkName string = 'vnet-01'
param virtualNetworkCIDR string = '10.200.0.0/16'
param subnetName string = 'subnet-01'
param subnetCIDR string = '10.200.1.0/24'
param serverFarmName string = 'ServerFarm1'
param websiteName string = 'website${uniqueString(resourceGroup().name)}'
param skuName string = 'P1v2'
param skuTier string = 'PremiumV2'
param skuSize string = 'P1v2'
param skuFamily string = 'P1v2'
param privateEndpointName string = 'privateEndpoint${uniqueString(resourceGroup().name)}'
param privateLinkConnectionName string = 'privateLink${uniqueString(resourceGroup().name)}'
param privateDNSZoneName string = 'privatelink.azurewebsites.net'
param websiteDNSName string = '.azurewebsites.net'
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2020-06-01' = {
name: virtualNetworkName
location: location
properties: {
addressSpace: {
addressPrefixes: [
virtualNetworkCIDR
]
}
}
}
resource subnet 'Microsoft.Network/virtualNetworks/subnets@2020-06-01' = {
name: '${virtualNetwork.name}/${subnetName}'
properties: {
addressPrefix: subnetCIDR
privateEndpointNetworkPolicies: 'Disabled'
}
}
resource serverFarm 'Microsoft.Web/serverfarms@2020-06-01' = {
name: serverFarmName
location: location
sku: {
name: skuName
tier: skuTier
size: skuSize
family: skuFamily
capacity: 1
}
kind: 'app'
}
resource website 'Microsoft.Web/sites@2020-06-01' = {
name: websiteName
location: location
kind: 'app'
properties: {
enabled: true
hostNameSslStates: [
{
name: '${websiteName}${websiteDNSName}'
sslState: 'Disabled'
hostType: 'Standard'
}
{
name: '${websiteName}.scm${websiteDNSName}'
sslState: 'Disabled'
hostType: 'Repository'
}
]
serverFarmId: serverFarm.id
}
}
resource hostnameBinding 'Microsoft.Web/sites/hostNameBindings@2020-06-01' = {
name: '${website.name}/${website.name}${websiteDNSName}'
properties: {
siteName: website.name
hostNameType: 'Verified'
}
}
resource privateEndpoint 'Microsoft.Network/privateEndpoints@2020-06-01' = {
name: privateEndpointName
location: location
properties: {
subnet: {
id: subnet.id
}
privateLinkServiceConnections: [
{
name: privateLinkConnectionName
properties: {
privateLinkServiceId: website.id
groupIds: [
'sites'
]
}
}
]
}
}
resource privateDNSZone 'Microsoft.Network/privateDnsZones@2020-06-01' = {
name: privateDNSZoneName
location: 'global'
}
resource virtualNetworkLink 'Microsoft.Network/privateDnsZones/virtualNetworkLinks@2020-06-01' = {
name: '${privateDNSZone.name}/${privateDNSZone.name}-link'
location: 'global'
properties: {
registrationEnabled: false
virtualNetwork: {
id: virtualNetwork.id
}
}
}
resource privateDNSZoneGroup 'Microsoft.Network/privateEndpoints/privateDnsZoneGroups@2020-06-01' = {
name: '${privateEndpoint.name}/dnsgroupname'
properties: {
privateDnsZoneConfigs: [
{
name: 'config1'
properties: {
privateDnsZoneId: privateDNSZone.id
}
}
]
}
}