使用 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 中心路由时,请确保具有以下中心资源:

终结点服务

若要创建 IoT 中心路由,需要将至少一个其他 Azure 服务作为路由的终结点。 该终结点接收设备消息和事件日志。 可以选择要与 IoT 中心路由连接的 Azure 服务的终结点:事件中心、服务总线队列或主题,或 Azure 存储。

创建 IoT 中心路由的终结点时,请确保具有以下资源之一:

创建资源和终结点

在 IoT 中心,可以创建路由来发送消息或捕获事件。 每个路由都有一个数据源和一个终结点。 数据源是消息或事件日志的来源。 终结点是消息或事件日志最终出现的位置。 在 IoT 中心创建新路由时,选择数据源和终结点的位置。 然后,可以在消息或事件到达终结点之前使用路由查询对其进行筛选。

可以使用事件中心、服务总线队列或主题或者存储帐户作为 IoT 中心路由的终结点。 用于创建终结点的服务必须首先在 Azure 帐户中存在。

注意

如果使用本地版本的 Azure PowerShell,请在开始前登录 Azure PowerShell

以下过程中的命令使用这些参考:

创建事件中心

若要创建一个具有授权规则的新事件中心资源:

  1. 创建新的事件中心命名空间。 对于 NamespaceName,请使用唯一值。

    New-AzEventHubNamespace -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -Location MyLocation
    
  2. 创建新的事件中心实体。 对于 Name,请使用唯一值。 对于 NamespaceName,请使用上一步创建的命名空间的名称。

    New-AzEventHub -Name MyEventHub -NamespaceName MyNamespace -ResourceGroupName MyResourceGroup
    
  3. 创建新的授权规则。 对于 Name,为 EventHubName 使用你的实体名称。 对于授权规则的名称,请使用唯一值。

    New-AzEventHubAuthorizationRule -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -EventHubName MyEventHub -Name MyAuthRule -Rights @('Manage', 'Send', 'Listen')
    

    有关访问权限的详细信息,请参阅授权访问 Azure 事件中心

创建事件中心终结点

  1. 从事件中心获取主连接字符串。 复制主连接字符串以供稍后使用。

    Get-AzEventHubKey -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -EventHubName MyEventHub -Name MyAuthRule
    
  2. 创建事件中心的新 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-AzIotHubRouteEnabled 参数是一个开关,因此无需使用参数值。

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 中心内的设备对其进行测试。