您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

教程:使用 Azure CLI 和 Azure 门户配置 IoT 中心消息路由Tutorial: Use the Azure CLI and Azure portal to configure IoT Hub message routing

消息路由能够将遥测数据从 IoT 设备发送到内置的与事件中心兼容的终结点或自定义终结点,例如,Blob 存储、服务总线队列、服务总线主题和事件中心。Message routing enables sending telemetry data from your IoT devices to built-in Event Hub-compatible endpoints or custom endpoints such as blob storage, Service Bus Queues, Service Bus Topics, and Event Hubs. 若要配置自定义消息路由,请创建路由查询来自定义与特定条件匹配的路由。To configure custom message routing, you create routing queries to customize the route that matches a certain condition. 设置完成后,引入的数据将通过 IoT 中心自动路由到终结点。Once set up, the incoming data is automatically routed to the endpoints by the IoT Hub. 如果某个消息不匹配定义的任何路由查询,它将路由到默认终结点。If a message doesn't match any of the defined routing queries, it is routed to the default endpoint.

本教程包括 2 个部分,介绍如何通过 IoT 中心设置和使用这些自定义路由查询。In this 2-part tutorial, you learn how to set up and use these custom routing queries with IoT Hub. 将消息从 IoT 设备路由到多个终结点中的一个,包括 Blob 存储和服务总线队列。You route messages from an IoT device to one of multiple endpoints, including blob storage and a Service Bus queue. 路由到服务总线队列的消息将由逻辑应用拾取,并通过电子邮件发送。Messages to the Service Bus queue are picked up by a Logic App and sent via e-mail. 未定义自定义消息路由的消息将发送到默认终结点,然后由 Azure 流分析拾取,可在 Power BI 中直观查看。Messages that do not have custom message routing defined are sent to the default endpoint, then picked up by Azure Stream Analytics and viewed in a Power BI visualization.

为了完成本教程的第 1 和第 2 部分,你执行了以下任务:To complete parts 1 and 2 of this tutorial, you performed the following tasks:

第 I 部分:创建资源并设置消息路由Part I: Create resources, set up message routing

  • 创建资源 - IoT 中心、存储帐户、服务总线队列和模拟设备。Create the resources -- an IoT hub, a storage account, a Service Bus queue, and a simulated device. 可以使用门户、Azure CLI、Azure PowerShell 或 Azure 资源管理器模板完成此操作。This can be done using the portal, the Azure CLI, Azure PowerShell, or an Azure Resource Manager template.
  • 在 IoT 中心为存储帐户和服务总线队列配置终结点和消息路由。Configure the endpoints and message routes in IoT Hub for the storage account and Service Bus queue.

第 II 部分:将消息发送到中心并查看路由的结果Part II: Send messages to the hub, view routed results

  • 创建一个逻辑应用,该应用将在消息添加到服务总线队列时触发,并发送电子邮件。Create a Logic App that is triggered and sends e-mail when a message is added to the Service Bus queue.
  • 下载并运行应用,该应用模拟 IoT 设备将消息发送到中心,以获得不同的路由选择。Download and run an app that simulates an IoT Device sending messages to the hub for the different routing options.
  • 为发送至默认终结点的数据创建 Power BI 可视化。Create a Power BI visualization for data sent to the default endpoint.
  • 查看结果...View the results ...
  • ...在服务总线队列和电子邮件中。...in the Service Bus queue and e-mails.
  • ...在存储帐户中。...in the storage account.
  • ...在 Power BI 可视化中。...in the Power BI visualization.

先决条件Prerequisites

  • 对于本教程的第 1 部分:For part 1 of this tutorial:

    • 必须拥有 Azure 订阅。You must have an Azure subscription. 如果没有 Azure 订阅,请在开始之前创建一个免费帐户If you don't have an Azure subscription, create a free account before you begin.
  • 对于本教程的第 2 部分:For part 2 of this tutorial:

    • 必须事先完成本教程的第 1 部分,并保留一些可用的资源。You must have completed Part 1 of this tutorial, and have the resources still available.
    • 安装 Visual StudioInstall Visual Studio.
    • 用于分析默认终结点的流分析的 Power BI 帐户。A Power BI account to analyze the default endpoint's stream analytics. 免费试用 Power BI。)(Try Power BI for free.)
    • 用于发送通知电子邮件的 Office 365 帐户。An Office 365 account to send notification e-mails.

使用 Azure Cloud ShellUse Azure Cloud Shell

Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. 通过 Cloud Shell 可以将 bashPowerShell 与 Azure 服务配合使用。Cloud Shell lets you use either bash or PowerShell to work with Azure services. 可以使用 Azure Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

若要启动 Azure Cloud Shell,请执行以下操作:To launch Azure Cloud Shell:

选项Option 示例/链接Example/Link
选择代码块右上角的“试用”。 Select Try It in the upper-right corner of a code block. 选择“试用” 不会自动将代码复制到 Cloud Shell。Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell 的“试用”示例
转到 https://shell.azure.com 或选择“启动 Cloud Shell” 按钮可在浏览器中打开 Cloud Shell。Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. 在新窗口中启动 Cloud ShellLaunch Cloud Shell in a new window
选择 Azure 门户右上方菜单栏中的“Cloud Shell” 按钮。Select the Cloud Shell button on the top-right menu bar in the Azure portal. Azure 门户中的“Cloud Shell”按钮

若要在 Azure Cloud Shell 中运行本文中的代码,请执行以下操作:To run the code in this article in Azure Cloud Shell:

  1. 启动 Cloud Shell。Launch Cloud Shell.
  2. 选择代码块上的“复制”按钮 以复制代码。Select the Copy button on a code block to copy the code.
  3. 在 Windows 和 Linux 上使用 Ctrl+Shift+V 将代码粘贴到 Cloud Shell 会话中,或在 macOS 上使用 Cmd+Shift+V 将代码粘贴到 Cloud Shell 会话中。Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Enter 运行此代码。Press Enter to run the code.

创建基础资源Create base resources

在配置消息路由之前,需创建 IoT 中心、存储帐户和服务总线队列。Before you can configure the message routing, you need to create an IoT hub, a storage account, and a Service Bus queue. 可以参阅适用于本教程第 1 部分的四篇文章中的一篇来创建这些资源:Azure CLI、Azure PowerShell、Azure 门户或 Azure 资源管理器模板。These resources can be created using one of the four articles that available for part 1 of this tutorial: the Azure CLI, Azure PowerShell, the Azure portal, or an Azure Resource Manager template.

为所有资源使用相同的资源组和位置。Use the same resource group and location for all of the resources. 在本教程结束后,可以通过删除资源组一次性删除所有资源。Then at the end, you can remove all of the resources in one step by deleting the resource group.

以下部分介绍要执行的步骤。The following sections describe the steps to be performed.

  1. 创建资源组Create a resource group.

  2. 在 S1 层级中创建 IoT 中心。Create an IoT hub in the S1 tier. 将使用者组添加到 IoT 中心。Add a consumer group to your IoT hub. 检索数据时,Azure 流分析使用使用者组。The consumer group is used by the Azure Stream Analytics when retrieving data.

    备注

    必须使用付费层中的 IoT 中心来完成本教程。You must use an Iot hub in a paid tier to complete this tutorial. 免费层只允许设置一个终结点,但本教程需要多个终结点。The free tier only allows you to set up one endpoint, and this tutorial requires multiple endpoints.

  3. 使用 Standard_LRS 副本创建标准 V1 存储帐户。Create a standard V1 storage account with Standard_LRS replication.

  4. 创建服务总线命名空间和队列。Create a Service Bus namespace and queue.

  5. 为发送消息到中心的模拟设备创建设备标识。Create a device identity for the simulated device that sends messages to your hub. 保存测试阶段的密钥。Save the key for the testing phase. (如果创建资源管理器模板,则会在部署模板后执行此操作。)(If creating a Resource Manager template, this is done after deploying the template.)

使用 Azure CLI 创建基本资源Use the Azure CLI to create the base resources

本教程使用 Azure CLI 创建基本资源,然后使用 Azure 门户来演示如何配置消息路由和设置虚拟设备用于测试。This tutorial uses the Azure CLI to create the base resources, then uses the Azure portal to show how to configure message routing and set up the virtual device for testing.

有几个资源名称必须全局唯一,例如 IoT 中心名称和存储帐户名称。There are several resource names that must be globally unique, such as the IoT Hub name and the storage account name. 为方便进行标识,这些资源名称的后面追加了名为 randomValue 的随机字母数字值。To make this easier, those resource names are appended with a random alphanumeric value called randomValue. randomValue 在脚本的顶部生成一次,并根据需要追加到整个脚本中的资源名称。The randomValue is generated once at the top of the script and appended to the resource names as needed throughout the script. 如果不想要使用随机后缀,可将其设置为空字符串或特定值。If you don't want it to be random, you can set it to an empty string or to a specific value.

复制以下脚本并将其粘贴到 Cloud Shell,然后按 Enter。Copy and paste the script below into Cloud Shell and press Enter. 系统每次运行脚本中的一行。It runs the script one line at a time. 此脚本将创建本教程所需的基本资源,包括存储帐户、IoT 中心、服务总线命名空间和服务总线队列。This will create the base resources for this tutorial, including the storage account, IoT Hub, Service Bus Namespace, and Service Bus queue.

有关调试的说明:此脚本使用续接符号(反斜杠 \),使脚本更方便阅读。A note about debugging: this script uses the continuation symbol (the backslash \) to make the script more readable. 如果在运行脚本时遇到问题,请确保任何反斜杠后面没有空格。If you have a problem running the script, make sure there are no spaces after any of the backslashes.

# This retrieves the subscription id of the account 
#   in which you're logged in.
# This field is used to set up the routing rules.
subscriptionID=$(az account show --query id)

# Concatenate this number onto the resources that have to be globally unique.
# You can set this to "" or to a specific value if you don't want it to be random.
# This retrieves a random value.
randomValue=$RANDOM

# Set the values for the resource names that 
#   don't have to be globally unique.
location=westus
resourceGroup=ContosoResources
iotHubConsumerGroup=ContosoConsumers
containerName=contosoresults

# Create the resource group to be used
#   for all the resources for this tutorial.
az group create --name $resourceGroup \
    --location $location

# The IoT hub name must be globally unique, 
#   so add a random value to the end.
iotHubName=ContosoTestHub$randomValue 
echo "IoT hub name = " $iotHubName

# Create the IoT hub.
az iot hub create --name $iotHubName \
    --resource-group $resourceGroup \
    --sku S1 --location $location

# Add a consumer group to the IoT hub for the 'events' endpoint.
az iot hub consumer-group create --hub-name $iotHubName \
    --name $iotHubConsumerGroup

# The storage account name must be globally unique, 
#   so add a random value to the end.
storageAccountName=contosostorage$randomValue
echo "Storage account name = " $storageAccountName

# Create the storage account to be used as a routing destination.
az storage account create --name $storageAccountName \
    --resource-group $resourceGroup \
    --location $location \
    --sku Standard_LRS

# Get the primary storage account key. 
#    You need this to create the container.
storageAccountKey=$(az storage account keys list \
    --resource-group $resourceGroup \
    --account-name $storageAccountName \
    --query "[0].value" | tr -d '"') 

# See the value of the storage account key.
echo "storage account key = " $storageAccountKey

# Create the container in the storage account. 
az storage container create --name $containerName \
    --account-name $storageAccountName \
    --account-key $storageAccountKey \
    --public-access off

# The Service Bus namespace must be globally unique, 
#   so add a random value to the end.
sbNamespace=ContosoSBNamespace$randomValue
echo "Service Bus namespace = " $sbNamespace

# Create the Service Bus namespace.
az servicebus namespace create --resource-group $resourceGroup \
    --name $sbNamespace \
    --location $location

# The Service Bus queue name must be globally unique, 
#   so add a random value to the end.
sbQueueName=ContosoSBQueue$randomValue
echo "Service Bus queue name = " $sbQueueName

# Create the Service Bus queue to be used as a routing destination.
az servicebus queue create --name $sbQueueName \
    --namespace-name $sbNamespace \
    --resource-group $resourceGroup

设置基本资源后,可以在 Azure 门户中配置消息路由。Now that the base resources are set up, you can configure the message routing in the Azure portal.

设置消息路由Set up message routing

根据模拟设备附加到消息的属性将消息路由到不同资源。You are going to route messages to different resources based on properties attached to the message by the simulated device. 未自定义路由的消息将发送到默认终结点(消息/事件)。Messages that are not custom routed are sent to the default endpoint (messages/events). 在下一教程中,我们会将消息发送到 IoT 中心,看其如何路由到不同的目标。In the next tutorial, you send messages to the IoT Hub and see them routed to the different destinations.

value 结果Result
级别=“storage”level="storage" 写入到 Azure 存储。Write to Azure Storage.
级别=“critical”level="critical" 写入服务总线队列。Write to a Service Bus queue. 逻辑应用从队列检索消息并使用 Office 365 通过电子邮件发送该消息。A Logic App retrieves the message from the queue and uses Office 365 to e-mail the message.
defaultdefault 使用 Power BI 显示此数据。Display this data using Power BI.

第一步是设置终结点,以便将数据路由到其中。The first step is to set up the endpoint to which the data will be routed. 第二步是设置使用该终结点的消息路由。The second step is to set up the message route that uses that endpoint. 设置路由后,即可在门户中查看终结点和消息路由。After setting up the routing, you can view the endpoints and message routes in the portal.

路由到存储帐户Route to a storage account

现在为存储帐户设置路由。Now set up the routing for the storage account. 你转到“消息路由”窗格,然后添加路由。You go to the Message Routing pane, then add a route. 添加路由时,请为路由定义新的终结点。When adding the route, define a new endpoint for the route. 设置此路由后,level 属性设置为 storage 的消息将自动写入存储帐户。After this routing is set up, messages where the level property is set to storage are written to a storage account automatically.

备注

可以将数据以 Apache Avro 格式(默认)或 JSON 格式(预览版)写入 Blob 存储。The data can be written to blob storage in either the Apache Avro format, which is the default, or JSON (preview).

JSON 格式编码的功能现处于预览版状态,IoT 中心可在任意区域使用(美国东部、美国西部和欧洲西部除外)。The capability to encode JSON format is in preview in all regions in which IoT Hub is available, except East US, West US and West Europe. 编码格式只能在配置 Blob 存储终结点时设置。The encoding format can be only set at the time the blob storage endpoint is configured. 不能更改已设置的终结点的格式。The format cannot be changed for an endpoint that has already been set up. 使用 JSON 编码时,必须在消息系统属性中将 contentType 设置为 JSON,将 contentEncoding 设置为 UTF-8。When using JSON encoding, you must set the contentType to JSON and the contentEncoding to UTF-8 in the message system properties.

若要更详细地了解如何使用 Blob 存储终结点,请参阅有关如何路由到 Blob 存储的指南For more detailed information about using a blob storage endpoint, please see guidance on routing to blob storage.

  1. Azure 门户中选择“资源组”,然后选择你的资源组 。In the Azure portal, select Resource Groups, then select your resource group. 本教程使用 ContosoResources 。This tutorial uses ContosoResources.

  2. 在资源列表下选择“IoT 中心”。Select the IoT hub under the list of resources. 本教程使用 ContosoTestHub 。This tutorial uses ContosoTestHub.

  3. 选择“消息路由” 。Select Message Routing. 在“消息路由”窗格中,选择“+添加” 。In the Message Routing pane, select +Add. 在“添加路由”窗格中,选择“终结点”字段旁边的“+添加”以显示支持的终结点,如下图所示 :On the Add a Route pane, select +Add next to the Endpoint field to show the supported endpoints, as displayed in the following picture:

    开始添加路由的终结点

  4. 选择“Blob 存储” 。Select Blob storage. 此时会显示“添加存储终结点”窗格 。You see the Add a storage endpoint pane.

    添加终结点

  5. 为终结点输入名称。Enter a name for the endpoint. 本教程使用 ContosoStorageEndpointThis tutorial uses ContosoStorageEndpoint.

  6. 选择“选取容器” 。Select Pick a container. 将转到存储帐户列表。This takes you to a list of your storage accounts. 选择在准备步骤中设置的存储账户。Select the one you set up in the preparation steps. 本教程使用 contosostorageThis tutorial uses contosostorage. 它显示该存储帐户中的容器列表。It shows a list of containers in that storage account. 选择在准备步骤中设置的容器。Select the container you set up in the preparation steps. 本教程使用 contosoresults 。This tutorial uses contosoresults. 返回到“添加存储终结点”窗格并查看所做的选择。 You return to the Add a storage endpoint pane and see the selections you made.

  7. 将编码设置为 AVRO 或 JSON。Set the encoding to AVRO or JSON. 在本教程中,其余字段使用默认值。For the purpose of this tutorial, use the defaults for the rest of the fields. 如果所选的区域不支持 JSON 编码,则此字段将会灰显。This field will be greyed out if the region selected does not support JSON encoding.,

    备注

    可以使用 Blob 文件名格式设置 Blob 名称的格式。You can set the format of the blob name using the Blob file name format. 默认为 {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}The default is {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}. 格式必须包含 {iothub}、{partition}、{YYYY}、{MM}、{DD}、{HH} 和 {mm},顺序不限。The format must contain {iothub}, {partition}, {YYYY}, {MM}, {DD}, {HH}, and {mm} in any order.

    例如,使用默认 Blob 文件名格式时,如果中心名称为 ContosoTestHub,日期/时间为 2018 年 10 月 30 日上午 10:56,则 Blob 名称将类似于:ContosoTestHub/0/2018/10/30/10/56For example, using the default blob file name format, if the hub name is ContosoTestHub, and the date/time is October 30, 2018 at 10:56 a.m., the blob name will look like this: ContosoTestHub/0/2018/10/30/10/56.

    Blob 以 Avro 格式写入。The blobs are written in the Avro format.

  8. 选择“创建”以创建存储终结点,并将其添加到路由 。Select Create to create the storage endpoint and add it to the route. 随即返回到“添加路由”窗格 。You return to the Add a route pane.

  9. 现在完成余下的路由查询信息。Now complete the rest of the routing query information. 此查询指定将消息发送到刚刚添加为终结点的存储容器的条件。This query specifies the criteria for sending messages to the storage container you just added as an endpoint. 填充屏幕上的字段。Fill in the fields on the screen.

    名称:为路由查询输入名称。Name: Enter a name for your routing query. 本教程使用 ContosoStorageRouteThis tutorial uses ContosoStorageRoute.

    终结点:选择刚刚设置的终结点。Endpoint: This shows the endpoint you just set up.

    数据源:从下拉列表选择“设备遥测消息” 。Data source: Select Device Telemetry Messages from the dropdown list.

    启用路由:确保此字段设置为 enabledEnable route: Be sure this field is set to enabled.

    路由查询:输入 level="storage" 作为查询字符串。Routing query: Enter level="storage" as the query string.

    为存储帐户创建路由查询

    选择“保存”。 Select Save. 完成后,返回到“消息路由”窗格,可在其中看到存储的新路由查询。When it finishes, it returns to the Message Routing pane, where you can see your new routing query for storage. 关闭“路由”窗格,将返回到资源组页。Close the Routes pane, which returns you to the Resource group page.

路由到服务总线队列Route to a Service Bus queue

现在为服务总线队列设置路由。Now set up the routing for the Service Bus queue. 你转到“消息路由”窗格,然后添加路由。You go to the Message Routing pane, then add a route. 添加路由时,请为路由定义新的终结点。When adding the route, define a new endpoint for the route. 设置此路由后,level 属性设置为 critical 的消息将写入服务总线队列,这会触发某个逻辑应用,然后发送包含相关信息的电子邮件。After this route is set up, messages where the level property is set to critical are written to the Service Bus queue, which triggers a Logic App, which then sends an e-mail with the information.

  1. 在“资源组”页上选择你的 IoT 中心,然后选择“消息路由” 。On the Resource group page, select your IoT hub, then select Message Routing.

  2. 在“消息路由”窗格中,选择“+添加” 。In the Message Routing pane, select +Add.

  3. 在“添加路由”窗格中,选择“终结点”字段旁边的“+添加” 。On the Add a Route pane, Select +Add next to the Endpoint field. 选择“服务总线队列” 。Select Service Bus Queue. 随即看到“添加服务总线终结点”窗格 。You see the Add Service Bus Endpoint pane.

    添加服务总线终结点

  4. 填写字段:Fill in the fields:

    终结点名称:为终结点输入名称。Endpoint Name: Enter a name for the endpoint. 本教程使用 ContosoSBQueueEndpointThis tutorial uses ContosoSBQueueEndpoint.

    服务总线命名空间:使用下拉列表选择在准备步骤中设置的服务总线命名空间。Service Bus Namespace: Use the dropdown list to select the service bus namespace you set up in the preparation steps. 本教程使用 ContosoSBNamespace 。This tutorial uses ContosoSBNamespace.

    服务总线队列:使用下拉列表选择服务总线队列。Service Bus queue: Use the dropdown list to select the Service Bus queue. 本教程使用 contososbqueue 。This tutorial uses contososbqueue.

  5. 选择“创建”以添加服务总线队列终结点 。Select Create to add the Service Bus queue endpoint. 随即返回到“添加路由”窗格 。You return to the Add a route pane.

  6. 现在完成余下的路由查询信息。Now you complete the rest of the routing query information. 此查询指定将消息发送到刚刚添加为终结点的服务总线队列的条件。This query specifies the criteria for sending messages to the Service Bus queue you just added as an endpoint. 填充屏幕上的字段。Fill in the fields on the screen.

    名称:为路由查询输入名称。Name: Enter a name for your routing query. 本教程使用 ContosoSBQueueRouteThis tutorial uses ContosoSBQueueRoute.

    终结点:选择刚刚设置的终结点。Endpoint: This shows the endpoint you just set up.

    数据源:从下拉列表选择“设备遥测消息” 。Data source: Select Device Telemetry Messages from the dropdown list.

    路由查询:输入 level="critical" 作为查询字符串。Routing query: Enter level="critical" as the query string.

    为服务总线队列创建路由查询

  7. 选择“保存”。 Select Save. 返回到“路由”窗格时,可看到这两个新的路由,如此处所示。When it returns to the Routes pane, you see both of your new routes, as displayed here.

    刚刚设置的路由

  8. 可以通过选择“自定义终结点”选项卡来查看设置的自定义终结点 。You can see the custom endpoints you set up by selecting the Custom Endpoints tab.

    刚刚设置的自定义终结点

  9. 关闭“消息路由”窗格,返回到“资源组”窗格。Close the Message Routing pane, which returns you to the Resource group pane.

创建模拟设备Create a simulated device

接下来,创建设备标识并保存其密钥供之后使用。Next, create a device identity and save its key for later use. 此设备标识由模拟应用程序用来发送消息到 IoT 中心。This device identity is used by the simulation application to send messages to the IoT hub. 此功能在 PowerShell 中不可用,在使用 Azure 资源管理器模板时也不可用。This capability is not available in PowerShell or when using an Azure Resource Manager template. 以下步骤介绍如何使用 Azure 门户创建模拟设备。The following steps tell you how to create the simulated device using the Azure portal.

  1. 打开 Azure 门户并登录到 Azure 帐户。Open the Azure portal and log into your Azure account.

  2. 选择“资源组”,然后选择你的资源组 。Select Resource groups and then choose your resource group. 本教程使用 ContosoResources 。This tutorial uses ContosoResources.

  3. 在资源列表中,选择 IoT 中心。In the list of resources, select your IoT hub. 本教程使用 ContosoTestHub 。This tutorial uses ContosoTestHub. 从中心窗格选择“IoT 设备” 。Select IoT Devices from the Hub pane.

  4. 选择“+ 添加” 。Select + Add. 在添加设备窗格中,填写设备 ID。On the Add Device pane, fill in the device ID. 本教程使用 Contoso-Test-Device 。This tutorial uses Contoso-Test-Device. 将密钥留空,勾选“自动生成密钥” 。Leave the keys empty, and check Auto Generate Keys. 确保已启用“将设备连接到 IoT 中心” 。Make sure Connect device to IoT hub is enabled. 选择“保存”。 Select Save.

    “添加设备”屏幕

  5. 创建设备后,即可选择它来查看生成的密钥。Now that it's been created, select the device to see the generated keys. 选择主密钥上的“复制”图标,将其保存在某个位置(如记事本)供本教程的测试阶段使用。Select the Copy icon on the Primary key and save it somewhere such as Notepad for the testing phase of this tutorial.

    设备详细信息(包括密钥)

后续步骤Next steps

设置资源并配置消息路由后,请继续学习下一篇教程,了解如何将消息发送到 IoT 中心,并查看其如何路由到不同的目标。Now that you have the resources set up and the message routes configured, advance to the next tutorial to learn how to send messages to the IoT hub and see them be routed to the different destinations.