使用 ARM 模板创建 Azure IoT 中心端点?

Azure IoThub end point creation using ARM template?

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

最近我们找到了解决办法。我们做的第一件事是结合 iothub 和 eventhub 模板。然后在创建 iothub 时动态获取事件中心端点详细信息。这是工作的片段

"variables":{
// 事件中心访问策略名称
"eventHubAccessPolicy": "[资源 ID('Microsoft.Eventhub/namespaces/EventHubs/AuthorizationRules',
参数('eventHubNS'),
参数('eventHubName'),参数('sharedAccessPolicyName'))]"

},
.
.
.
//在创建 iothub 时添加下面的端点和路由。
"routing":{
"endpoints":{
"eventHubs":[
{
"connectionString": "[listKeys(变量('eventHubAccessPolicy'), '2017-04-01').primaryConnectionString]",
"name": "[参数('eventHubName')]",
"resourceGroup":“[resourceGroup().location]”
}
]
},
.
.
.
"routes": [
{
"name": "[参数('routingName')]",
"source": "DeviceMessages",
"condition": "message='telemetric'",
"endpointNames":[
“[参数('eventHubName')]”
],
"isEnabled": 真
}
]
},

嗯,

看来答案不完整(也有部分不正确)。

在事件中心端点节点 "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