Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat pembaruan OTA dengan AWS CLI
Saat Anda menggunakan AWS CLI untuk membuat pembaruan OTA, Anda:
-
Tanda tangani gambar firmware Anda secara digital.
-
Buat aliran gambar firmware Anda yang ditandatangani secara digital.
-
Mulai pekerjaan pembaruan OTA.
Menandatangani pembaruan firmware Anda secara digital
Saat Anda menggunakan AWS CLI untuk melakukan pembaruan OTA, Anda dapat menggunakan Penandatanganan Kode untuk AWS IoT, atau Anda dapat menandatangani pembaruan firmware Anda sendiri. Untuk daftar algoritma penandatanganan kriptografi dan hashing yang didukung oleh Penandatanganan Kode untuk AWS IoT, lihat. SigningConfigurationOverrides Jika Anda ingin menggunakan algoritma kriptografi yang tidak didukung oleh Penandatanganan Kode untuk AWS IoT, Anda harus menandatangani biner firmware sebelum mengunggahnya ke Amazon S3.
Menandatangani gambar firmware Anda dengan Penandatanganan Kode untuk AWS IoT
Untuk menandatangani gambar firmware menggunakan Penandatanganan Kode untuk AWS IoT, Anda dapat menggunakan salah satu AWS SDK atau alat
Setelah Anda menginstal dan mengonfigurasi alat penandatanganan kode, salin image firmware yang tidak ditandatangani ke bucket Amazon S3 Anda dan mulai pekerjaan penandatanganan kode dengan perintah berikut. AWS CLI Per put-signing-profile intah membuat profil penandatanganan kode yang dapat digunakan kembali. Per start-signing-job intah memulai pekerjaan penandatanganan.
aws signer put-signing-profile \ --profile-nameyour_profile_name\ --signing-material certificateArn=arn:aws:acm::your-region:your-aws-account-id:certificate/your-certificate-id\ --platformyour-hardware-platform\ --signing-parameters certname=your_certificate_path_on_device
aws signer start-signing-job \ --source 's3={bucketName=your_s3_bucket,key=your_s3_object_key,version=your_s3_object_version_id}' \ --destination 's3={bucketName=your_destination_bucket}' \ --profile-nameyour_profile_name
catatan
your-source-bucket-namedan your-destination-bucket-name bisa menjadi bucket Amazon S3 yang sama.
Ini adalah parameter untuk start-signing-job perintah put-signing-profile dan:
source-
Menentukan lokasi firmware yang tidak ditandatangani dalam bucket S3.
-
bucketName: Nama bucket S3 Anda. -
key: Kunci (nama file) firmware Anda di bucket S3 Anda. -
version: Versi S3 firmware Anda di bucket S3 Anda. Ini berbeda dengan versi firmware Anda. Anda dapat menemukannya dengan menjelajah ke konsol Amazon S3, memilih bucket Anda, dan di bagian atas halaman, di sebelah Versi, pilih Tampilkan.
-
destination-
Tujuan pada perangkat tempat firmware yang ditandatangani di bucket S3 akan disalin. Format parameter ini sama dengan
sourceparameter. signing-material-
ARN sertifikat penandatanganan kode Anda. ARN ini dihasilkan saat Anda mengimpor sertifikat Anda ke ACM.
signing-parameters-
Peta pasangan kunci-nilai untuk penandatanganan. Ini dapat mencakup informasi apa pun yang ingin Anda gunakan selama penandatanganan.
catatan
Parameter ini diperlukan saat Anda membuat profil penandatanganan kode untuk menandatangani pembaruan OTA dengan Penandatanganan Kode untuk. AWS IoT
platform-
Platform
platformIdperangkat keras tempat Anda mendistribusikan pembaruan OTA.Untuk mengembalikan daftar platform yang tersedia dan
platformIdnilainya, gunakanaws signer list-signing-platformsperintah.
Pekerjaan penandatanganan dimulai dan menulis gambar firmware yang ditandatangani ke bucket Amazon S3 tujuan. Nama file untuk gambar firmware yang ditandatangani adalah GUID. Anda memerlukan nama file ini saat membuat streaming. Anda dapat menemukan nama file dengan menelusuri ke konsol Amazon S3 dan memilih bucket Anda. Jika Anda tidak melihat file dengan nama file GUID, segarkan browser Anda.
Perintah ini menampilkan ARN pekerjaan dan ID pekerjaan. Anda membutuhkan nilai-nilai ini nanti. Untuk informasi selengkapnya tentang Penandatanganan Kode untuk AWS IoT, lihat Penandatanganan Kode untuk AWS IoT.
Menandatangani gambar firmware Anda secara manual
Tanda tangani gambar firmware Anda secara digital dan unggah gambar firmware yang ditandatangani ke bucket Amazon S3 Anda.
Membuat aliran pembaruan firmware Anda
Stream adalah antarmuka abstrak untuk data yang dapat dikonsumsi oleh perangkat. Stream dapat menyembunyikan kompleksitas mengakses data yang disimpan di lokasi yang berbeda atau layanan berbasis cloud yang berbeda. Layanan OTA Update Manager memungkinkan Anda menggunakan beberapa bagian data, disimpan di berbagai lokasi di Amazon S3, untuk melakukan Pembaruan OTA.
Saat Anda membuat Pem AWS IoT baruan OTA, Anda juga dapat membuat aliran yang berisi pembaruan firmware yang ditandatangani. Buat file JSON (stream.json) yang mengidentifikasi gambar firmware yang ditandatangani. File JSON harus berisi yang berikut ini.
[ { "fileId":"your_file_id", "s3Location":{ "bucket":"your_bucket_name", "key":"your_s3_object_key" } } ]
Ini adalah atribut dalam file JSON:
fileId-
Bilangan bulat arbitrer antara 0-255 yang mengidentifikasi gambar firmware Anda.
s3Location-
Bucket dan kunci untuk streaming firmware.
bucket-
Bucket Amazon S3 tempat gambar firmware Anda yang tidak ditandatangani disimpan.
key-
Nama file gambar firmware yang ditandatangani di bucket Amazon S3. Anda dapat menemukan nilai ini di konsol Amazon S3 dengan melihat isi bucket Anda.
Jika Anda menggunakan Penandatanganan Kode untuk AWS IoT, nama file adalah GUID yang dihasilkan oleh Penandatanganan Kode untuk AWS IoT.
Gunakan perintah create-stream AWS CLI untuk membuat aliran.
aws iot create-stream \ --stream-idyour_stream_id\ --descriptionyour_description\ --files file://stream.json\ --role-arnyour_role_arn
Ini adalah argumen untuk create-stream AWS CLI perintah:
stream-id-
String sewenang-wenang untuk mengidentifikasi aliran.
description-
Deskripsi opsional dari aliran.
files-
Satu atau lebih referensi ke file JSON yang berisi data tentang gambar firmware untuk streaming. File JSON harus berisi atribut berikut:
fileId-
ID file arbitrer.
s3Location-
Nama bucket tempat gambar firmware yang ditandatangani disimpan dan kunci (nama file) dari gambar firmware yang ditandatangani.
bucket-
Bucket Amazon S3 tempat gambar firmware yang ditandatangani disimpan.
key-
Kunci (nama file) dari gambar firmware yang ditandatangani.
Saat Anda menggunakan Penandatanganan Kode untuk AWS IoT, kunci ini adalah GUID.
Berikut ini adalah contoh
stream.jsonfile.[ { "fileId":123, "s3Location": { "bucket":"codesign-ota-bucket", "key":"48c67f3c-63bb-4f92-a98a-4ee0fbc2bef6" } } ] role-arn-
Per an layanan OTA yang juga memberikan akses ke bucket Amazon S3 tempat gambar firmware disimpan.
Untuk menemukan kunci objek Amazon S3 dari gambar firmware yang ditandatangani, gunakan aws signer describe-signing-job --job-id
my-job-id perintah where my-job-id is job ID yang ditampilkan oleh create-signing-job AWS CLI perintah. Output dari describe-signing-job perintah berisi kunci gambar firmware yang ditandatangani.
... text deleted for brevity ... "signedObject": { "s3": { "bucketName": "ota-bucket", "key": "7309da2c-9111-48ac-8ee4-5a4262af4429" } } ... text deleted for brevity ...
Membuat pembaruan OTA
Gunakan create-ota-update AWS CLI perintah untuk membuat pekerjaan pembaruan OTA.
catatan
Jangan gunakan informasi identitas pribadi (PII) apa pun dalam ID pekerjaan pembaruan OTA Anda. Contoh informasi yang dapat diidentifikasi secara pribadi meliputi:
-
Nama-nama.
-
Alamat IP.
-
Alamat email.
-
Lokasi.
-
Rincian bank.
-
Informasi medis.
aws iot create-ota-update \ --ota-update-idvalue\ [--descriptionvalue] \ --targetsvalue\ [--protocolsvalue] \ [--target-selectionvalue] \ [--aws-job-executions-rollout-configvalue] \ [--aws-job-presigned-url-configvalue] \ [--aws-job-abort-configvalue] \ [--aws-job-timeout-configvalue] \ --filesvalue\ --role-arnvalue\ [--additional-parametersvalue] \ [--tagsvalue] \ [--cli-input-jsonvalue] \ [--generate-cli-skeleton]
cli-input-jsonformat
{ "otaUpdateId": "string", "description": "string", "targets": [ "string" ], "protocols": [ "string" ], "targetSelection": "string", "awsJobExecutionsRolloutConfig": { "maximumPerMinute": "integer", "exponentialRate": { "baseRatePerMinute": "integer", "incrementFactor": "double", "rateIncreaseCriteria": { "numberOfNotifiedThings": "integer", "numberOfSucceededThings": "integer" } } }, "awsJobPresignedUrlConfig": { "expiresInSec": "long" }, "awsJobAbortConfig": { "abortCriteriaList": [ { "failureType": "string", "action": "string", "thresholdPercentage": "double", "minNumberOfExecutedThings": "integer" } ] }, "awsJobTimeoutConfig": { "inProgressTimeoutInMinutes": "long" }, "files": [ { "fileName": "string", "fileType": "integer", "fileVersion": "string", "fileLocation": { "stream": { "streamId": "string", "fileId": "integer" }, "s3Location": { "bucket": "string", "key": "string", "version": "string" } }, "codeSigning": { "awsSignerJobId": "string", "startSigningJobParameter": { "signingProfileParameter": { "certificateArn": "string", "platform": "string", "certificatePathOnDevice": "string" }, "signingProfileName": "string", "destination": { "s3Destination": { "bucket": "string", "prefix": "string" } } }, "customCodeSigning": { "signature": { "inlineDocument": "blob" }, "certificateChain": { "certificateName": "string", "inlineDocument": "string" }, "hashAlgorithm": "string", "signatureAlgorithm": "string" } }, "attributes": { "string": "string" } } ], "roleArn": "string", "additionalParameters": { "string": "string" }, "tags": [ { "Key": "string", "Value": "string" } ] }
Nama |
Tipe |
Deskripsi |
|---|---|---|
|
string (maks: 128 menit: 1) |
ID pembaruan OTA yang akan dibuat. |
|
string (maks: 2028) |
Deskripsi tentang pembaruan OTA. |
|
daftar |
Perangkat ditargetkan untuk menerima pembaruan OTA. |
|
daftar |
Protokol yang digunakan untuk mentransfer gambar pembaruan OTA. Nilai yang valid adalah [HTTP], [MQTT], [HTTP, MQTT]. Ketika HTTP dan MQTT ditentukan, perangkat target dapat memilih protokol. |
|
string |
Menentukan apakah pembaruan akan terus berjalan (CONTINUOUS), atau akan selesai setelah semua hal yang ditentukan sebagai target telah menyelesaikan pembaruan (SNAPSHOT). Jika terus menerus, pembaruan juga dapat dijalankan pada sesuatu ketika perubahan terdeteksi dalam target. Misalnya, pembaruan akan berjalan pada sesuatu ketika benda itu ditambahkan ke grup target, bahkan setelah pembaruan selesai oleh semua hal yang awalnya ada di grup. Nilai yang valid: KONTINU | SNAPSHOT. enum: BERKELANJUTAN | SNAPSHOT |
|
Konfigurasi untuk peluncuran pembaruan OTA. |
|
|
integer (maks: 1000 menit: 1) |
Jumlah maksimum eksekusi pekerjaan pembaruan OTA dimulai per menit. |
|
Tingkat kenaikan untuk peluncuran pekerjaan. Parameter ini memungkinkan Anda menentukan kenaikan tingkat eksponensial untuk peluncuran pekerjaan. |
|
|
integer (maks: 1000 menit: 1) |
Jumlah minimum hal yang akan diberitahukan tentang pekerjaan yang tertunda, per menit, pada awal peluncuran pekerjaan. Ini adalah tingkat awal peluncuran. |
|
|
Kriteria untuk memulai peningkatan tingkat peluncuran untuk suatu pekerjaan. AWS IoT mendukung hingga satu digit setelah desimal (misalnya, 1,5, tetapi tidak 1,55). |
|
|
|
integer (menit: 1) |
Ketika jumlah hal ini telah diberitahukan, itu akan memulai peningkatan tingkat peluncuran. |
|
|
integer (menit: 1) |
Ketika sejumlah hal ini telah berhasil dalam pelaksanaan pekerjaan mereka, itu akan memulai peningkatan tingkat peluncuran. |
|
Informasi konfigurasi untuk URL yang telah ditandatangani sebelumnya. |
|
|
|
long |
Berapa lama (dalam detik) URL yang ditandatangani sebelumnya valid. Nilai yang valid adalah 60 - 3600, nilai default adalah 1800 detik. Pre-signed URL dihasilkan ketika permintaan untuk dokumen pekerjaan diterima. |
|
|
Kriteria yang menentukan kapan dan bagaimana penghentian pekerjaan terjadi. |
|
|
|
daftar |
Daftar kriteria yang menentukan kapan dan bagaimana menghentikan pekerjaan. |
|
|
string |
Jenis kegagalan eksekusi pekerjaan yang dapat memulai penghentian pekerjaan. enum: GAGAL | DITOLAK | TIMED_OUT | SEMUA |
|
|
string |
Jenis tindakan pekerjaan yang harus diambil untuk memulai penghentian pekerjaan. enum: BATAL |
|
|
integer (menit: 1) |
Jumlah minimum hal yang harus menerima pemberitahuan eksekusi pekerjaan sebelum pekerjaan dapat dihentikan. |
|
|
Menentukan jumlah waktu yang dimiliki setiap perangkat untuk menyelesaikan pelaksanaan pekerjaan. Timer dimulai saat status eksekusi pekerjaan disetel ke |
|
|
|
long |
Menentukan jumlah waktu, dalam menit, perangkat ini harus menyelesaikan eksekusi pekerjaan ini. Interval batas waktu dapat berkisar antara 1 menit dan 7 hari (1 hingga 10080 menit). Timer yang sedang berlangsung tidak dapat diperbarui dan akan berlaku untuk semua eksekusi pekerjaan untuk pekerjaan tersebut. Setiap kali eksekusi pekerjaan tetap dalam status IN_PROGRESS lebih lama dari interval ini, eksekusi pekerjaan akan gagal dan beralih ke status terminal |
|
|
daftar |
File yang akan dialirkan oleh pembaruan OTA. |
|
|
string |
Nama file. |
|
|
integer rentang- maks: 255 menit: 0 |
Nilai integer yang dapat Anda sertakan dalam dokumen pekerjaan untuk memungkinkan perangkat Anda mengidentifikasi jenis file yang diterima dari cloud. |
|
|
string |
Versi file. |
|
|
Lokasi firmware yang diperbarui. |
|
|
|
Streaming yang berisi pembaruan OTA. |
|
|
|
string (maks: 128 menit: 1) |
ID stream. |
|
|
integer (maks: 255 menit: 0) |
ID file yang terkait dengan aliran. |
|
|
Lokasi firmware yang diperbarui di S3. |
|
|
|
string (menit: 1) |
Bucket S3. |
|
|
string (menit: 1) |
Kunci S3. |
|
|
string |
Versi bucket S3. |
|
|
Metode penandatanganan kode file. |
|
|
|
string |
ID AWSSignerJob yang dibuat untuk menandatangani file. |
|
|
Menjelaskan pekerjaan penandatanganan kode. |
|
|
|
Menjelaskan profil penandatanganan kode. |
|
|
|
string |
Sertifikat ARN. |
|
|
string |
Platform perangkat keras perangkat Anda. |
|
|
string |
Lokasi sertifikat penandatanganan kode di perangkat Anda. |
|
|
string |
Nama profil penandatanganan kode. |
|
|
Lokasi untuk menulis file yang ditandatangani kode. |
|
|
|
Menjelaskan lokasi di S3 dari firmware yang diperbarui. |
|
|
|
string (menit: 1) |
Bucket S3 yang berisi firmware yang diperbarui. |
|
|
string |
Awalan S3. |
|
|
Metode khusus untuk menandatangani kode file. |
|
|
|
Tanda tangan untuk file. |
|
|
|
blob |
Representasi biner yang dikodekan base64 dari tanda tangan penandatanganan kode. |
|
|
Rantai-rantai sertifikat. |
|
|
|
string |
Nama sertifikat. |
|
|
string |
Representasi biner yang dikodekan base64 dari rantai sertifikat penandatanganan kode. |
|
|
string |
Algoritma hash yang digunakan untuk menandatangani kode file. |
|
|
string |
Algoritma tanda tangan yang digunakan untuk menandatangani kode file. |
|
|
map |
Daftar name/attribute pasangan. |
|
|
string (maks: 2048 menit: 20) |
Peran IAM yang memberikan AWS IoT akses ke Amazon S3, AWS IoT pekerjaan, dan sumber daya Penandatanganan AWS Kode untuk membuat pekerjaan pembaruan OTA. |
|
|
map |
Daftar parameter pembaruan OTA tambahan yang merupakan pasangan nama-nilai. |
|
|
daftar |
Metadata yang dapat digunakan untuk mengelola pembaruan. |
|
|
string (maks: 128 menit: 1) |
Kunci tag. |
|
|
string (maks: 256 menit: 1) |
Nilai tag. |
Output
{ "otaUpdateId": "string", "awsIotJobId": "string", "otaUpdateArn": "string", "awsIotJobArn": "string", "otaUpdateStatus": "string" }
|
Nama |
Tipe |
Deskripsi |
|---|---|---|
|
|
string (maks: 128 menit: 1) |
ID pembaruan OTA. |
|
|
string |
ID AWS IoT pekerjaan yang terkait dengan pembaruan OTA. |
|
|
string |
Pembaruan OTA ARN. |
|
|
string |
AWS IoT Pekerjaan ARN terkait dengan pembaruan OTA. |
|
|
string |
Status pembaruan OTA. enum: CREATE_PENDING | CREATE_IN_PROGRESS | CREATE_COMPLETE | CREATE_FAILED |
Berikut ini adalah contoh file JSON yang diteruskan ke create-ota-update perintah yang menggunakan Penandatanganan Kode untuk AWS IoT.
[ { "fileName": "firmware.bin", "fileType": 1, "fileLocation": { "stream": { "streamId": "004", "fileId":123 } }, "codeSigning": { "awsSignerJobId": "48c67f3c-63bb-4f92-a98a-4ee0fbc2bef6" } } ]
Berikut ini adalah contoh file JSON yang diteruskan ke create-ota-update AWS CLI perintah yang menggunakan file inline untuk menyediakan materi penandatanganan kode khusus.
[ { "fileName": "firmware.bin", "fileType": 1, "fileLocation": { "stream": { "streamId": "004", "fileId": 123 } }, "codeSigning": { "customCodeSigning":{ "signature":{ "inlineDocument":"your_signature" }, "certificateChain": { "certificateName": "your_certificate_name", "inlineDocument":"your_certificate_chain" }, "hashAlgorithm":"your_hash_algorithm", "signatureAlgorithm":"your_signature_algorithm" } } } ]
Berikut ini adalah contoh file JSON yang diteruskan ke create-ota-update AWS CLI perintah yang memungkinkan FreeRTOS OTA untuk memulai pekerjaan penandatanganan kode dan membuat profil penandatanganan kode dan streaming.
[ { "fileName": "your_firmware_path_on_device", "fileType": 1, "fileVersion": "1", "fileLocation": { "s3Location": { "bucket": "your_bucket_name", "key": "your_object_key", "version": "your_S3_object_version" } }, "codeSigning":{ "startSigningJobParameter":{ "signingProfileName": "myTestProfile", "signingProfileParameter": { "certificateArn": "your_certificate_arn", "platform": "your_platform_id", "certificatePathOnDevice": "certificate_path" }, "destination": { "s3Destination": { "bucket": "your_destination_bucket" } } } } } ]
Berikut ini adalah contoh file JSON yang diteruskan ke create-ota-update AWS CLI perintah yang membuat pembaruan OTA yang memulai pekerjaan penandatanganan kode dengan profil yang ada dan menggunakan aliran yang ditentukan.
[ { "fileName": "your_firmware_path_on_device", "fileType": 1, "fileVersion": "1", "fileLocation": { "s3Location": { "bucket": "your_s3_bucket_name", "key": "your_object_key", "version": "your_S3_object_version" } }, "codeSigning":{ "startSigningJobParameter":{ "signingProfileName": "your_unique_profile_name", "destination": { "s3Destination": { "bucket": "your_destination_bucket" } } } } } ]
Berikut ini adalah contoh file JSON yang diteruskan ke create-ota-update AWS CLI perintah yang memungkinkan FreeRTOS OTA untuk membuat aliran dengan ID pekerjaan penandatanganan kode yang ada.
[ { "fileName": "your_firmware_path_on_device", "fileType": 1, "fileVersion": "1", "codeSigning":{ "awsSignerJobId": "your_signer_job_id" } } ]
Berikut ini adalah contoh file JSON yang diteruskan ke create-ota-update AWS CLI perintah yang membuat pembaruan OTA. Pembaruan membuat aliran dari objek S3 yang ditentukan dan menggunakan penandatanganan kode khusus.
[ { "fileName": "your_firmware_path_on_device", "fileType": 1, "fileVersion": "1", "fileLocation": { "s3Location": { "bucket": "your_bucket_name", "key": "your_object_key", "version": "your_S3_object_version" } }, "codeSigning":{ "customCodeSigning": { "signature":{ "inlineDocument":"your_signature" }, "certificateChain": { "inlineDocument":"your_certificate_chain", "certificateName": "your_certificate_path_on_device" }, "hashAlgorithm":"your_hash_algorithm", "signatureAlgorithm":"your_sig_algorithm" } } } ]
Mendaftarkan pembaruan OTA
Anda dapat menggunakan list-ota-updates AWS CLI perintah untuk mendapatkan daftar semua pembaruan OTA.
aws iot list-ota-updates
Output dari list-ota-updates perintah terlihat seperti ini.
{ "otaUpdates": [ { "otaUpdateId": "my_ota_update2", "otaUpdateArn": "arn:aws:iot:us-west-2:123456789012:otaupdate/my_ota_update2", "creationDate": 1522778769.042 }, { "otaUpdateId": "my_ota_update1", "otaUpdateArn": "arn:aws:iot:us-west-2:123456789012:otaupdate/my_ota_update1", "creationDate": 1522775938.956 }, { "otaUpdateId": "my_ota_update", "otaUpdateArn": "arn:aws:iot:us-west-2:123456789012:otaupdate/my_ota_update", "creationDate": 1522775151.031 } ] }
Mendapatkan informasi tentang pembaruan OTA
Anda dapat menggunakan get-ota-update AWS CLI perintah untuk mendapatkan status pembuatan atau penghapusan pembaruan OTA.
aws iot get-ota-update --ota-update-idyour-ota-update-id
Output dari get-ota-update perintah terlihat seperti berikut ini.
{ "otaUpdateInfo": { "otaUpdateId": "ota-update-001", "otaUpdateArn": "arn:aws:iot:region:123456789012:otaupdate/ota-update-001", "creationDate": 1575414146.286, "lastModifiedDate": 1575414149.091, "targets": [ "arn:aws:iot:region:123456789012:thing/myDevice" ], "protocols": [ "HTTP" ], "awsJobExecutionsRolloutConfig": { "maximumPerMinute": 0 }, "awsJobPresignedUrlConfig": { "expiresInSec": 1800 }, "targetSelection": "SNAPSHOT", "otaUpdateFiles": [ { "fileName": "my_firmware.bin", "fileType": 1, "fileLocation": { "s3Location": { "bucket": "my-bucket", "key": "my_firmware.bin", "version": "AvP3bfJC9gyqnwoxPHuTqM5GWENt4iii" } }, "codeSigning": { "awsSignerJobId": "b7a55a54-fae5-4d3a-b589-97ed103737c2", "startSigningJobParameter": { "signingProfileParameter": {}, "signingProfileName": "my-profile-name", "destination": { "s3Destination": { "bucket": "some-ota-bucket", "prefix": "SignedImages/" } } }, "customCodeSigning": {} } } ], "otaUpdateStatus": "CREATE_COMPLETE", "awsIotJobId": "AFR_OTA-ota-update-001", "awsIotJobArn": "arn:aws:iot:region:123456789012:job/AFR_OTA-ota-update-001" } }
Nilai yang dikembalikan untuk otaUpdateStatus termasuk yang berikut:
CREATE_PENDING-
Pembuatan pembaruan OTA tertunda.
CREATE_IN_PROGRESS-
Pembaruan OTA sedang dibuat.
CREATE_COMPLETE-
Pembaruan OTA telah dibuat.
CREATE_FAILED-
Pembuatan pembaruan OTA gagal.
DELETE_IN_PROGRESS-
Pembaruan OTA sedang dihapus.
DELETE_FAILED-
Penghapusan pembaruan OTA gagal.
catatan
Untuk mendapatkan status eksekusi pembaruan OTA setelah dibuat, Anda perlu menggunakan describe-job-execution perintah. Untuk informasi selengkapnya, lihat Men jelaskan Eksekusi Pekerjaan.
Menghapus OTA-related data
Saat ini, Anda tidak dapat menggunakan AWS IoT konsol untuk menghapus streaming atau pembaruan OTA. Anda dapat menggunakan AWS CLI untuk menghapus aliran, pembaruan OTA, dan AWS IoT pekerjaan yang dibuat selama pembaruan OTA.
Menghapus aliran OTA
Saat Anda membuat pembaruan OTA yang menggunakan MQTT, Anda dapat menggunakan baris perintah atau AWS IoT konsol untuk membuat aliran untuk memecah firmware menjadi beberapa bagian sehingga dapat dikirim melalui MQTT. Anda dapat menghapus aliran ini dengan delete-stream AWS CLI perintah, seperti yang ditunjukkan pada contoh berikut.
aws iot delete-stream --stream-idyour_stream_id
Menghapus pembaruan OTA
Saat Anda membuat pembaruan OTA, berikut ini dibuat:
-
Entri dalam database pekerjaan pembaruan OTA.
-
AWS IoT Pekerjaan untuk melakukan pembaruan.
-
Ek AWS IoT sekusi pekerjaan untuk setiap perangkat yang diperbarui.
Per delete-ota-update intah menghapus entri di database pekerjaan pembaruan OTA saja. Anda harus menggunakan delete-job perintah untuk menghapus AWS IoT pekerjaan.
Gunakan delete-ota-update perintah untuk menghapus pembaruan OTA.
aws iot delete-ota-update --ota-update-idyour_ota_update_id
ota-update-id-
ID pembaruan OTA untuk dihapus.
delete-stream-
Menghapus aliran yang terkait dengan pembaruan OTA.
force-delete-aws-job-
Menghapus AWS IoT pekerjaan yang terkait dengan pembaruan OTA. Jika tanda ini tidak disetel dan pekerjaan berada dalam
In_Progressstatus, pekerjaan tidak dihapus.
Menghapus pekerjaan IoT yang dibuat untuk pembaruan OTA
FreeRTOS membuat AWS IoT pekerjaan saat Anda membuat pembaruan OTA. Eksekusi pekerjaan juga dibuat untuk setiap perangkat yang memproses pekerjaan. Anda dapat menggunakan delete-job AWS CLI perintah untuk menghapus pekerjaan dan eksekusi pekerjaan yang terkait.
aws iot delete-job --job-idyour-job-id--no-force
no-forceParameter menentukan bahwa hanya pekerjaan yang berada dalam status terminal (SELESAI atau DIBATALKAN) dapat dihapus. Anda dapat menghapus pekerjaan yang berada dalam keadaan non-terminal dengan meneruskan force parameter. Untuk informasi selengkapnya, lihat DeleteJob API.
catatan
Menghapus pekerjaan dengan status IN_PROGRESS akan mengganggu eksekusi pekerjaan apa pun yang ada IN_PROGRESS di perangkat Anda dan dapat mengakibatkan perangkat dibiarkan dalam keadaan nondeterministik. Pastikan bahwa setiap perangkat yang menjalankan pekerjaan yang telah dihapus dapat pulih ke status yang diketahui.
Bergantung pada jumlah eksekusi pekerjaan yang dibuat untuk pekerjaan dan faktor lainnya, perlu beberapa menit untuk menghapus pekerjaan. Saat pekerjaan sedang dihapus, statusnya adalah DELETION_IN_PROGRESS. Mencoba menghapus atau membatalkan pekerjaan yang statusnya sudah DELETION_IN_PROGRESS menghasilkan kesalahan.
Anda dapat menggunakan delete-job-execution untuk menghapus eksekusi pekerjaan. Anda mungkin ingin menghapus eksekusi pekerjaan ketika sejumlah kecil perangkat tidak dapat memproses pekerjaan. Ini menghapus eksekusi pekerjaan untuk satu perangkat, seperti yang ditunjukkan pada contoh berikut.
aws iot delete-job-execution --job-idyour-job-id--thing-nameyour-thing-name--execution-numberyour-job-execution-number--no-force
Seperti delete-job AWS CLI perintah, Anda dapat meneruskan --force parameter ke delete-job-execution untuk memaksa penghapusan eksekusi pekerjaan. Untuk informasi selengkapnya, lihat DeleteJobExecution API.
catatan
Menghapus eksekusi pekerjaan dengan status IN_PROGRESS akan mengganggu eksekusi pekerjaan apa pun yang ada IN_PROGRESS di perangkat Anda dan dapat mengakibatkan perangkat dibiarkan dalam keadaan nondeterministik. Pastikan bahwa setiap perangkat yang menjalankan pekerjaan yang telah dihapus dapat pulih ke status yang diketahui.
Untuk informasi lebih lanjut tentang menggunakan aplikasi demo pembaruan OTA, lihatOver-the-air memperbarui aplikasi demo.