Reputation: 5540
I have created azure function app using arm template. But I want to create few hybrid connections under networking of the azure function like this below:
So, can anyone suggest me how to do this?
Upvotes: 0
Views: 884
Reputation: 260
for creating Hybrid-Connection for webs using bicep you need to:
param appServiceName string
var cfg = json(loadTextContent('../../bicepConsts.json'))
var hc = cfg.HybridConnection
resource appService 'Microsoft.Web/sites@2021-02-01' existing = {
name: appServiceName
}
var relayId = resourceId(hc.ResourceGroup, 'Microsoft.Relay/namespaces', hc.Namespace)
var connectionId = '${relayId}/hybridConnections/${hc.Name}'
var senderKeyName = 'defaultSender'
var key = listKeys('${connectionId}/authorizationRules/${senderKeyName}', '2017-04-01').primaryKey
resource hybridConnection 'Microsoft.Web/sites/hybridConnectionNamespaces/relays@2021-02-01' = {
name: '${appService.name}/${hc.Namespace}/${hc.Name}'
location: hc.NamespaceLocation
dependsOn: [
appService
]
properties: {
serviceBusNamespace: hc.Namespace
relayName: hc.Name
relayArmUri: connectionId
hostname: hc.Host
port: hc.Port
sendKeyName: senderKeyName
sendKeyValue: key
serviceBusSuffix: '.servicebus.windows.net'
}
}
Where this bicepConsts file contains think like:
{
"..." : "...",
"HybridConnection": {
"ResourceGroup": "resource group of your HybridConnection from Azure",
"Name": "Name of hybrid connection",
"Namespace": "Namespace of hybrid connection",
"NamespaceLocation": "Location (e.g. 'West US 2') of your hybrid connection namespace",
"Host": "Host of your hybrid connection",
"Port": "Port of your hybrid connection AS INTEGER!",
}
}
Upvotes: 0
Reputation: 3398
Example works on my side:
Add an array list for your hybrid connection endpoint:
"parameters": {
......
"endpoint": {
"defaultValue": [
"test6:3306",
"test6:8081",
"test6:8082"
],
"type": "Array"
}
},
Copy Usage in resources section:
{
"type": "Microsoft.Relay/namespaces/HybridConnections",
"apiVersion": "2017-04-01",
"name": "[concat(parameters('relayName'), '/', copyIndex())]",
"location": "Central US",
"dependsOn": [
"[resourceId('Microsoft.Relay/namespaces', parameters('relayName'))]"],
"properties": {
"requiresClientAuthorization": false,
"userMetadata": "[[{\"key\":\"endpoint\",\"value\":\"[parameters('endpoint')[copyIndex()]]\"}]"
},
"copy": {
"name": "datacopy",
"count": 3
}
},
{
"type": "Microsoft.Relay/namespaces",
"apiVersion": "2018-01-01-preview",
"name": "[parameters('relayName')]",
"location": "Central US",
"sku": {
"name": "Standard",
"tier": "Standard"
},
"properties": {}
}
Here are my reference:
Upvotes: 1