Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Fungsi untuk digunakan dalam AWS IoT Events ekspresi
AWS IoT Events menyediakan serangkaian fungsi bawaan untuk meningkatkan kemampuan ekspresi model detektor Anda. Fungsi-fungsi ini memungkinkan manajemen timer, konversi tipe, pemeriksaan null, identifikasi tipe pemicu, verifikasi input, manipulasi string, dan operasi bitwise. Dengan memanfaatkan fungsi-fungsi ini, Anda dapat membuat logika AWS IoT Events pemrosesan responsif, meningkatkan efektivitas keseluruhan aplikasi IoT Anda.
- Fungsi Bawaan
-
timeout("
timer-name
")-
Mengevaluasi
true
apakah timer yang ditentukan telah berlalu. Ganti”nama pengatur waktu
“dengan nama timer yang Anda tentukan, dalam tanda kutip. Dalam tindakan peristiwa, Anda dapat menentukan pengatur waktu dan kemudian memulai pengatur waktu, mengatur ulang, atau menghapus yang telah Anda tentukan sebelumnya. Lihat lapangandetectorModelDefinition.states.onInput|onEnter|onExit.events.actions.setTimer.timerName
.Timer yang disetel dalam satu status dapat direferensikan dalam keadaan yang berbeda. Anda harus mengunjungi negara bagian di mana Anda membuat timer sebelum Anda memasukkan status di mana timer direferensikan.
Misalnya, model detektor memiliki dua status,
TemperatureChecked
danRecordUpdated
. Anda membuat timer diTemperatureChecked
negara bagian. Anda harus mengunjungiTemperatureChecked
negara bagian terlebih dahulu sebelum Anda dapat menggunakan timer diRecordUpdated
negara bagian.Untuk memastikan akurasi, waktu minimum pengatur waktu harus diatur adalah 60 detik.
catatan
timeout()
mengembalikantrue
hanya pertama kali diperiksa setelah kedaluwarsa timer aktual dan kembalifalse
setelahnya. convert(
type
,expression
)-
Mengevaluasi nilai ekspresi yang dikonversi ke tipe yang ditentukan. Bagian
type
nilainya harusString
,Boolean
, atauDecimal
. Gunakan salah satu kata kunci ini atau ekspresi yang mengevaluasi string yang berisi kata kunci. Hanya konversi berikut yang berhasil dan mengembalikan nilai yang valid:-
Boolean -> string
Mengembalikan string
"true"
atau"false"
. -
Desimal -> string
-
String -> Boolean
-
String -> desimal
String yang ditentukan harus merupakan representasi yang valid dari angka desimal, atau
convert()
gagal.
Jika
convert()
tidak mengembalikan nilai yang valid, ekspresi bahwa itu adalah bagian dari juga tidak valid. Hasil ini setara denganfalse
dan tidak akan memicu transisiactions
atau ke yangnextState
ditentukan sebagai bagian dari peristiwa di mana ekspresi terjadi. -
isNull(
expression
)-
Mengevaluasi
true
jika ekspresi mengembalikan null. Misalnya, jika inputMyInput
menerima pesan{ "a": null }
, maka yang berikut ini mengevaluasitrue
, tetapiisUndefined($input.MyInput.a)
mengevaluasi ke.false
isNull($input.MyInput.a)
isUndefined(
expression
)-
Mengevaluasi
true
apakah ekspresi tidak terdefinisi. Misalnya, jika inputMyInput
menerima pesan{ "a": null }
, maka yang berikut ini mengevaluasifalse
, tetapiisNull($input.MyInput.a)
mengevaluasi ke.true
isUndefined($input.MyInput.a)
triggerType("
type
")-
Bagian
type
nilainya bisa"Message"
atau"Timer"
. Mengevaluasitrue
apakah kondisi peristiwa di mana itu muncul sedang dievaluasi karena timer telah kedaluwarsa seperti pada contoh berikut.triggerType("Timer")
Atau pesan input diterima.
triggerType("Message")
currentInput("
input
")-
Mengevaluasi
true
apakah kondisi acara di mana itu muncul sedang dievaluasi karena pesan input yang ditentukan telah diterima. Misalnya, jika inputCommand
menerima pesan{ "value": "Abort" }
, maka yang berikut ini akan dievaluasi.true
currentInput("Command")
Gunakan fungsi ini untuk memverifikasi bahwa kondisi sedang dievaluasi karena input tertentu telah diterima dan timer belum kedaluwarsa, seperti pada ekspresi berikut.
currentInput("Command") && $input.Command.value == "Abort"
- Fungsi Pencocokan String
-
startsWith(
expression1
,expression2
)-
Mengevaluasi
true
apakah ekspresi string pertama dimulai dengan ekspresi string kedua. Misalnya, jika inputMyInput
menerima pesan{ "status": "offline"}
, maka yang berikut ini akan dievaluasi.true
startsWith($input.MyInput.status, "off")
Kedua ekspresi harus mengevaluasi nilai string. Jika salah satu ekspresi tidak mengevaluasi nilai string, maka hasil dari fungsi tersebut tidak terdefinisi. Tidak ada konversi yang dilakukan.
endsWith(
expression1
,expression2
)-
Mengevaluasi
true
apakah ekspresi string pertama berakhir dengan ekspresi string kedua. Misalnya, jika inputMyInput
menerima pesan{ "status": "offline" }
, maka yang berikut ini akan dievaluasi.true
endsWith($input.MyInput.status, "line")
Kedua ekspresi harus mengevaluasi nilai string. Jika salah satu ekspresi tidak mengevaluasi nilai string, maka hasil dari fungsi tersebut tidak terdefinisi. Tidak ada konversi yang dilakukan.
contains(
expression1
,expression2
)-
Mengevaluasi
true
apakah ekspresi string pertama berisi ekspresi string kedua. Misalnya, jika inputMyInput
menerima pesan{ "status": "offline" }
, maka yang berikut ini akan dievaluasi.true
contains($input.MyInput.value, "fli")
Kedua ekspresi harus mengevaluasi nilai string. Jika salah satu ekspresi tidak mengevaluasi nilai string, maka hasil dari fungsi tersebut tidak terdefinisi. Tidak ada konversi yang dilakukan.
- Fungsi Manipulasi Bitwise Integer
-
bitor(
expression1
,expression2
)-
Mengevaluasi bitwise OR dari ekspresi integer (operasi OR biner dilakukan pada bit yang sesuai dari bilangan bulat). Misalnya, jika input
MyInput
menerima pesan{ "value1": 13, "value2": 5 }
, maka yang berikut ini akan dievaluasi.13
bitor($input.MyInput.value1, $input.MyInput.value2)
Kedua ekspresi harus mengevaluasi ke nilai integer. Jika salah satu ekspresi tidak mengevaluasi nilai integer, maka hasil dari fungsi tersebut tidak terdefinisi. Tidak ada konversi yang dilakukan.
bitand(
expression1
,expression2
)-
Mengevaluasi bitwise AND dari ekspresi integer (ANDoperasi biner dilakukan pada bit yang sesuai dari bilangan bulat). Misalnya, jika input
MyInput
menerima pesan{ "value1": 13, "value2": 5 }
, maka yang berikut ini akan dievaluasi.5
bitand($input.MyInput.value1, $input.MyInput.value2)
Kedua ekspresi harus mengevaluasi ke nilai integer. Jika salah satu ekspresi tidak mengevaluasi nilai integer, maka hasil dari fungsi tersebut tidak terdefinisi. Tidak ada konversi yang dilakukan.
bitxor(
expression1
,expression2
)-
Mengevaluasi bitwise XOR dari ekspresi integer (XORoperasi biner dilakukan pada bit yang sesuai dari bilangan bulat). Misalnya, jika input
MyInput
menerima pesan{ "value1": 13, "value2": 5 }
, maka yang berikut ini akan dievaluasi.8
bitxor($input.MyInput.value1, $input.MyInput.value2)
Kedua ekspresi harus mengevaluasi ke nilai integer. Jika salah satu ekspresi tidak mengevaluasi nilai integer, maka hasil dari fungsi tersebut tidak terdefinisi. Tidak ada konversi yang dilakukan.
bitnot(
expression
)-
Mengevaluasi bitwise NOT dari ekspresi integer (NOToperasi biner dilakukan pada bit integer). Misalnya, jika input
MyInput
menerima pesan{ "value": 13 }
, maka yang berikut ini akan dievaluasi.-14
bitnot($input.MyInput.value)
Kedua ekspresi harus mengevaluasi ke nilai integer. Jika salah satu ekspresi tidak mengevaluasi nilai integer, maka hasil dari fungsi tersebut tidak terdefinisi. Tidak ada konversi yang dilakukan.