【发布时间】:2019-08-27 13:33:23
【问题描述】:
我需要配置更多 20,000 台设备,但出现以下错误:
太多了 请求:{"errorCode":429001,"trackingId":"0bf62c41-dc10-42e0-b292-e95776396a31","message":"操作 为此受到限制 租户。","timestampUtc":"2019-08-09T13:37:09.5244497Z"}
如何提高请求率或解决问题?
下面是使用的代码:
private static async Task<IEnumerable<IndividualEnrollment>> BulkCreateIndividualEnrollmentsAsync(IEnumerable<Device> activeDevicesToAdd)
{
Console.WriteLine(DateTime.Now.ToString("hh:mm:ss.fff"));
var individualEnrollments = new List<IndividualEnrollment>();
foreach (var activeDeviceToAdd in activeDevicesToAdd)
{
var symmetricKey = _symmetricKeyGenerator.GenerateSymmetricKey(activeDeviceToAdd.RegistrationId);
var symmetricKeyAttestation = new SymmetricKeyAttestation(symmetricKey, symmetricKey);
var individualEnrollment = new IndividualEnrollment(activeDeviceToAdd.RegistrationId, symmetricKeyAttestation);
individualEnrollment.ProvisioningStatus = activeDeviceToAdd.Status = ProvisioningStatus.Enabled
individualEnrollments.Add(individualEnrollment);
}
if (individualEnrollments.Any())
{
int batchSzie = BATCH_Size;
for (int i = 0; i < individualEnrollments.Count;)
{
if (i + BATCH_Size > individualEnrollments.Count)
batchSzie = individualEnrollments.Count - i;
var bulkEnrollmentOperationResult = await _provisioningServiceClient.RunBulkEnrollmentOperationAsync(BulkOperationMode.Create, individualEnrollments.GetRange(i, batchSzie));
if (!bulkEnrollmentOperationResult.IsSuccessful)
throw new Exception("Error: " + bulkEnrollmentOperationResult.ToString());
i += BATCH_Size;
}
}
return individualEnrollments;
}
更新
下面的示例:
Nuget:Microsoft.Azure.Devices.Provisioning.Service
结果:BulkEnrollmentOperationResult
结果中没有 RetryAfter。
【问题讨论】:
标签: azure azure-iot-hub