如何在设备配置服务注册列表中映射IoTHub? - 注册状态“未分配”

时间:2018-05-10 04:16:18

标签: azure azure-iot-hub

我有一个名为“myDPS”的Azure 设备配置服务设置,并且以下IoT集线器已链接。

  1. IoTHub-DEV-亚
  2. IoTHub-PROD-欧
  3. 目前没有注册列表。以下用于注册设备的c#代码

    private const string RegistrationId = "TestRegID";
    private const string OptionalDeviceId = "Device1";
    private const ProvisioningStatus OptionalProvisioningStatus = ProvisioningStatus.Enabled;
    private const string SampleTpmEndorsementKey = "***"// Key generated using TPM Simulator
    
    static async Task SetRegistrationDataAsync()
    {
       Console.WriteLine("Starting SetRegistrationData");
       Attestation attestation = new TpmAttestation(SampleTpmEndorsementKey);
       IndividualEnrollment individualEnrollment = new 
       IndividualEnrollment(RegistrationId, attestation);
       individualEnrollment.DeviceId = OptionalDeviceId;
       individualEnrollment.ProvisioningStatus = OptionalProvisioningStatus;
       Console.WriteLine("\nAdding new individualEnrollment...");
       var serviceClient = ProvisioningServiceClient.CreateFromConnectionString(ServiceConnectionString);
       IndividualEnrollment individualEnrollmentResult =
        await  serviceClient.CreateOrUpdateIndividualEnrollmentAsync(individualEnrollment).ConfigureAwait(false);
        Console.WriteLine("\nIndividualEnrollment created with success.");
        Console.WriteLine(individualEnrollmentResult);
    }
    

    以上代码成功将设备注册到DPS,但状态显示为未分配

    问题#1 - 注册状态未分配,有时会显示FAILED 状态:失败 错误代码:404201

    问题#2 一旦上述问题得到解决,那么我想有一些配置,我可以指定哪个设备应映射到哪个IoT,以便设备可以自动决定它的目标IoT集线器。

    示例

      

    Device1-> IoTHub-Dev-Asia

         

    Device2-> IoTHub-DEV-亚

         

    Device3-> IoTHub-DEV-欧

    我认为通过注册列表进行静态配置可以帮助但不确定如何使用它?

    enter image description here

1 个答案:

答案 0 :(得分:2)

三种支持的分配策略决定了如何将设备分配给IoT中心:

  1. 最低延迟:设备基于集线器配置到物联网集线器,设备延迟最短。
  2. 均匀加权分配(默认):链接的物联网集线器同样可能会为其配置设备。这是默认设置。如果您只将设备配置到一个IoT集线器,则可以保留此设置。
  3. 通过注册列表进行静态配置:注册列表中所需的IoT中心规范优先于DPS级别的分配策略。
  4. 如果您需要分配设备,则应该只使用一次ProvisioningDeviceClient.RegisterAsync() API调用。您可以参考sample。在示例中,您需要将RegistrationId替换为您之前创建的注册ID。