AWS IoT Events Masalah dan solusi umum - AWS IoT Events

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

AWS IoT Events Masalah dan solusi umum

Lihat bagian berikut untuk memecahkan masalah kesalahan dan menemukan solusi yang mungkin untuk menyelesaikan masalah. AWS IoT Events

Kesalahan pembuatan model detektor

Saya mendapatkan kesalahan ketika saya mencoba membuat model detektor.

Saat Anda membuat model detektor, Anda harus mempertimbangkan batasan berikut.

  • Hanya satu tindakan yang diperbolehkan di setiap action bidang.

  • conditionDiperlukan untuktransitionEvents. Ini opsional untukOnEnter,OnInput, dan OnExit acara.

  • Jika condition bidang kosong, hasil evaluasi dari ekspresi kondisi setara true dengan.

  • Hasil evaluasi dari ekspresi kondisi harus menjadi nilai Boolean. Jika hasilnya bukan nilai Boolean, itu setara dengan false dan tidak memicu actions atau transisi ke yang nextState ditentukan dalam acara tersebut.

Untuk informasi selengkapnya, lihat AWS IoT Events pembatasan dan batasan model detektor.

Pembaruan dari model detektor yang dihapus

Saya memperbarui atau menghapus model detektor beberapa menit yang lalu tetapi saya masih mendapatkan pembaruan status dari model detektor lama melalui MQTT pesan atau SNS peringatan.

Jika Anda memperbarui, menghapus, atau membuat ulang model detektor (lihat UpdateDetectorModel), ada penundaan sebelum semua instance detektor dihapus dan model baru digunakan. Selama waktu ini, input mungkin terus diproses oleh contoh model detektor versi sebelumnya. Anda mungkin terus menerima peringatan yang ditentukan oleh model detektor sebelumnya. Tunggu setidaknya tujuh menit sebelum Anda memeriksa ulang pembaruan atau melaporkan kesalahan.

Kegagalan pemicu tindakan (saat memenuhi suatu kondisi)

Detektor gagal memicu tindakan atau transisi ke keadaan baru ketika kondisi terpenuhi.

Verifikasi bahwa hasil evaluasi dari ekspresi kondisional detektor adalah nilai Boolean. Jika hasilnya bukan nilai Boolean, itu setara dengan false dan tidak memicu action atau transisi ke yang nextState ditentukan dalam acara tersebut. Untuk informasi selengkapnya, lihat Sintaks ekspresi bersyarat.

Kegagalan pemicu tindakan (saat melewati ambang batas)

Detektor tidak memicu tindakan atau transisi peristiwa ketika variabel dalam ekspresi kondisional mencapai nilai tertentu.

Jika Anda memperbarui setVariable untukonInput,onEnter, atauonExit, nilai baru tidak digunakan saat mengevaluasi apa pun condition selama siklus pemrosesan saat ini. Sebaliknya, nilai asli digunakan sampai siklus saat ini selesai. Anda dapat mengubah perilaku ini dengan menyetel evaluationMethod parameter dalam definisi model detektor. Ketika evaluationMethod diatur keSERIAL, variabel diperbarui dan kondisi peristiwa dievaluasi dalam urutan bahwa peristiwa didefinisikan. Ketika evaluationMethod diatur ke BATCH (default), variabel diperbarui dan peristiwa dilakukan hanya setelah semua kondisi acara dievaluasi.

Penggunaan status salah

Detektor memasuki status yang salah ketika saya mencoba mengirim pesan ke input dengan menggunakanBatchPutMessage.

Jika Anda gunakan BatchPutMessageuntuk mengirim beberapa pesan ke input, urutan pemrosesan pesan atau input tidak dijamin. Untuk menjamin pemesanan, kirim pesan satu per satu dan tunggu setiap kali BatchPutMessage untuk mengakui keberhasilan.

Pesan koneksi

Saya mendapatkan ('Connection aborted.', error(54, 'Connection reset by peer')) kesalahan ketika saya mencoba memanggil atau memanggil fileAPI.

Verifikasi bahwa Open SSL menggunakan TLS 1.1 atau versi yang lebih baru untuk membuat koneksi. Ini harus menjadi default di sebagian besar distribusi Linux atau Windows versi 7 dan yang lebih baru. Pengguna macOS mungkin perlu memutakhirkan Open. SSL

InvalidRequestException pesan

Saya mendapatkan InvalidRequestException ketika saya mencoba untuk menelepon CreateDetectorModel dan UpdateDetectorModelAPIs.

Periksa hal berikut untuk membantu menyelesaikan masalah. Untuk informasi lebih lanjut, lihat CreateDetectorModeldan UpdateDetectorModel.

  • Pastikan Anda tidak menggunakan keduanya seconds dan durationExpression sebagai parameter pada SetTimerAction saat yang sama.

  • Pastikan bahwa ekspresi string Anda durationExpression valid. Ekspresi string dapat berisi angka, variabel ($variable.<variable-name>), atau nilai input ($input.<input-name>.<path-to-datum>).

action.setTimerKesalahan Amazon CloudWatch Log

Anda dapat mengatur Amazon CloudWatch Logs untuk memantau instance model AWS IoT Events detektor. Berikut ini adalah kesalahan umum yang dihasilkan oleh AWS IoT Events, ketika Anda menggunakanaction.setTimer.

  • Kesalahan: Ekspresi durasi Anda untuk pengatur waktu bernama tidak <timer-name> dapat dievaluasi ke angka.

    Pastikan bahwa ekspresi string Anda untuk durationExpression dapat dikonversi ke angka. Tipe data lainnya, seperti Boolean, tidak diperbolehkan.

  • Kesalahan: Hasil evaluasi ekspresi durasi Anda untuk pengatur waktu bernama <timer-name> lebih besar dari 31622440. Untuk memastikan akurasi, pastikan ekspresi durasi Anda mengacu pada nilai antara 60-31622400.

    Pastikan durasi timer Anda kurang dari atau sama dengan 31622400 detik. Hasil yang dievaluasi dari durasi dibulatkan ke bilangan bulat terdekat.

  • Kesalahan: Hasil evaluasi ekspresi durasi Anda untuk pengatur waktu bernama <timer-name> kurang dari 60. Untuk memastikan akurasi, pastikan ekspresi durasi Anda mengacu pada nilai antara 60-31622400.

    Pastikan durasi timer Anda lebih besar dari atau sama dengan 60 detik. Hasil yang dievaluasi dari durasi dibulatkan ke bilangan bulat terdekat.

  • Kesalahan: Ekspresi durasi Anda untuk pengatur waktu bernama tidak <timer-name> dapat dievaluasi. Periksa nama variabel, nama input, dan jalur ke data untuk memastikan bahwa Anda merujuk ke variabel dan input yang ada.

    Pastikan bahwa ekspresi string Anda mengacu pada variabel dan input yang ada. Ekspresi string dapat berisi angka, variabel ($variable.variable-name), dan nilai input ($input.input-name.path-to-datum).

  • Kesalahan: Gagal menyetel pengatur waktu bernama<timer-name>. Periksa ekspresi durasi Anda, dan coba lagi.

    Lihat SetTimerActiontindakan untuk memastikan bahwa Anda menentukan parameter yang benar, dan kemudian mengatur timer lagi.

Untuk informasi selengkapnya, lihat Mengaktifkan CloudWatch pencatatan Amazon saat mengembangkan model AWS IoT Events detektor.

Kesalahan CloudWatch payload Amazon

Anda dapat mengatur Amazon CloudWatch Logs untuk memantau instance model AWS IoT Events detektor. Berikut ini adalah kesalahan umum dan peringatan yang dihasilkan oleh AWS IoT Events, ketika Anda mengonfigurasi payload tindakan.

  • Kesalahan: Kami tidak dapat mengevaluasi ekspresi Anda untuk tindakan tersebut. Pastikan bahwa nama variabel, nama input, dan jalur ke data mengacu pada variabel yang ada dan nilai input. Juga, verifikasi bahwa ukuran muatan kurang dari 1 KB, ukuran muatan maksimum yang diizinkan.

    Pastikan Anda memasukkan nama variabel yang benar, nama input, dan jalur ke data. Anda mungkin juga menerima pesan galat ini jika payload tindakan lebih besar dari 1 KB.

  • Kesalahan: Kami tidak dapat mengurai ekspresi konten Anda untuk muatan. <action-type> Masukkan ekspresi konten dengan sintaks yang benar.

    Ekspresi konten dapat berisi string ('string'), variabel ($variable.variable-name), nilai input ($input.input-name.path-to-datum), rangkaian string, dan string yang berisi. ${}

  • Kesalahan: Ekspresi payload Anda {expression} tidak valid. Jenis payload yang ditentukan adalahJSON, jadi Anda harus menentukan ekspresi yang AWS IoT Events akan mengevaluasi ke string.

    Jika jenis payload yang ditentukan adalahJSON, AWS IoT Events pertama-tama periksa apakah layanan dapat mengevaluasi ekspresi Anda ke string. Hasil yang dievaluasi tidak bisa berupa Boolean atau angka. Jika validasi gagal, Anda mungkin menerima kesalahan ini.

  • Peringatan: Tindakan telah dijalankan, tetapi kami tidak dapat mengevaluasi ekspresi konten Anda agar payload tindakan validJSON. Jenis payload yang ditentukan adalahJSON.

    Pastikan bahwa AWS IoT Events dapat mengevaluasi ekspresi konten Anda untuk payload tindakan menjadi validJSON, jika Anda menentukan jenis payload sebagai. JSON AWS IoT Events menjalankan tindakan meskipun tidak AWS IoT Events dapat mengevaluasi ekspresi konten menjadi validJSON.

Untuk informasi selengkapnya, lihat Mengaktifkan CloudWatch pencatatan Amazon saat mengembangkan model AWS IoT Events detektor.

Tipe data yang tidak kompatibel

Pesan: Tipe data yang tidak kompatibel [<inferred-types>] ditemukan <reference> dalam ekspresi berikut: <expression>

Anda mungkin menerima kesalahan ini karena salah satu alasan berikut:

  • Hasil evaluasi referensi Anda tidak kompatibel dengan operan lain dalam ekspresi Anda.

  • Jenis argumen yang diteruskan ke fungsi tidak didukung.

Saat Anda menggunakan referensi dalam ekspresi, periksa hal berikut:

  • Bila Anda menggunakan referensi sebagai operan dengan satu atau beberapa operator, pastikan semua tipe data yang Anda referensikan kompatibel.

    Misalnya, dalam ekspresi berikut, integer 2 adalah operan dari kedua operator == dan&&. Untuk memastikan bahwa operan kompatibel, $variable.testVariable + 1 dan $variable.testVariable harus mereferensikan bilangan bulat atau desimal.

    Selain itu, integer 1 adalah operan dari operator. + Oleh karena itu, $variable.testVariable harus referensi bilangan bulat atau desimal.

    ‘$variable.testVariable + 1 == 2 && $variable.testVariable’
  • Bila Anda menggunakan referensi sebagai argumen yang diteruskan ke fungsi, pastikan bahwa fungsi tersebut mendukung tipe data yang Anda referensikan.

    Misalnya, timeout("time-name") fungsi berikut membutuhkan string dengan tanda kutip ganda sebagai argumen. Jika Anda menggunakan referensi untuk timer-name nilai, Anda harus referensi string dengan tanda kutip ganda.

    timeout("timer-name")
    catatan

    Untuk convert(type, expression) fungsi tersebut, jika Anda menggunakan referensi untuk type nilai, hasil evaluasi dari referensi Anda harusString,Decimal, atauBoolean.

Untuk informasi selengkapnya, lihat AWS IoT Events referensi untuk input dan variabel dalam ekspresi.

Gagal mengirim pesan ke AWS IoT Events

Pesan: Gagal mengirim pesan ke Acara Iot

Anda mungkin mengalami kesalahan ini karena alasan berikut:

  • Payload pesan masukan tidak berisi file. Input attribute Key

  • Tidak Input attribute Key berada di JSON jalur yang sama seperti yang ditentukan dalam definisi input.

  • Pesan masukan tidak cocok dengan skema, seperti yang didefinisikan dalam AWS IoT Events input.

catatan

Konsumsi data dari layanan lain juga akan mengalami kegagalan.

Misalnya di AWS IoT Core, AWS IoT aturan akan gagal dengan pesan berikut Verify the Input Attribute key.

Untuk mengatasi hal ini, pastikan bahwa skema pesan payload input sesuai dengan definisi AWS IoT Events Input dan lokasi cocok. Input attribute Key Untuk informasi selengkapnya, lihat Buat masukan untuk model di AWS IoT Events untuk mempelajari cara mendefinisikan AWS IoT Events Input.