使用 SDK 为 Azure 数据资源管理器创建 IoT 中心数据连接
本文介绍如何将数据从 IoT 中心(大数据流处理平台和 IoT 引入服务)引入 Azure 数据资源管理器。
若要了解如何使用 Kusto SDK 创建连接,请参阅使用 SDK 创建 IoT 中心网格数据连接。
有关从 IoT 中心将数据引入到 Azure 数据资源管理器的常规信息,请参阅连接到 IoT 中心。
注意
只有创建数据连接后进入队列的事件才会被引入。
有关基于以前的 SDK 版本的代码示例,请参阅存档的文章。
先决条件
创建 IoT 中心数据连接
在本部分,我们将在 IoT 中心与 Azure 数据资源管理器表之间建立连接。 只要建立了此连接,数据就会从 IoT 中心传输到目标表。
创建用于身份验证的 Microsoft Entra 应用程序主体。 需要目录(租户)ID、应用程序 ID 和客户端机密。
运行以下代码。
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID var clientSecret = "PlaceholderClientSecret"; //Client Secret var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret); var resourceManagementClient = new ArmClient(credentials, subscriptionId); var resourceGroupName = "testrg"; //The cluster and database that are created as part of the Prerequisites var clusterName = "mykustocluster"; var databaseName = "mykustodatabase"; var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync(); var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value; var cluster = (await resourceGroup.GetKustoClusterAsync(clusterName)).Value; var database = (await cluster.GetKustoDatabaseAsync(databaseName)).Value; var dataConnections = database.GetKustoDataConnections(); var iotHubConnectionName = "myiothubconnect"; //The IoT hub that is created as part of the Prerequisites var iotHubResourceId = new ResourceIdentifier("/subscriptions/<iotHubSubscriptionId>/resourceGroups/<iotHubResourceGroupName>/providers/Microsoft.Devices/IotHubs/<iotHubName>"); var sharedAccessPolicyName = "iothubforread"; var consumerGroup = "$Default"; var location = AzureLocation.chinaeast2; //The table and column mapping are created as part of the Prerequisites var tableName = "StormEvents"; var mappingRuleName = "StormEvents_CSV_Mapping"; var dataFormat = KustoIotHubDataFormat.Csv; var databaseRouting = KustoDatabaseRouting.Multi; var iotHubConnectionData = new KustoIotHubDataConnection { IotHubResourceId = iotHubResourceId, ConsumerGroup = consumerGroup, SharedAccessPolicyName = sharedAccessPolicyName, Location = location, TableName = tableName, MappingRuleName = mappingRuleName, DataFormat = dataFormat, DatabaseRouting = databaseRouting }; await dataConnections.CreateOrUpdateAsync(WaitUntil.Completed, iotHubConnectionName, iotHubConnectionData);
设置 建议的值 字段说明 tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 租户 ID。 也称为目录 ID。 subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 用于创建资源的订阅 ID。 clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx 可以访问租户中资源的应用程序的客户端 ID。 clientSecret PlaceholderClientSecret 可以访问租户中资源的应用程序的客户端密码。 resourceGroupName testrg 包含群集的资源组的名称。 clusterName mykustocluster 群集的名称。 databaseName mykustodatabase 群集中目标数据库的名称。 iotHubConnectionName myiothubconnect 所需的数据连接名称。 tableName StormEvents 目标数据库中目标表的名称。 mappingRuleName StormEvents_CSV_Mapping 与目标表相关的列映射的名称。 dataFormat csv 消息的数据格式。 iotHubResourceId 资源 ID 包含要引入的数据的 IoT 中心的资源 ID。 sharedAccessPolicyName iothubforread 共享访问策略的名称,这些策略定义设备与服务连接到 IoT 中心所需的权限。 consumerGroup $Default 事件中心的使用者组。 location 中国东部 2 数据连接资源的位置。 databaseRouting 多或单 连接的数据库路由。 如果将该值设置为“单个”,则数据连接会按 databaseName 设置中指定的内容被路由到群集中的单个数据库。 如果将此值设置为“多”,可使用数据库引入属性重写默认目标数据库。 有关详细信息,请参阅事件路由。
删除 IoT 中心数据连接
若要删除 IoT 中心连接,请运行以下命令:
kustoManagementClient.DataConnections.Delete(resourceGroupName, clusterName, databaseName, dataConnectionName);