View a markdown version of this page

Melakukan operasi impor dan ekspor massal - AWS IoT TwinMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Melakukan operasi impor dan ekspor massal

Topik ini mencakup cara melakukan operasi impor dan ekspor massal dan cara menangani kesalahan dalam pekerjaan transfer Anda. Ini memberikan contoh pekerjaan transfer menggunakan perintah CLI.

Referensi AWS IoT TwinMaker API berisi informasi tentang CreateMetadataTransferJob dan tindakan API lainnya.

TransferJob prasyarat metadata

Harap lengkapi prasyarat berikut sebelum menjalankan metadataTransferJob:

  • Buat AWS IoT TwinMaker ruang kerja. Ruang kerja dapat menjadi tujuan impor atau sumber ekspor untuk metadataTransferJob. Untuk informasi tentang membuat ruang kerja lihat,Buat ruang kerja.

  • Buat bucket Amazon S3 untuk menyimpan sumber daya. Untuk informasi selengkapnya tentang menggunakan Amazon S3, lihat Apa itu Amazon S3?

Izin IAM

Saat melakukan operasi massal, Anda perlu membuat kebijakan IAM dengan izin untuk memungkinkan pertukaran sumber AWS daya antara Amazon S3,, AWS IoT TwinMaker AWS IoT SiteWise, dan mesin lokal Anda. Untuk informasi selengkapnya tentang membuat kebijakan IAM, lihat Membuat kebijakan IAM.

Pernyataan kebijakan untuk AWS IoT TwinMaker, AWS IoT SiteWise dan Amazon S3 tercantum di sini:

  • AWS IoT TwinMaker kebijakan:

    JSON
    { "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetBucketLocation", "s3:ListBucket", "s3:AbortMultipartUpload", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iottwinmaker:GetWorkspace", "iottwinmaker:CreateEntity", "iottwinmaker:GetEntity", "iottwinmaker:UpdateEntity", "iottwinmaker:GetComponentType", "iottwinmaker:CreateComponentType", "iottwinmaker:UpdateComponentType", "iottwinmaker:ListEntities", "iottwinmaker:ListComponentTypes", "iottwinmaker:ListTagsForResource", "iottwinmaker:TagResource", "iottwinmaker:UntagResource" ], "Resource": "*" } ] }
  • AWS IoT SiteWise kebijakan:

    JSON
    { "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetBucketLocation", "s3:ListBucket", "s3:AbortMultipartUpload", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iotsitewise:CreateAsset", "iotsitewise:CreateAssetModel", "iotsitewise:UpdateAsset", "iotsitewise:UpdateAssetModel", "iotsitewise:UpdateAssetProperty", "iotsitewise:ListAssets", "iotsitewise:ListAssetModels", "iotsitewise:ListAssetProperties", "iotsitewise:ListAssetModelProperties", "iotsitewise:ListAssociatedAssets", "iotsitewise:DescribeAsset", "iotsitewise:DescribeAssetModel", "iotsitewise:DescribeAssetProperty", "iotsitewise:AssociateAssets", "iotsitewise:DisassociateAssets", "iotsitewise:AssociateTimeSeriesToAssetProperty", "iotsitewise:DisassociateTimeSeriesFromAssetProperty", "iotsitewise:BatchPutAssetPropertyValue", "iotsitewise:BatchGetAssetPropertyValue", "iotsitewise:TagResource", "iotsitewise:UntagResource", "iotsitewise:ListTagsForResource" ], "Resource": "*" } ] }
  • Kebijakan Amazon S3:

    { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetBucketLocation", "s3:ListBucket", "s3:AbortMultipartUpload", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts" ], "Resource": "*" }

    Atau, Anda dapat menjangkau kebijakan Amazon S3 Anda untuk hanya mengakses satu bucket Amazon S3, lihat kebijakan berikut.

    Kebijakan cakupan bucket tunggal Amazon S3

    { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetBucketLocation", "s3:ListBucket", "s3:AbortMultipartUpload", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::bucket name", "arn:aws:s3:::bucket name/*" ] }

Mengatur kontrol akses untuk metadata TransferJob

Untuk mengontrol jenis pekerjaan yang dapat diakses pengguna, tambahkan kebijakan IAM berikut ke peran yang digunakan untuk memanggil AWS IoT TwinMaker.

catatan

Kebijakan ini hanya mengizinkan akses ke pekerjaan AWS IoT TwinMaker impor dan ekspor yang mentransfer sumber daya ke dan dari Amazon S3.

{ "Effect": "Allow", "Action": [ "iottwinmaker:*DataTransferJob*" ], "Resource": "*", "Condition": { "StringLikeIfExists": { "iottwinmaker:sourceType": [ "s3", "iottwinmaker" ], "iottwinmaker:destinationType": [ "iottwinmaker", "s3" ] } } }

Jalankan operasi massal

Bagian ini mencakup cara melakukan operasi impor dan ekspor massal.

Impor data dari Amazon S3 ke AWS IoT TwinMaker
  1. Tentukan sumber daya yang ingin Anda transfer menggunakan TransferJob skema AWS IoT TwinMaker metadata. Buat dan simpan file skema Anda di bucket Amazon S3 Anda.

    Misalnya skema, lihatImpor templat metadata.

  2. Buat badan permintaan dan simpan sebagai file JSON. Badan permintaan menentukan sumber dan tujuan untuk pekerjaan transfer. Pastikan untuk menentukan bucket Amazon S3 Anda sebagai sumber dan AWS IoT TwinMaker ruang kerja Anda sebagai tujuan.

    Berikut ini adalah contoh dari badan permintaan:

    { "metadataTransferJobId": "your-transfer-job-Id", "sources": [{ "type": "s3", "s3Configuration": { "location": "arn:aws:s3:::amzn-s3-demo-bucket/your_import_data.json" } }], "destination": { "type": "iottwinmaker", "iotTwinMakerConfiguration": { "workspace": "arn:aws:iottwinmaker:us-east-1:111122223333:workspace/your-worksapce-name" } } }

    Catat nama file yang Anda berikan pada badan permintaan Anda, Anda akan membutuhkannya di langkah berikutnya. Dalam contoh ini badan permintaan diberi namacreateMetadataTransferJobImport.json.

  3. Jalankan perintah CLI berikut untuk memanggil CreateMetadataTransferJob (ganti nama file input-json dengan nama yang Anda berikan pada badan permintaan Anda):

    aws iottwinmaker create-metadata-transfer-job --region us-east-1 \ --cli-input-json file://createMetadataTransferJobImport.json

    Ini membuat metadata TransferJob dan memulai proses mentransfer sumber daya yang Anda pilih.

Ekspor data dari AWS IoT TwinMaker ke Amazon S3
  1. Buat badan permintaan JSON dengan filter yang sesuai untuk memilih sumber daya yang ingin Anda ekspor. Untuk contoh ini kami menggunakan:

    { "metadataTransferJobId": "your-transfer-job-Id", "sources": [{ "type": "iottwinmaker", "iotTwinMakerConfiguration": { "workspace": "arn:aws:iottwinmaker:us-east-1:111122223333:workspace/your-workspace-name", "filters": [{ "filterByEntity": { "entityId": "parent" }}, { "filterByEntity": { "entityId": "child" }}, { "filterByComponentType": { "componentTypeId": "component.type.minimal" }} ] } }], "destination": { "type": "s3", "s3Configuration": { "location": "arn:aws:s3:::amzn-s3-demo-bucket" } } }

    filtersArray memungkinkan Anda menentukan sumber daya mana yang akan diekspor. Dalam contoh ini kita menyaring berdasarkanentity, dancomponentType.

    Pastikan untuk menentukan AWS IoT TwinMaker ruang kerja Anda sebagai sumber dan bucket Amazon S3 Anda sebagai tujuan pekerjaan transfer metadata.

    Simpan isi permintaan Anda dan catat nama file, Anda akan membutuhkannya di langkah berikutnya. Untuk contoh ini, kami menamai badan permintaan kamicreateMetadataTransferJobExport.json.

  2. Jalankan perintah CLI berikut untuk memanggil CreateMetadataTransferJob (ganti nama file input-json dengan nama yang Anda berikan pada badan permintaan Anda):

    aws iottwinmaker create-metadata-transfer-job --region us-east-1 \ --cli-input-json file://createMetadataTransferJobExport.json

    Ini membuat metadata TransferJob dan memulai proses mentransfer sumber daya yang Anda pilih.

Untuk memeriksa atau memperbarui status pekerjaan transfer, gunakan perintah berikut:

  • Untuk membatalkan pekerjaan, gunakan tindakan CancelMetadataTransferJob API. Saat Anda memanggil CancelMetadataTransferJob, API hanya membatalkan metadata yang sedang berjalanTransferJob, dan sumber daya apa pun yang sudah diekspor atau diimpor tidak terpengaruh oleh panggilan API ini.

  • Untuk mengambil informasi tentang pekerjaan tertentu, gunakan tindakan GetMetadataTransferJob API.

    Atau, Anda dapat memang GetMetadataTransferJob gil pekerjaan transfer yang ada dengan perintah CLI berikut:

    aws iottwinmaker get-metadata-transfer-job --job-id ExistingJobId

    Jika Anda memang GetMetadataTransferJob gil pekerjaan AWS IoT TwinMaker impor atau ekspor yang tidak ada, Anda mendapatkan ResourceNotFoundException kesalahan sebagai tanggapan.

  • Untuk membuat daftar pekerjaan saat ini, gunakan tindakan ListMetadataTransferJobs API.

    Berikut adalah contoh CLI yang memanggil ListMetadataTransferJobs dengan AWS IoT TwinMaker sebagai destinationType dan s3 sebagai sourceType:

    aws iottwinmaker list-metadata-transfer-jobs --destination-type iottwinmaker --source-type s3
    catatan

    Anda dapat mengubah nilai parameter sourceType dan destinationType agar sesuai dengan sumber dan tujuan pekerjaan impor atau ekspor Anda.

Untuk contoh lebih lanjut dari perintah CLI yang memanggil tindakan API ini, lihat. AWS IoT TwinMaker TransferJob contoh metadata

Jika Anda mengalami kesalahan selama pekerjaan transfer, lihatPenanganan kesalahan.

Penanganan kesalahan

Setelah membuat dan menjalankan tugas transfer, Anda dapat memanggil GetMetadataTransferJob untuk mendiagnosis kesalahan yang terjadi:

aws iottwinmaker get-metadata-transfer-job \ --metadata-transfer-job-id your_metadata_transfer_job_id \ --region us-east-1

Setelah Anda melihat status pekerjaan berubahCOMPLETED, Anda dapat memverifikasi hasil pekerjaan. GetMetadataTransferJob mengembalikan objek MetadataTransferJobProgress yang disebut yang berisi bidang berikut:

  • FailedCount: Menunjukkan jumlah sumber daya yang gagal selama proses transfer.

  • SkippedCount: Men unjukkan jumlah sumber daya yang dilewati selama proses transfer.

  • SuccesedCount: Men unjukkan jumlah sumber daya yang berhasil selama proses transfer.

  • TotalCount: Menun jukkan jumlah total sumber daya yang terlibat dalam proses transfer.

Selain itu, elemen reportUrl dikembalikan yang berisi URL yang telah ditandatangani sebelumnya. Jika pekerjaan transfer Anda memiliki kesalahan yang ingin Anda selidiki lebih lanjut, maka Anda dapat mengunduh laporan kesalahan lengkap menggunakan URL ini.

Impor templat metadata

Anda dapat mengimpor banyak komponen, ComponentTypes, atau entitas dengan operasi impor massal tunggal. Contoh-contoh di bagian ini menunjukkan bagaimana melakukan ini.

template: Importing entities

Gunakan format template berikut untuk pekerjaan yang mengimpor entitas:

{ "entities": [ { "description": "string", "entityId": "string", "entityName": "string", "parentEntityId": "string", "tags": { "string": "string" }, "components": { "string": { "componentTypeId": "string", "description": "string", "properties": { "string": { "definition": { "configuration": { "string": "string" }, "dataType": "DataType", "defaultValue": "DataValue", "displayName": "string", "isExternalId": "boolean", "isRequiredInEntity": "boolean", "isStoredExternally": "boolean", "isTimeSeries": "boolean" }, "value": "DataValue" } }, "propertyGroups": { "string": { "groupType": "string", "propertyNames": [ "string" ] } } } } } ] }
template: Importing componentTypes

Gunakan format template berikut untuk pekerjaan yang mengimpor ComponentTypes:

{ "componentTypes": [ { "componentTypeId": "string", "componentTypeName": "string", "description": "string", "extendsFrom": [ "string" ], "functions": { "string": { "implementedBy": { "isNative": "boolean", "lambda": { "functionName": "Telemetry-tsDataReader", "arn": "Telemetry-tsDataReaderARN" } }, "requiredProperties": [ "string" ], "scope": "string" } }, "isSingleton": "boolean", "propertyDefinitions": { "string": { "configuration": { "string": "string" }, "dataType": "DataType", "defaultValue": "DataValue", "displayName": "string", "isExternalId": "boolean", "isRequiredInEntity": "boolean", "isStoredExternally": "boolean", "isTimeSeries": "boolean" } }, "propertyGroups": { "string": { "groupType": "string", "propertyNames": [ "string" ] } }, "tags": { "string": "string" } } ] }
template: Importing components

Gunakan format template berikut untuk pekerjaan yang mengimpor komponen:

{ "entityComponents": [ { "entityId": "string", "componentName": "string", "componentTypeId": "string", "description": "string", "properties": { "string": { "definition": { "configuration": { "string": "string" }, "dataType": "DataType", "defaultValue": "DataValue", "displayName": "string", "isExternalId": "boolean", "isRequiredInEntity": "boolean", "isStoredExternally": "boolean", "isTimeSeries": "boolean" }, "value": "DataValue" } }, "propertyGroups": { "string": { "groupType": "string", "propertyNames": [ "string" ] } } } ] }

AWS IoT TwinMaker TransferJob contoh metadata

Gunakan perintah berikut untuk mengelola transfer metadata Anda:

  • CreateMetadataTransferJobTindakan API.

    Contoh perintah CLI:

    aws iottwinmaker create-metadata-transfer-job --region us-east-1 \ --cli-input-json file://yourTransferFileName.json
  • Untuk membatalkan pekerjaan, gunakan tindakan CancelMetadataTransferJob API.

    Contoh perintah CLI:

    aws iottwinmaker cancel-metadata-transfer-job --region us-east-1 \ --metadata-transfer-job-id job-to-cancel-id

    Saat Anda memanggil CancelMetadataTransferJob, itu hanya membatalkan pekerjaan transfer metadata tertentu, dan sumber daya apa pun yang sudah diekspor atau diimpor tidak terpengaruh.

  • Untuk mengambil informasi tentang pekerjaan tertentu, gunakan tindakan GetMetadataTransferJob API.

    Contoh perintah CLI:

    aws iottwinmaker get-metadata-transfer-job \ --metadata-transfer-job-id your_metadata_transfer_job_id \ --region us-east-1 \
  • Untuk membuat daftar pekerjaan saat ini, ListMetadataTransferJobs gunakan tindakan API.

    Anda dapat memfilter hasil yang dikembalikan dengan ListMetadataTransferJobs menggunakan file JSON. Lihat prosedur berikut menggunakan CLI:

    1. Buat file JSON input CLI untuk menentukan filter yang ingin Anda gunakan:

      { "sourceType": "s3", "destinationType": "iottwinmaker", "filters": [{ "workspaceId": "workspaceforbulkimport" }, { "state": "COMPLETED" }] }

      Simpan dan catat nama file, Anda akan membutuhkannya saat memasukkan perintah CLI.

    2. Gunakan file JSON sebagai argumen untuk perintah CLI berikut:

      aws iottwinmaker list-metadata-transfer-job --region us-east-1 \ --cli-input-json file://ListMetadataTransferJobsExample.json