你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure PowerShell 创建和删除路由和终结点

本文介绍如何在 Azure IoT 中心创建路由和终结点,然后删除路由和终结点。 了解如何使用 Azure PowerShell 为 Azure 事件中心、Azure 服务总线队列和主题,以及 Azure 存储创建路由和终结点。

若要详细了解 IoT 中心内的路由工作原理,请参阅使用 IoT 中心消息路由将设备到云的消息发送到不同的终结点。 若要了解如何设置将消息发送到存储的路由然后在模拟设备上进行测试,请参阅教程:使用 IoT 中心消息路由将设备数据发送到 Azure 存储

注意

目前,PowerShell 不支持用于创建终结点的托管标识身份验证类型。 如果你的应用场景无法使用 SAS 身份验证,请使用其他任一管理工具来创建终结点。

此外,PowerShell 目前不支持创建 Cosmos DB 终结点。

先决条件

请根据你要将消息路由到的终结点的类型查看本文的先决条件。

  • Azure 订阅。 如果还没有 Azure 订阅,可以在开始前创建一个免费 Azure 帐户

  • IoT 中心。 如果没有中心,可以按步骤创建 IoT 中心

  • Azure PowerShell。 若要在本地使用 Azure PowerShell,请在计算机上安装 Azure PowerShell 模块。 或者,若要在 Web 浏览器中使用 Azure PowerShell,请启用 Azure Cloud Shell

  • 一个事件中心资源(带容器)。 如果需要创建新的事件中心资源,请参阅“快速入门:创建事件中心”

  • (推荐)一个托管标识,具有事件中心命名空间的基于角色的访问控制权限。 有关详细信息,请参阅“使用 Microsoft Entra ID 对托管标识进行身份验证以访问事件中心资源”

创建终结点

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

用于创建终结点的服务必须首先在 Azure 帐户中存在。

注意

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

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

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