Поделиться через


Создание подключения к данным Центр Интернета вещей для Azure Data Explorer с помощью пакетов SDK

В этой статье показано, как принимать данные в Azure Data Explorer из Центра Интернета вещей, платформы потоковой передачи больших данных и службы приема данных Интернета вещей.

Сведения о создании подключения с помощью пакетов SDK Kusto см. в статье "Создание подключения к данным Центр Интернета вещей с помощью пакетов SDK".

Общие сведения о передаче данных в Azure Data Explorer из Центра Интернета вещей см. в разделе Подключение к Центру Интернета вещей.

Примечание.

Принимаются только события, поставленные в очередь после создания подключения к данным.

Примеры кода на основе предыдущих версий пакета SDK см. в архивной статье.

Необходимые компоненты

Создание подключения к данным Центр Интернета вещей

В этом разделе описано, как установить соединение между Центр Интернета вещей и таблицей Azure Data Explorer. Если подключение установлено, данные передаются из Центр Интернета вещей в целевую таблицу.

  1. Установите пакет NuGet Microsoft.Azure.Management.Kusto.

  2. Создайте субъект приложения Microsoft Entra для проверки подлинности. Вам потребуется идентификатор каталога (клиента), идентификатор приложения и секрет клиента.

  3. Выполните следующий код.

    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.CentralUS;
    //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 Идентификатор клиента. Также известен как идентификатор каталога.
    subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Идентификатор подписки, используемой для создания ресурсов.
    clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Идентификатор клиента приложения, которое имеет доступ к ресурсам в клиенте.
    clientSecret PlaceholderClientSecret Секрет клиента приложения, которое имеет доступ к ресурсам в клиенте.
    resourceGroupName testrg Имя группы ресурсов, содержащей ваш кластер.
    clusterName mykustocluster Имя вашего кластера.
    databaseName mykustodatabase Имя целевой базы данных в вашем кластере.
    iotHubConnectionName myiothubconnect Необходимое имя вашего подключения для передачи данных.
    tableName StormEvents Имя целевой таблицы в целевой базе данных.
    mappingRuleName StormEvents_CSV_Mapping Имя сопоставления столбцов, связанного с целевой таблицей.
    dataFormat csv Формат данных сообщения.
    iotHubResourceId Идентификатор ресурса Идентификатор ресурса вашего центра Интернета вещей, в котором хранятся данные для приема.
    sharedAccessPolicyName iothubforread Имя политики общего доступа, определяющей разрешения для устройств и служб на подключение к Центру Интернета вещей.
    consumerGroup $Default Группа потребителей вашего концентратора событий.
    расположение Центральная часть США Расположение ресурса подключения к данным.
    databaseRouting Multi или Single Маршрутизация базы данных для подключения. Если задано значение Single, подключение к данным направляется в одну базу данных в кластере, как указано в параметре databaseName . Если задать значение Multi, можно переопределить целевую базу данных по умолчанию с помощью свойства приема базы данных. Дополнительные сведения см. в разделе Маршрутизация событий.

Удаление подключения к данным Центр Интернета вещей

Чтобы удалить подключение Центр Интернета вещей, выполните следующую команду:

kustoManagementClient.DataConnections.Delete(resourceGroupName, clusterName, databaseName, dataConnectionName);