使用ARM模板创建Azure IoThub端点?

时间:2018-04-19 06:29:50

标签: azure azure-resource-manager azure-iot-hub

有人可以建议如何使用ARM模板创建与事件中心兼容的iothub端点吗?我无法在ARM模板中生成连接字符串以动态创建端点?

2 个答案:

答案 0 :(得分:0)

最近我们能够找到解决方案。我们所做的第一件事是将iothub和eventhub模板组合在一起。然后在创建iothub时动态获取事件中心端点详细信息。这是片段的

“变量”:{
    //事件中心访问策略名称
    “ eventHubAccessPolicy”:“ [resourceId('Microsoft.Eventhub / namespaces / EventHubs / AuthorizationRules',
parameters('eventHubNS'),
parameters('eventHubName'),parameters('sharedAccessPolicyName'))] “

  },
  。
  。
  。
  //创建iothub时,在终点和路线下面添加。
 “路由”:{
  “端点”:{
    “ eventHubs”:[
      {
        “ connectionString”:“ [listKeys(variables('eventHubAccessPolicy'),'2017-04-01')。primaryConnectionString]”,
        “ name”:“ [parameters('eventHubName')]”,
        “ resourceGroup”:“ [resourceGroup()。location]”
       }
    ]
  },
  。
  。
  。
  “路线”:[
    {
      “ name”:“ [parameters('routingName')]”“,
      “ source”:“ DeviceMessages”,
      “ condition”:“ message ='telemetric'”,
      “ endpointNames”:[
        “ [parameters('eventHubName')]”
      ],
      “ isEnabled”:true
     }
  ]
},

答案 1 :(得分:0)

好吧

答案似乎不完整(也有部分不正确)。

在事件中心端点节点"resourceGroup": "[resourceGroup().location]"的位置必须替换为名称([resourceGroup().name]

此外,您需要将"subscriptionId": "[subscription().subscriptionId]"添加到端点节点。否则,将毫无错误地添加端点,但是在门户网站中将不起作用(单击时无法打开端点的属性-您会得到404)。

最后-在门户中-创建端点时-它将自动创建必要的授权规则。

在ARM模板中定义路由和端点时,不会发生这种情况。您需要在ARM模板中将授权规则添加到事件中心本身。 (例如,如何操作:https://github.com/Azure/azure-quickstart-templates/tree/master/301-eventHub-create-authrule-namespace-and-eventHub