Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pekerjaan perangkat operasi MQTT API
Anda dapat mengeluarkan perintah perangkat pekerjaan dengan menerbitkan pesan MQTT keTopik cadangan yang digunakan untuk perintah Pekerjaan.
Klien sisi perangkat Anda harus berlangganan topik pesan respons dari perintah ini. Jika Anda menggunakanAWS IoTKlien Perangkat, perangkat Anda akan secara otomatis berlangganan topik respons. Ini berarti bahwa broker pesan akan mempublikasikan topik pesan respons kepada klien yang menerbitkan pesan perintah, apakah klien Anda telah berlangganan topik pesan respons atau tidak. Pesan respons ini tidak melewati broker pesan dan tidak dapat berlangganan oleh klien atau aturan lain.
Saat berlangganan pekerjaan danjobExecution
topik acara untuk solusi pemantauan armada Anda, pertama-tama aktifkanpekerjaan dan pelaksanaan pekerjaanuntuk menerima acara apa pun di sisi cloud. Pesan kemajuan pekerjaan yang diproses melalui broker pesan dan dapat digunakan olehAWS IoTditerbitkan sebagaiAcara Lowongan. Karena broker pesan menerbitkan pesan respons, bahkan tanpa berlangganan eksplisit kepada mereka, klien Anda harus dikonfigurasi untuk menerima dan mengidentifikasi pesan yang diterimanya. Klien Anda juga harus mengkonfirmasi bahwaThingName
dalam topik pesan masuk berlaku untuk nama hal klien sebelum klien bertindak pada pesan.
catatan
Pesan ituAWS IoTmengirim dalam menanggapi pesan perintah MQTT Jobs API dibebankan ke akun Anda, apakah Anda berlangganan mereka secara eksplisit atau tidak.
Berikut ini menunjukkan operasi API MQTT dan sintaks permintaan dan responsnya. Semua operasi MQTT API memiliki parameter berikut:
- ClientToken
-
Token klien opsional yang digunakan untuk mengkorelasikan permintaan dan tanggapan. Masukkan nilai arbitrer di sini dan itu tercermin dalam respons.
timestamp
-
Waktu dalam hitungan detik sejak zaman, ketika pesan dikirim.
Mendapat daftar semua pekerjaan yang tidak dalam keadaan terminal, untuk hal tertentu.
Untuk memanggil API ini, publikasikan pesan di$aws/things/
.thingName
/jobs/get
Meminta muatan:
{ "clientToken": "string" }
Broker pesan akan menerbitkan$aws/things/
danthingName
/jobs/get/accepted$aws/things/
bahkan tanpa berlangganan khusus untuk mereka. Namun, bagi klien Anda untuk menerima pesan, itu harus mendengarkan mereka. Untuk informasi lebih lanjut, lihatcatatan tentang pesan Jobs API.thingName
/jobs/get/rejected
Muatan respons:
{ "inProgressJobs" : [ JobExecutionSummary ... ], "queuedJobs" : [ JobExecutionSummary ... ], "timestamp" : 1489096425069, "clientToken" : "client-001" }
DimanainProgressJobs
danqueuedJobs
mengembalikan daftarJobExecutionSummaryobjek yang memiliki statusIN_PROGRESS
atauQUEUED
.
Mendapat dan memulai eksekusi pekerjaan tertunda berikutnya untuk suatu hal (statusIN_PROGRESS
atauQUEUED
).
-
Setiap eksekusi pekerjaan dengan status
IN_PROGRESS
dikembalikan terlebih dahulu. -
Eksekusi pekerjaan dikembalikan sesuai urutan antrian. Ketika sesuatu ditambahkan atau dihapus dari grup target untuk pekerjaan Anda, konfirmasikan urutan peluncuran eksekusi pekerjaan baru apa pun dibandingkan dengan eksekusi pekerjaan yang ada.
-
Jika eksekusi pekerjaan tertunda berikutnya adalah
QUEUED
, kondisinya berubah menjadiIN_PROGRESS
dan rincian status eksekusi pekerjaan ditetapkan seperti yang ditentukan. -
Jika eksekusi pekerjaan tertunda berikutnya sudah
IN_PROGRESS
, Rincian statusnya tidak berubah. -
Jika tidak ada eksekusi pekerjaan yang tertunda, respons tidak menyertakan
execution
bidang. -
Opsional, Anda dapat membuat timer langkah dengan menetapkan nilai untuk
stepTimeoutInMinutes
properti. Jika Anda tidak memperbarui nilai properti ini dengan menjalankanUpdateJobExecution
, eksekusi pekerjaan kali keluar ketika timer langkah berakhir.
Untuk memanggil API ini, publikasikan pesan di$aws/things/
.thingName
/jobs/start-next
Meminta muatan:
{ "statusDetails": { "string": "
job-execution-state
" ... }, "stepTimeoutInMinutes": long, "clientToken": "string" }
statusDetails
-
Kumpulan pasangan nama-nilai yang menggambarkan status eksekusi pekerjaan. Jika tidak ditentukan,
statusDetails
tidak berubah. stepTimeOutInMinutes
-
Menentukan jumlah waktu perangkat ini harus menyelesaikan pelaksanaan pekerjaan ini. Jika status eksekusi pekerjaan tidak disetel ke status terminal sebelum timer ini berakhir, atau sebelum pengatur waktu disetel ulang, (dengan memanggil
UpdateJobExecution
, mengatur status keIN_PROGRESS
dan menentukan nilai batas waktu baru di lapanganstepTimeoutInMinutes
) status eksekusi pekerjaan diatur keTIMED_OUT
. Menetapkan batas waktu ini tidak berpengaruh pada batas waktu eksekusi pekerjaan yang mungkin telah ditentukan saat pekerjaan dibuat (CreateJob
menggunakantimeoutConfig
bidang).
Broker pesan akan menerbitkan$aws/things/
danthingName
/jobs/start-next/accepted$aws/things/
bahkan tanpa berlangganan khusus untuk mereka. Namun, bagi klien Anda untuk menerima pesan, itu harus mendengarkan mereka. Untuk informasi lebih lanjut, lihatcatatan tentang pesan Jobs API.thingName
/jobs/start-next/rejected
Muatan respons:
{ "execution" : JobExecutionData, "timestamp" : timestamp, "clientToken" : "string" }
Dimanaexecution
adalahJobExecutionobjek. Misalnya:
{ "execution" : { "jobId" : "022", "thingName" : "MyThing", "jobDocument" : "< contents of job document >", "status" : "IN_PROGRESS", "queuedAt" : 1489096123309, "lastUpdatedAt" : 1489096123309, "versionNumber" : 1, "executionNumber" : 1234567890 }, "clientToken" : "client-1", "timestamp" : 1489088524284, }
Mendapat informasi rinci tentang eksekusi pekerjaan.
Anda dapat mengaturjobId
kepada$next
untuk mengembalikan eksekusi pekerjaan tertunda berikutnya untuk suatu hal (dengan statusIN_PROGRESS
atauQUEUED
).
Untuk memanggil API ini, publikasikan pesan di$aws/things/
. thingName
/jobs/jobId
/get
Meminta muatan:
{ "jobId" : "022", "thingName" : "MyThing", "executionNumber": long, "includeJobDocument": boolean, "clientToken": "string" }
thingName
-
Nama hal yang terkait dengan perangkat.
jobId
-
Pengenal unik ditugaskan untuk pekerjaan ini ketika itu dibuat.
Atau gunakan
$next
untuk mengembalikan eksekusi pekerjaan tertunda berikutnya untuk suatu hal (dengan statusIN_PROGRESS
atauQUEUED
). Dalam hal ini, setiap eksekusi pekerjaan dengan statusIN_PROGRESS
dikembalikan terlebih dahulu. Eksekusi pekerjaan dikembalikan dalam urutan di mana mereka diciptakan. executionNumber
-
(Opsional) Angka yang mengidentifikasi eksekusi pekerjaan di perangkat. Jika tidak ditentukan, eksekusi pekerjaan terbaru dikembalikan.
includeJobDocument
-
(Opsional) Kecuali diatur ke
false
, respon berisi dokumen pekerjaan. Defaultnya adalahtrue
.
Broker pesan akan menerbitkan$aws/things/
danthingName
/jobs/jobId
/get/accepted$aws/things/
bahkan tanpa berlangganan khusus untuk mereka. Namun, bagi klien Anda untuk menerima pesan, itu harus mendengarkan mereka. Untuk informasi lebih lanjut, lihatcatatan tentang pesan Jobs API.thingName
/jobs/jobId
/get/rejected
Muatan respons:
{ "execution" : JobExecutionData, "timestamp": "timestamp", "clientToken": "string" }
Dimanaexecution
adalahJobExecutionobjek.
Memperbarui status eksekusi pekerjaan. Anda opsional dapat membuat timer langkah dengan menetapkan nilai untukstepTimeoutInMinutes
properti. Jika Anda tidak memperbarui nilai properti ini dengan menjalankanUpdateJobExecution
sekali lagi, eksekusi pekerjaan kali keluar ketika timer langkah berakhir.
Untuk memanggil API ini, publikasikan pesan di$aws/things/
. thingName
/jobs/jobId
/update
Meminta muatan:
{ "status": "
job-execution-state
", "statusDetails": { "string": "string" ... }, "expectedVersion": "number", "executionNumber": long, "includeJobExecutionState": boolean, "includeJobDocument": boolean, "stepTimeoutInMinutes": long, "clientToken": "string" }
status
-
Status baru untuk eksekusi pekerjaan (
IN_PROGRESS
,FAILED
,SUCCEEDED
, atauREJECTED
). Ini harus ditentukan pada setiap pembaruan. statusDetails
-
Kumpulan pasangan nama-nilai yang menggambarkan status eksekusi pekerjaan. Jika tidak ditentukan,
statusDetails
tidak berubah. expectedVersion
-
Versi saat ini diharapkan dari eksekusi pekerjaan. Setiap kali Anda memperbarui eksekusi pekerjaan, versinya bertambah. Jika versi eksekusi pekerjaan disimpan dalamAWS IoTLayanan pekerjaan tidak cocok, pembaruan ditolak dengan
VersionMismatch
kesalahan. SebuahErrorResponseyang berisi data status eksekusi pekerjaan saat ini juga dikembalikan. (Ini membuatnya tidak perlu untuk melakukan yang terpisahDescribeJobExecution
permintaan untuk mendapatkan data status eksekusi pekerjaan.) executionNumber
-
(Opsional) Angka yang mengidentifikasi eksekusi pekerjaan di perangkat. Jika tidak ditentukan, eksekusi pekerjaan terbaru digunakan.
includeJobExecutionState
-
(Opsional) Bila disertakan dan diatur ke
true
, respon berisiJobExecutionState
bidang. Defaultnya adalahfalse
. includeJobDocument
-
(Opsional) Bila disertakan dan diatur ke
true
, respon berisiJobDocument
. Defaultnya adalahfalse
. stepTimeoutInMinutes
-
Menentukan jumlah waktu perangkat ini harus menyelesaikan pelaksanaan pekerjaan ini. Jika status eksekusi pekerjaan tidak disetel ke status terminal sebelum timer ini berakhir, atau sebelum timer disetel ulang, status eksekusi pekerjaan diatur ke
TIMED_OUT
. Mengatur atau mengatur ulang batas waktu ini tidak berpengaruh pada batas waktu eksekusi pekerjaan yang mungkin telah ditentukan saat pekerjaan dibuat.
Broker pesan akan menerbitkan$aws/things/
danthingName
/jobs/jobId
/update/accepted$aws/things/
bahkan tanpa berlangganan khusus untuk mereka. Namun, bagi klien Anda untuk menerima pesan, itu harus mendengarkan mereka. Untuk informasi lebih lanjut, lihatcatatan tentang pesan Jobs API.thingName
/jobs/jobId
/update/rejected
Muatan respons:
{ "executionState": JobExecutionState, "jobDocument": "string", "timestamp": timestamp, "clientToken": "string" }
executionState
-
Sebuah objek JobExecutionState.
jobDocument
-
SEBUAHdokumen pekerjaanobjek.
timestamp
-
Waktu dalam hitungan detik sejak zaman, ketika pesan dikirim.
clientToken
-
Token klien yang digunakan untuk mengkorelasikan permintaan dan tanggapan.
Ketika Anda menggunakan protokol MQTT, Anda juga dapat melakukan pemutakhiran berikut:
Dikirim setiap kali eksekusi pekerjaan ditambahkan ke atau dihapus dari daftar eksekusi pekerjaan yang tertunda untuk suatu hal.
Gunakan topik:
$aws/things/
thingName
/jobs/notify
Muatan pesan:
{ "jobs" : { "JobExecutionState": [
JobExecutionSummary
... ] }, "timestamp": timestamp }
Dikirim setiap kali ada perubahan yang eksekusi pekerjaan berikutnya pada daftar eksekusi pekerjaan yang tertunda untuk suatu hal, sebagaimana didefinisikan untukDescribeJobExecution
bersamajobId
$next
. Pesan ini tidak dikirim ketika rincian eksekusi pekerjaan berikutnya berubah, hanya ketika pekerjaan berikutnya yang akan dikembalikan olehDescribeJobExecution
bersamajobId
$next
telah berubah. Pertimbangkan eksekusi pekerjaan J1 dan J2 dengan statusQUEUED
. J1 adalah berikutnya pada daftar eksekusi pekerjaan yang tertunda. Jika status J2 diubah menjadiIN_PROGRESS
sementara keadaan J1 tetap tidak berubah, maka pemberitahuan ini dikirim dan berisi rincian J2.
Gunakan topik:
$aws/things/
thingName
/jobs/notify-next
Muatan pesan:
{ "execution" :
JobExecution
, "timestamp": timestamp, }