通过ARM模板将现有混合连接链接到azure Web应用程序

时间:2018-03-20 11:46:06

标签: azure deployment arm-template azure-hybrid-connections

我在azure中有一个资源组,其中包含一个包含混合连接的Relay。我正在尝试部署包含Web应用程序的另一个资源组,该应用程序应链接其他资源组中的现有混合连接。

在天蓝色门户网站中执行此任务是微不足道的,但因为我想运行"完成模式"在我的ARM模板部署期间,我需要在部署期间执行此操作。

我找不到任何好的文档,很多答案似乎已经过时了。这是可能的,如果那样的话,它怎么能完成呢?

2 个答案:

答案 0 :(得分:1)

Azure似乎目前不支持通过ARM模板将Azure App Service连接到混合连接。

这是user feedback,您可以投票。

答案 1 :(得分:1)

您可以使用以下代码在中继上创建混合连接:

{
  "name": "[concat(relayName, '/', hybridConnectionName]",
  "type": "Microsoft.Relay/namespaces/hybridConnections",
  "apiVersion": "2017-04-01",      
  "dependsOn": [
    "relayName"
  ],
  "properties": {
    "requiresClientAuthorization": true,
    "userMetadata": [
       {
          "key": "endpoint",
          "value": "google.com:443"
       }
    ]
  },
  "resources": []
}

然后将其连接到Web应用程序:

"variables": { 
   "hybridConnectionResourceId": "[resourceId(relayResourceGroup, 'Microsoft.Relay/Namespaces/Hybridconnections', relayName, hybridConnectionName)]"
},
{
  "name": "[concat(webAppName, '/', relayName, '/', hybridConnectionName)]",
  "type": "Microsoft.Web/sites/hybridConnectionNamespaces/relays",
  "apiVersion": "2018-02-01",
  "dependsOn": [
    "webAppName"
  ],
  "location": "[resourceGroup().location]",
  "properties": {
    "serviceBusNamespace": "relayName",
    "relayName": "hybridConnectionName",
    "relayArmUri": "[variables('hybridConnectionResourceId')]",
    "hostName": "[split(json(reference(variables('hybridConnectionResourceId'), '2017-04-01').userMetadata)[0].value, ':')[0]]",
    "port": "[split(json(reference(variables('hybridConnectionResourceId'), '2017-04-01').userMetadata)[0].value, ':')[1]]",
    "sendKeyName": "defaultSender",
    "sendKeyValue": "[listkeys(concat(variables('hybridConnectionResourceId'), '/authorizationRules/defaultSender'), '2017-04-01').primaryKey]"
  }
}

希望这会有所帮助。