Azure IoT HubでデバイスIDの一括アップロードを行う場合は、https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-bulk-identity-mgmtに従います。ここで与えられたすべてのコードはC#で書かれているので、私はそれをJAVAに相当するものに変換しています。 インポート装置の例を使用Azure IoTハブデバイスIDをバルクで作成中にエラーが発生しました。
- 私は機能下記BLOBからファイルをインポートするjson-
{"id":"d3d78b0d-6c8c-4ef5-a321-91fbb6a4b7d1","importMode":"create","status":"enabled","authentication":{"symmetricKey":{"primaryKey":"f8/UZcYbhPxnNdbSl2J+0Q==","secondaryKey":"lbq4Y4Z8qWmfUxAQjRsDjw=="}}}
{"id":"70bbe407-8d65-4f57-936f-ef402aa66d07","importMode":"create","status":"enabled","authentication":{"symmetricKey":{"primaryKey":"9e7fDNIFbMu/NmOfxo/vGg==","secondaryKey":"nwFiKR4HV9KYHzkeyu8nLA=="}}}
を以下取得していたバルクデバイスプロビジョニングは、上記のコードで
CompletableFuture<JobProperties> importJob = registryManager
.importDevicesAsync(inURI, outURI);
called-であり、そのためには、SASコードのURIを提供する必要があります。コンテナのSAS URIを入手してください同等のコードが
以下です3210static String GetContainerSasUri(CloudBlobContainer container) {
SharedAccessBlobPolicy sasConstraints = new SharedAccessBlobPolicy();
sasConstraints.setSharedAccessExpiryTime(new Date(new Date().getTime() + TimeUnit.DAYS.toMillis(1)));
sasConstraints.setPermissions(EnumSet.of(SharedAccessBlobPermissions.READ, SharedAccessBlobPermissions.WRITE,
SharedAccessBlobPermissions.LIST, SharedAccessBlobPermissions.DELETE));
BlobContainerPermissions permissions = new BlobContainerPermissions();
permissions.setPublicAccess(BlobContainerPublicAccessType.CONTAINER);
permissions.getSharedAccessPolicies().put("testpolicy", sasConstraints);
try {
container.uploadPermissions(permissions);
} catch (StorageException e1) {
e1.printStackTrace();
}
String sasContainerToken = null;
try {
sasContainerToken = container.generateSharedAccessSignature(sasConstraints, "testpolicy");
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (StorageException e) {
e.printStackTrace();
}
System.out.println("URI " + container.getUri() +"?"+ sasContainerToken);
return container.getUri() + "?" + sasContainerToken;
}
ここで問題が発生しています。出力コンテナのために私は取得しています、次のエラー -
java.util.concurrent.ExecutionException: com.microsoft.azure.sdk.iot.service.exceptions.IotHubBadFormatException: Bad message format! ErrorCode:BlobContainerValidationError;Unauthorized to write to output blob container. Tracking ID:2dcb2efbf1e14e33ba60dc8415dc03c3-G:4-TimeStamp:11/08/2017 16:16:10
私は悪いメッセージフォーマットエラーを取得していますなぜ知っている私を助けてください? SASキーの生成コードに問題がありますか、BLOBコンテナに書き込み権限がありませんか?