使用 Azure PowerShell 创建和删除路由和终结点
本文介绍如何在 Azure IoT 中心创建路由和终结点,然后删除路由和终结点。 了解如何使用 Azure PowerShell 为 Azure 事件中心、Azure 服务总线队列和主题,以及 Azure 存储创建路由和终结点。
若要详细了解 IoT 中心内的路由工作原理,请参阅使用 IoT 中心消息路由将设备到云的消息发送到不同的终结点。 若要了解如何设置将消息发送到存储的路由然后在模拟设备上进行测试,请参阅教程:使用 IoT 中心消息路由将设备数据发送到 Azure 存储。
先决条件
本文所述的过程使用以下资源:
- Azure PowerShell
- IoT 中心
- Azure 中的终结点服务
Azure PowerShell
本文使用 Azure PowerShell 与 IoT 中心和其他 Azure 服务配合使用。 若要在本地使用 Azure PowerShell,请在计算机上安装 Azure PowerShell 模块。
IoT 中心
若要创建 IoT 中心路由,需要借助 Azure IoT 中心创建的 IoT 中心。 源自 IoT 中心的设备消息和事件日志。
创建 IoT 中心路由时,请确保具有以下中心资源:
- Azure IoT 中心。 如果没有 IoT 中心,可以使用 New-AzIoTHub cmdlet 创建一个,或按照创建 IoT 中心中的步骤操作。
终结点服务
若要创建 IoT 中心路由,需要将至少一个其他 Azure 服务作为路由的终结点。 该终结点接收设备消息和事件日志。 可以选择要与 IoT 中心路由连接的 Azure 服务的终结点:事件中心、服务总线队列或主题,或 Azure 存储。
创建 IoT 中心路由的终结点时,请确保具有以下资源之一:
一个事件中心资源(带容器)。 如果需要创建新的事件中心资源,请参阅快速入门:使用 Azure PowerShell 创建事件中心。
一个服务总线队列资源。 如果需要创建新的服务总线队列,请参阅使用 Azure PowerShell 创建服务总线命名空间和队列。
一个服务总线主题资源。 如果需要创建新的服务总线主题,请参阅 New-AzServiceBusTopic 参考和 Azure 服务总线消息传送文档。
一个 Azure 存储资源。 如果需要在 Azure 中创建新的存储帐户,请参阅创建存储帐户。
创建资源和终结点
在 IoT 中心,可以创建路由来发送消息或捕获事件。 每个路由都有一个数据源和一个终结点。 数据源是消息或事件日志的来源。 终结点是消息或事件日志最终出现的位置。 在 IoT 中心创建新路由时,选择数据源和终结点的位置。 然后,可以在消息或事件到达终结点之前使用路由查询对其进行筛选。
可以使用事件中心、服务总线队列或主题或者存储帐户作为 IoT 中心路由的终结点。 用于创建终结点的服务必须首先在 Azure 帐户中存在。
注意
如果使用本地版本的 Azure PowerShell,请在开始前登录 Azure PowerShell。
以下过程中的命令使用这些参考:
创建事件中心
若要创建一个具有授权规则的新事件中心资源:
创建新的事件中心命名空间。 对于
NamespaceName
,请使用唯一值。New-AzEventHubNamespace -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -Location MyLocation
创建新的事件中心实体。 对于
Name
,请使用唯一值。 对于NamespaceName
,请使用上一步创建的命名空间的名称。New-AzEventHub -Name MyEventHub -NamespaceName MyNamespace -ResourceGroupName MyResourceGroup
创建新的授权规则。 对于
Name
,为EventHubName
使用你的实体名称。 对于授权规则的名称,请使用唯一值。New-AzEventHubAuthorizationRule -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -EventHubName MyEventHub -Name MyAuthRule -Rights @('Manage', 'Send', 'Listen')
有关访问权限的详细信息,请参阅授权访问 Azure 事件中心。
创建事件中心终结点
从事件中心获取主连接字符串。 复制主连接字符串以供稍后使用。
Get-AzEventHubKey -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -EventHubName MyEventHub -Name MyAuthRule
创建事件中心的新 IoT 中心终结点。 使用在上一步中复制的主连接字符串。
EndpointType
的值必须是EventHub
。 对于所有其他参数,请使用你的方案值。Add-AzIotHubRoutingEndpoint -ResourceGroupName MyResourceGroup -Name MyIotHub -EndpointName MyEndpoint -EndpointType EventHub -EndpointResourceGroup MyResourceGroup -EndpointSubscriptionId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ConnectionString "Endpoint=<my connection string>"
若要查看所有路由终结点选项,请参阅 Add-AzIotHubRoutingEndpoint。
创建 IoT 中心路由
IoT 中心提供新终结点后,可以创建新路由。
IoT 中心的默认回退路由从 DeviceMessages
收集消息。 为自定义路由选择其他选项,如 DeviceConnectionStateEvents
。 有关源选项的详细信息,请参阅 Add-AzIotHubRoute。 Enabled
参数是一个开关,因此无需使用参数值。
Add-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub -RouteName MyRoute -Source DeviceLifecycleEvents -EndpointName MyEndpoint -Enabled
PowerShell 显示类似于此示例的确认:
RouteName : MyIotHub
DataSource : DeviceLifecycleEvents
EndpointNames : MyEndpoint
Condition : true
IsEnabled : True
更新 IoT 中心路由
若要更改现有路由,请使用以下命令。 例如,尝试使用该命令更改路由名称。
Set-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub -RouteName MyRoute
使用 Get-AzIotHubRoute
命令确认对路由所做的更改:
Get-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub
删除终结点
若要删除终结点:
Remove-AzIotHubRoutingEndpoint -ResourceGroupName MyResourceGroup -Name MyIotHub -EndpointName MyEndpoint -PassThru
删除 IoT 中心路由
若要删除 IoT 中心路由:
Remove-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub -RouteName MyRoute -PassThru
提示
删除路由不会删除 Azure 帐户中的任何终结点。 必须分别删除终结点和删除路由。
后续步骤
在本操作指南文章中,你已了解如何为事件中心、服务总线队列和主题及 Azure 存储创建路由和终结点。
若要详细了解消息路由,请参阅教程:使用 IoT 中心消息路由将设备数据发送到 Azure 存储。 在该教程中,你将创建一个存储路由并使用 IoT 中心内的设备对其进行测试。