-
Notifications
You must be signed in to change notification settings - Fork 0
/
loadbalancer.bicep
124 lines (119 loc) · 2.76 KB
/
loadbalancer.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
param resourceToken string
param location string = resourceGroup().location
param tags object
param port int = 8000
param sharedSubnetId string
param vnetHubId string
param logAnalyticsWorkspaceId string
@allowed([
'Basic'
'Standard'
])
param ilbSku string = 'Standard'
var ilbName = 'ilb-${resourceToken}'
resource ilb 'Microsoft.Network/loadBalancers@2022-09-01' = {
name: ilbName
location: location
tags: tags
sku: {
name: ilbSku
}
properties: {
frontendIPConfigurations: [
{
name: 'loadBalancerFrontEnd'
properties: {
privateIPAllocationMethod: 'Dynamic'
subnet: {
id: sharedSubnetId
}
}
}
]
backendAddressPools: [
{
name: 'direct'
properties: {
loadBalancerBackendAddresses: [
{
name: 'server65'
properties: {
subnet: {
id: sharedSubnetId
}
ipAddress: '192.168.42.65'
virtualNetwork: {
id: vnetHubId
}
}
}
{
name: 'server66'
properties: {
subnet: {
id: sharedSubnetId
}
ipAddress: '192.168.42.66'
virtualNetwork: {
id: vnetHubId
}
}
}
]
}
}
]
loadBalancingRules: [
{
name: 'direct'
properties: {
frontendIPConfiguration: {
id: resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', ilbName, 'loadBalancerFrontEnd')
}
frontendPort: port
backendPort: port
enableFloatingIP: false
idleTimeoutInMinutes: 4
protocol: 'Tcp'
enableTcpReset: false
loadDistribution: 'Default'
disableOutboundSnat: false
backendAddressPool: {
id: resourceId('Microsoft.Network/loadBalancers/backendAddressPools', ilbName, 'direct')
}
probe: {
id: resourceId('Microsoft.Network/loadBalancers/probes', ilbName, 'direct')
}
}
}
]
probes: [
{
name: 'direct'
properties: {
protocol: 'Tcp'
port: port
intervalInSeconds: 15
numberOfProbes: 2
}
}
]
}
}
resource diag 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = {
name: 'diag'
scope: ilb
properties: {
workspaceId: logAnalyticsWorkspaceId
metrics: [
{
category: 'AllMetrics'
enabled: true
retentionPolicy: {
days: 2
enabled: true
}
}
]
}
}