如何使用 ARM 模板将路由添加到现有 IOT 中心?

问题描述 投票:0回答:2

对于大多数其他 Azure 资源,子组件有单独的部署类型,可以单独部署。对于 IOT 集线器,我看不到任何在不包括整个 IOT 集线器类型的情况下单独部署路由/端点的方法。此外,如果此 IOT 集线器类型未附带指定的 SKU,则似乎会导致内部 500 错误,这意味着我需要在 ARM 模板中包含 SKU 名称/容量,这应该独立于此。

我错过了什么?

azure-resource-manager azure-iot-hub
2个回答
0
投票

我不太确定我是否理解你的问题。但是,如果您想向现有的 IoT 中心添加路由 - 您可能没有使用 ARM 模板进行部署?!因此,您必须首先构建一个模拟整个当前 IoT 中心配置的 ARM 模板。部署此 ARM 模板时,您应该看不到现有 IoT 中心有任何变化。然后将新路由添加到模板并再次部署。

作为起点,您可以使用现有 IoT 中心上 Azure 门户的“导出模板”功能。

您可以在此处找到示例模板https://github.com/Azure/azure-quickstart-templates/blob/master/101-iothub-auto-route-messages/azuredeploy.json


0
投票

我尝试使用 Powershell 创建路由端点,当 IoTHub 中没有创建端点时,它可以正常使用强制标志为真,但如果端点已经存在,则强制为真标志不起作用,并且会收到错误请求错误。 这是我在 Force -True 时的代码

其他{

此条件将检查端点是否是新的且不存在,并跳过该端点的部署。端点应该是唯一的。

if ($ename -in $endPointName) {

写输出“端点 $ename 已经存在”}

    Write-Output "Deploying Endpoint $ename"
          Add-AzIotHubRoutingEndpoint -ResourceGroupName $rg -Name $name -EndpointName $ename -EndpointType $etype -EndpointResourceGroup $rg -EndpointSubscriptionId $esid -ConnectionString $cs -debug
          Write-Output "Endpoint $ename deployed"
          Write-Output "Current Routing endpoints available are: $endPointName"
        }

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.