Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Fungsi
Anda dapat menggunakan fungsi bawaan berikut dalam klausa SELECT atau WHERE dari ekspresi SQL Anda.
abs (Desimal)
Mengembalikan nilai absolut dari sebuah angka. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: abs(-5)
mengembalikan 5.
Jenis Argumen | Hasil |
---|---|
Int |
Int , nilai absolut dari argumen. |
Decimal |
Decimal , nilai absolut dari argumen. |
Boolean |
Undefined . |
String |
Decimal . Hasilnya adalah nilai absolut dari argumen. Jika string tidak dapat dikonversi, hasilnya adalahUndefined . |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
akuntid ()
Mengembalikan ID akun yang memiliki aturan ini sebagaiString
. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
accountid()
= “123456789012"
acos (Desimal)
Mengembalikan cosinus terbalik dari angka dalam radian. Decimal
argumen dibulatkan ke presisi ganda sebelum aplikasi fungsi. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: acos(0)
= 1,5707963267948966
Jenis Argumen | Hasil |
---|---|
Int |
Decimal (dengan presisi ganda), kosinus terbalik dari argumen. Hasil imajiner dikembalikan sebagaiUndefined . |
Decimal |
Decimal (dengan presisi ganda), kosinus terbalik dari argumen. Hasil imajiner dikembalikan sebagaiUndefined . |
Boolean |
Undefined . |
String |
Decimal , kosinus terbalik dari argumen. Jika string tidak dapat dikonversi, hasilnya adalahUndefined . Hasil imajiner dikembalikan sebagaiUndefined . |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
asin (Desimal)
Mengembalikan sinus terbalik dari angka dalam radian. Decimal
argumen dibulatkan ke presisi ganda sebelum aplikasi fungsi. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: asin(0)
= 0.0
Jenis Argumen | Hasil |
---|---|
Int |
Decimal (dengan presisi ganda), sinus terbalik dari argumen. Hasil imajiner dikembalikan sebagaiUndefined . |
Decimal |
Decimal (dengan presisi ganda), sinus terbalik dari argumen. Hasil imajiner dikembalikan sebagaiUndefined . |
Boolean |
Undefined . |
String |
Decimal (dengan presisi ganda), sinus terbalik dari argumen. Jika string tidak dapat dikonversi, hasilnya adalahUndefined . Hasil imajiner dikembalikan sebagaiUndefined . |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
atan (Desimal)
Mengembalikan tangen terbalik dari angka dalam radian. Decimal
argumen dibulatkan ke presisi ganda sebelum aplikasi fungsi. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: atan(0)
= 0.0
Jenis Argumen | Hasil |
---|---|
Int |
Decimal (dengan presisi ganda), singgung terbalik dari argumen. Hasil imajiner dikembalikan sebagaiUndefined . |
Decimal |
Decimal (dengan presisi ganda), singgung terbalik dari argumen. Hasil imajiner dikembalikan sebagaiUndefined . |
Boolean |
Undefined . |
String |
Decimal , singgung kebalikan dari argumen. Jika string tidak dapat dikonversi, hasilnya adalahUndefined . Hasil imajiner dikembalikan sebagaiUndefined . |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
atan2 (Desimal, Desimal)
Mengembalikan sudut, dalam radian, antara sumbu x positif dan titik (x, y) yang didefinisikan dalam dua argumen. Sudutnya positif untuk sudut berlawanan arah jarum jam (setengah bidang atas, y > 0), dan negatif untuk sudut searah jarum jam (setengah bidang bawah, y < 0). Decimal
argumen dibulatkan ke presisi ganda sebelum aplikasi fungsi. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: atan2(1, 0)
= 1,5707963267948966
Jenis Argumen | Jenis Argumen | Hasil |
---|---|---|
Int /Decimal |
Int /Decimal |
Decimal (dengan presisi ganda), sudut antara sumbu x dan titik (x, y) yang ditentukan. |
Int /Decimal /String |
Int /Decimal /String |
Decimal , singgung terbalik dari titik yang dijelaskan. Jika string tidak dapat dikonversi, hasilnya adalahUndefined . |
Nilai lainnya | Nilai lainnya | Undefined . |
aws_lambda (FunctionARN, InputJson)
Memanggil fungsi Lambda yang ditentukan lewat inputJson
ke fungsi Lambda dan mengembalikan JSON yang dihasilkan oleh fungsi Lambda.
Pendapat | Deskripsi |
---|---|
functionArn |
ARN dari fungsi Lambda untuk memanggil. Fungsi Lambda harus mengembalikan data JSON. |
inputJson |
Input JSON diteruskan ke fungsi Lambda. Untuk meneruskan kueri dan literal objek bersarang, Anda harus menggunakan versi SQL 2016-03-23. |
Anda harus memberikan AWS IoT lambda:InvokeFunction
izin untuk menjalankan fungsi Lambda yang ditentukan. Contoh berikut menunjukkan cara memberikan lambda:InvokeFunction
izin menggunakan AWS CLI:
aws lambda add-permission --function-name "function_name" --region "
region
" --principal iot.amazonaws.com --source-arn arn:aws:iot:us-east-1
:account_id
:rule/rule_name
--source-account "account_id
" --statement-id "unique_id
" --action "lambda:InvokeFunction"
Berikut ini adalah argumen untuk add-permission perintah:
- --fungsi-nama
-
Nama fungsi Lambda. Anda menambahkan izin baru untuk memperbarui kebijakan sumber daya fungsi.
- --wilayah
-
Akun Anda. Wilayah AWS
- --kepala sekolah
-
Kepala sekolah yang mendapatkan izin. Ini harus
iot.amazonaws.com
untuk mengizinkan AWS IoT izin memanggil fungsi Lambda. - --sumber-arn
-
ARN dari aturan tersebut. Anda dapat menggunakan get-topic-rule AWS CLI perintah untuk mendapatkan ARN aturan.
- --source-akun
-
Di Akun AWS mana aturan didefinisikan.
- --pernyataan-id
-
Pengidentifikasi pernyataan unik.
- --tindakan
-
Tindakan Lambda yang ingin Anda izinkan dalam pernyataan ini. AWS IoT Untuk memungkinkan menjalankan fungsi Lambda, tentukan.
lambda:InvokeFunction
penting
Jika Anda menambahkan izin untuk AWS IoT prinsipal tanpa memberikan source-arn
atausource-account
, aturan apa pun Akun AWS
yang membuat aturan dengan tindakan Lambda Anda dapat memicu aturan untuk menjalankan fungsi Lambda Anda. AWS IoT Untuk informasi selengkapnya, lihat Model Izin Lambda.
Diberikan muatan pesan JSON seperti:
{ "attribute1": 21, "attribute2": "value" }
aws_lambda
Fungsi tersebut dapat digunakan untuk memanggil fungsi Lambda sebagai berikut.
SELECT aws_lambda("arn:aws:lambda:
us-east-1
:account_id
:function:lambda_function
", {"payload":attribute1}) as output FROM 'topic-filter
'
Jika Anda ingin meneruskan muatan pesan MQTT lengkap, Anda dapat menentukan payload JSON menggunakan '*', seperti contoh berikut.
SELECT aws_lambda("arn:aws:lambda:
us-east-1
:account_id
:function:lambda_function
", *) as output FROM 'topic-filter
'
payload.inner.element
memilih data dari pesan yang dipublikasikan pada topik 'topik/subtopik'.
some.value
memilih data dari output yang dihasilkan oleh fungsi Lambda.
catatan
Mesin aturan membatasi durasi eksekusi fungsi Lambda. Panggilan fungsi Lambda dari aturan harus diselesaikan dalam 2000 milidetik.
bit (Int, Int)
Melakukan bitwise AND pada representasi bit dari dua argumen Int
(-convert). Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: bitand(13, 5)
= 5
Jenis Argumen | Jenis Argumen | Hasil |
---|---|---|
Int |
Int |
Int , bitwise DAN dari dua argumen. |
Int /Decimal |
Int /Decimal |
Int , bitwise DAN dari dua argumen. Semua non- Int angka dibulatkan ke bawah ke yang terdekatInt . Jika salah satu argumen tidak dapat dikonversi menjadiInt , hasilnya adalahUndefined . |
Int /Decimal /String |
Int /Decimal /String |
Int , bitwise DAN dari dua argumen. Semua string dikonversi ke desimal dan dibulatkan ke bawah ke terdekat. Int Jika konversi gagal, hasilnya adalahUndefined . |
Nilai lainnya | Nilai lainnya | Undefined . |
bitor (Int, Int)
Melakukan bitwise OR dari representasi bit dari dua argumen. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: bitor(8, 5)
= 13
Jenis Argumen | Jenis Argumen | Hasil |
---|---|---|
Int |
Int |
Int , bitwise OR dari dua argumen. |
Int /Decimal |
Int /Decimal |
Int , bitwise OR dari dua argumen. Semua non- Int angka dibulatkan ke bawah ke yang terdekatInt . Jika konversi gagal, hasilnya adalahUndefined . |
Int /Decimal /String |
Int /Decimal /String |
Int , bitwise OR pada dua argumen. Semua string dikonversi ke desimal dan dibulatkan ke bawah ke terdekat. Int Jika konversi gagal, hasilnya adalahUndefined . |
Nilai lainnya | Nilai lainnya | Undefined . |
bitxor (Int, Int)
Melakukan XOR bitwise pada representasi bit dari dua argumen Int
(-convert). Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: bitor(13, 5)
= 8
Jenis Argumen | Jenis Argumen | Hasil |
---|---|---|
Int |
Int |
Int , XOR bitwise pada dua argumen. |
Int /Decimal |
Int /Decimal |
Int , XOR bitwise pada dua argumen. Non- Int angka dibulatkan ke bawah ke yang terdekatInt . |
Int /Decimal /String |
Int /Decimal /String |
Int , XOR bitwise pada dua argumen. string diubah menjadi desimal dan dibulatkan ke bawah ke terdekat. Int Jika ada konversi yang gagal, hasilnya adalahUndefined . |
Nilai lainnya | Nilai lainnya | Undefined . |
bitnot (Int)
Melakukan bitwise NOT pada representasi bit dari argumen Int
(-convert). Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: bitnot(13)
= 2
Jenis Argumen | Hasil |
---|---|
Int |
Int , sedikit demi sedikit dari argumen. |
Decimal |
Int , sedikit demi sedikit dari argumen. Decimal Nilai dibulatkan ke bawah ke yang terdekatInt . |
String |
Int , sedikit demi sedikit dari argumen. String dikonversi menjadi desimal dan dibulatkan ke bawah ke yang terdekat. Int Jika ada konversi yang gagal, hasilnya adalahUndefined . |
Nilai lainnya | Nilai lainnya. |
pemeran ()
Mengkonversi nilai dari satu tipe data ke yang lain. Pemeran berperilaku sebagian besar seperti konversi standar, dengan penambahan kemampuan untuk mentransmisikan angka ke atau dari Booleans. Jika AWS IoT tidak dapat menentukan cara melemparkan satu jenis ke jenis lainnya, hasilnya adalahUndefined
. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru. Format: cast (nilai
sebagai tipe
).
Contoh:
cast(true as Int)
= 1
Kata kunci berikut mungkin muncul setelah “as” saat meneleponcast
:
Kata Kunci | Hasil |
---|---|
String |
Memberikan nilai keString . |
Nvarchar | Memberikan nilai keString . |
Teks | Memberikan nilai keString . |
Nteks | Memberikan nilai keString . |
varchar | Memberikan nilai keString . |
Int |
Memberikan nilai keInt . |
Bilangan Bulat | Memberikan nilai keInt . |
Ganda | Memberikan nilai ke Decimal (dengan presisi ganda). |
Kata Kunci | Hasil |
---|---|
Decimal |
Memberikan nilai keDecimal . |
Bool | Memberikan nilai keBoolean . |
Boolean |
Memberikan nilai keBoolean . |
Aturan casting:
Jenis Argumen | Hasil |
---|---|
Int |
A Decimal tanpa titik desimal. |
Decimal |
Nilai sumbernya. catatanDengan SQL V2 (2016-03-23), nilai numerik yang merupakan bilangan bulat, seperti |
Boolean |
benar = 1,0, salah = 0,0. |
String |
Mencoba mengurai string sebagai. Decimal AWS IoT
mencoba mengurai string yang cocok dengan regex: ^-? \ d+ (\. \ d+)? ((? i) E-? \ d+)? $. “0", “-1.2", “5E-12" adalah semua contoh string yang dikonversi secara otomatis menjadi desimal. |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
Jenis Argumen | Hasil |
---|---|
Int |
Nilai sumbernya. |
Decimal |
Nilai sumber, dibulatkan ke bawah ke yang terdekatInt . |
Boolean |
benar = 1,0, salah = 0,0. |
String |
Mencoba mengurai string sebagai. Decimal AWS IoT
mencoba mengurai string yang cocok dengan regex: ^-? \ d+ (\. \ d+)? ((? i) E-? \ d+)? $. “0", “-1.2", “5E-12" adalah semua contoh string yang dikonversi secara otomatis menjadi desimal. AWS IoT
mencoba untuk mengubah string ke a Decimal dan membulatkan ke bawah ke yang terdekatInt . |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
Jenis Argumen | Hasil |
---|---|
Int |
0 = Salah, any_nonzero_value = Benar. |
Decimal |
0 = Salah, any_nonzero_value = Benar. |
Boolean |
Nilai sumbernya. |
String |
“true” = True dan “false” = False (case insensitive). Nilai string lainnya =Undefined . |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
Jenis Argumen | Hasil |
---|---|
Int |
Sebuah representasi string dariInt , dalam notasi standar. |
Decimal |
String yang mewakili Decimal nilai, mungkin dalam notasi ilmiah. |
Boolean |
“benar” atau “salah”, semua huruf kecil. |
String |
“True"=true dan “false"=false (case-insensitive). Nilai string lainnya =Undefined . |
Array | Array diserialisasikan ke JSON. String hasil adalah daftar dipisahkan koma yang diapit tanda kurung siku. String dikutip. Decimal ,Int , dan Boolean tidak. |
Objek | Objek diserialisasikan ke JSON. String JSON adalah daftar pasangan kunci-nilai yang dipisahkan koma dan dimulai dan diakhiri dengan kurawal kurawal. String dikutip. Decimal ,Int ,Boolean , dan Null tidak. |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
ceil (Desimal)
Membulatkan yang diberikan Decimal
ke yang terdekatInt
. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
ceil(1.2)
= 2
ceil(-1.2)
= 1
Jenis Argumen | Hasil |
---|---|
Int |
Int , nilai argumen. |
Decimal |
Int , Decimal nilainya dibulatkan ke yang terdekatInt . |
String |
Int . String dikonversi ke Decimal dan dibulatkan ke yang terdekatInt . Jika string tidak dapat dikonversi ke aDecimal , hasilnya adalahUndefined . |
Nilai lainnya | Undefined . |
chr (Tali)
Mengembalikan karakter ASCII yang sesuai dengan argumen yang diberikanInt
. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
chr(65)
= “A”.
chr(49)
= “1".
Jenis Argumen | Hasil |
---|---|
Int |
Karakter yang sesuai dengan nilai ASCII yang ditentukan. Jika argumen tersebut bukan nilai ASCII yang valid, hasilnya adalah. Undefined |
Decimal |
Karakter yang sesuai dengan nilai ASCII yang ditentukan. Decimal Argumen dibulatkan ke bawah ke yang terdekatInt . Jika argumen tersebut bukan nilai ASCII yang valid, hasilnya adalah. Undefined |
Boolean |
Undefined . |
String |
Jika String dapat dikonversi ke aDecimal , itu dibulatkan ke bawah ke terdekatInt . Jika argumen tersebut bukan nilai ASCII yang valid, hasilnya adalah. Undefined |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Nilai lainnya | Undefined . |
klien ()
Mengembalikan ID klien MQTT yang mengirim pesan, atau n/a
jika pesan tidak dikirim melalui MQTT. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
clientid()
= “123456789012"
concat ()
Menggabung array atau string. Fungsi ini menerima sejumlah argumen dan mengembalikan a String
atau. Array
Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
concat()
= Undefined
.
concat(1)
= “1".
concat([1, 2, 3], 4)
= [1, 2, 3, 4].
concat([1, 2, 3], "hello")
= [1, 2, 3, “halo"]
concat("con", "cat")
= “concat”
concat(1, "hello")
= “1halo”
concat("he","is","man")
= “heisman”
concat([1, 2, 3], "hello", [4, 5, 6])
= [1, 2, 3, “halo”, 4, 5, 6]
Jumlah argumen | Hasil |
---|---|
0 | Undefined . |
1 | Argumen dikembalikan tanpa dimodifikasi. |
2+ |
Jika ada argumen |
cos (Desimal)
Mengembalikan cosinus dari angka dalam radian. Decimal
argumen dibulatkan ke presisi ganda sebelum aplikasi fungsi. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
cos(0)
= 1.
Jenis Argumen | Hasil |
---|---|
Int |
Decimal (dengan presisi ganda), kosinus argumen. Hasil imajiner dikembalikan sebagaiUndefined . |
Decimal |
Decimal (dengan presisi ganda), kosinus argumen. Hasil imajiner dikembalikan sebagaiUndefined . |
Boolean |
Undefined . |
String |
Decimal (dengan presisi ganda), kosinus argumen. Jika string tidak dapat dikonversi ke aDecimal , hasilnya adalahUndefined . Hasil imajiner dikembalikan sebagaiUndefined . |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
cosh (Desimal)
Mengembalikan kosinus hiperbolik dari suatu angka dalam radian. Decimal
argumen dibulatkan ke presisi ganda sebelum aplikasi fungsi. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: cosh(2.3)
= 5.037220649268761.
Jenis Argumen | Hasil |
---|---|
Int |
Decimal (dengan presisi ganda), kosinus hiperbolik argumen. Hasil imajiner dikembalikan sebagaiUndefined . |
Decimal |
Decimal (dengan presisi ganda), kosinus hiperbolik argumen. Hasil imajiner dikembalikan sebagaiUndefined . |
Boolean |
Undefined . |
String |
Decimal (dengan presisi ganda), kosinus hiperbolik argumen. Jika string tidak dapat dikonversi ke aDecimal , hasilnya adalahUndefined . Hasil imajiner dikembalikan sebagaiUndefined . |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
decode (nilai, decodingScheme)
Gunakan decode
fungsi untuk memecahkan kode nilai yang dikodekan. Jika string yang diterjemahkan adalah dokumen JSON, objek yang dapat dialamatkan dikembalikan. Jika tidak, string yang diterjemahkan dikembalikan sebagai string. Fungsi mengembalikan NULL jika string tidak dapat diterjemahkan. Fungsi ini mendukung decoding string yang dikodekan base64 dan format pesan Protocol Buffer (protobuf).
Didukung oleh SQL versi 2016-03-23 dan yang lebih baru.
- nilai
-
Nilai string atau salah satu ekspresi yang valid, seperti yang didefinisikan dalamAWS IoT Referensi SQL, yang mengembalikan string.
- DecodingScheme
-
String literal yang mewakili skema yang digunakan untuk memecahkan kode nilai. Saat ini, hanya
'base64'
dan'proto'
didukung.
Decoding string yang dikodekan base64
Dalam contoh ini, payload pesan menyertakan nilai yang dikodekan.
{ encoded_temp: "eyAidGVtcGVyYXR1cmUiOiAzMyB9Cg==" }
decode
Fungsi dalam pernyataan SQL ini menerjemahkan nilai dalam payload pesan.
SELECT decode(encoded_temp,"base64").temperature AS temp from 'topic/subtopic'
Decoding encoded_temp
nilai menghasilkan dokumen JSON valid berikut, yang memungkinkan pernyataan SELECT membaca nilai suhu.
{ "temperature": 33 }
Hasil dari pernyataan SELECT dalam contoh ini ditampilkan di sini.
{ "temp": 33 }
Jika nilai decoded bukan dokumen JSON yang valid, nilai decoded akan dikembalikan sebagai string.
Decoding payload pesan protobuf
Anda dapat menggunakan fungsi decode SQL untuk mengkonfigurasi Aturan yang dapat memecahkan kode payload pesan protobuf Anda. Untuk informasi selengkapnya, lihat Menguraikan muatan pesan protobuf.
Tanda tangan fungsi terlihat seperti berikut:
decode(<ENCODED DATA>, 'proto', '<S3 BUCKET NAME>', '<S3 OBJECT KEY>', '<PROTO NAME>', '<MESSAGE TYPE>')
ENCODED DATA
-
Menentukan data protobuf-dikodekan yang akan diterjemahkan. Jika seluruh pesan yang dikirim ke Aturan adalah data yang disandikan protobuf, Anda dapat mereferensikan payload masuk biner mentah menggunakan.
*
Jika tidak, bidang ini harus berupa string JSON yang dikodekan basis-64 dan referensi ke string dapat diteruskan secara langsung.1) Untuk memecahkan kode muatan masuk protobuf biner mentah:
decode(*, 'proto', ...)
2) Untuk memecahkan kode pesan yang disandikan protobuf yang diwakili oleh string berkode base64 'a.b':
decode(a.b, 'proto', ...)
proto
-
Menentukan data yang akan diterjemahkan dalam format pesan protobuf. Jika Anda menentukan
base64
alih-alihproto
, fungsi ini akan memecahkan kode string yang dikodekan base64 sebagai JSON. S3 BUCKET NAME
-
Nama bucket Amazon S3 tempat Anda mengunggah file Anda.
FileDescriptorSet
S3 OBJECT KEY
-
Kunci objek yang menentukan
FileDescriptorSet
file dalam bucket Amazon S3. PROTO NAME
-
Nama
.proto
file (tidak termasuk ekstensi) dari manaFileDescriptorSet
file itu dihasilkan. MESSAGE TYPE
-
Nama struktur pesan protobuf di dalam
FileDescriptorSet
file, yang data yang akan didekodekan harus sesuai.
Contoh ekspresi SQL menggunakan fungsi decode SQL dapat terlihat seperti berikut:
SELECT VALUE decode(*, 'proto', 's3-bucket', 'messageformat.desc', 'myproto', 'messagetype') FROM 'some/topic'
-
*
Merupakan payload masuk biner, yang sesuai dengan jenis pesan protobuf yang disebut.
mymessagetype
-
messageformat.desc
FileDescriptorSet
File yang disimpan dalam ember Amazon S3 bernama.s3-bucket
-
myproto
.proto
File asli yang digunakan untuk menghasilkanFileDescriptorSet
file bernamamyproto.proto
. -
messagetype
Jenis pesan yang disebut
messagetype
(bersama dengan dependensi yang diimpor) seperti yang didefinisikan dalam.myproto.proto
encode (nilai, EncodingScheme)
Gunakan encode
fungsi untuk menyandikan payload, yang berpotensi menjadi data non-JSON, ke dalam representasi string berdasarkan skema pengkodean. Didukung oleh SQL versi 2016-03-23 dan yang lebih baru.
- nilai
-
Salah satu ekspresi yang valid, sebagaimana didefinisikan dalamAWS IoT Referensi SQL. Anda dapat menentukan * untuk menyandikan seluruh muatan, terlepas dari apakah itu dalam format JSON. Jika Anda memberikan ekspresi, hasil evaluasi dikonversi ke string sebelum dikodekan.
- encodingScheme
-
String literal yang mewakili skema pengkodean yang ingin Anda gunakan. Saat ini, hanya
'base64'
didukung.
endswith (String, String)
Mengembalikan Boolean
menunjukkan apakah String
argumen pertama berakhir dengan String
argumen kedua. Jika salah satu argumen adalah Null
atauUndefined
, hasilnya adalahUndefined
. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: endswith("cat","at")
= benar.
Tipe argumen 1 | Argumen tipe 2 | Hasil |
---|---|---|
String |
String |
Benar jika argumen pertama berakhir pada argumen kedua. Kalau tidak, salah. |
Nilai lainnya | Nilai lainnya | Kedua argumen dikonversi ke string menggunakan aturan konversi standar. Benar jika argumen pertama berakhir pada argumen kedua. Kalau tidak, salah. Jika salah satu argumen adalah Null atauUndefined , hasilnya adalahUndefined . |
exp (Desimal)
Mengembalikan e diangkat ke Decimal
argumen. Decimal
argumen dibulatkan ke presisi ganda sebelum aplikasi fungsi. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: exp(1)
= e.
Jenis Argumen | Hasil |
---|---|
Int |
Decimal (dengan presisi ganda), e ^ argumen. |
Decimal |
Decimal (dengan presisi ganda), e ^ argumen. |
String |
Decimal (dengan presisi ganda), e ^ argumen. Jika String tidak dapat dikonversi ke aDecimal , hasilnya adalahUndefined . |
Nilai lainnya | Undefined . |
lantai (Desimal)
Membulatkan yang diberikan Decimal
ke bawah ke yang terdekatInt
. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
floor(1.2)
= 1
floor(-1.2)
= 2
Jenis Argumen | Hasil |
---|---|
Int |
Int , nilai argumen. |
Decimal |
Int , Decimal nilai dibulatkan ke bawah ke terdekatInt . |
String |
Int . String dikonversi ke Decimal dan dibulatkan ke bawah ke yang terdekatInt . Jika string tidak dapat dikonversi ke aDecimal , hasilnya adalahUndefined . |
Nilai lainnya | Undefined . |
memperoleh
Mengekstrak nilai dari tipe seperti koleksi (Array, String, Object). Tidak ada konversi yang diterapkan pada argumen pertama. Konversi berlaku seperti yang didokumentasikan dalam tabel ke argumen kedua. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
get(["a", "b", "c"], 1)
= “b”
get({"a":"b"}, "a")
= “b”
get("abc", 0)
= “a”
Tipe argumen 1 | Argumen tipe 2 | Hasil |
---|---|---|
Array | Tipe apa pun (dikonversi keInt ) |
Item pada indeks berbasis 0 dari yang Array disediakan oleh argumen kedua (dikonversi keInt ). Jika konversi tidak berhasil, hasilnya adalahUndefined . Jika indeks berada di luar batas Array (negatif atau >= array.length), hasilnya adalah. Undefined |
String | Tipe apa pun (dikonversi keInt ) |
Karakter pada indeks 0 berbasis string yang disediakan oleh argumen kedua (dikonversi keInt ). Jika konversi tidak berhasil, hasilnya adalahUndefined . Jika indeks berada di luar batas string (negatif atau >= string.length), hasilnya adalah. Undefined |
Objek | String (tidak ada konversi yang diterapkan) |
Nilai yang disimpan dalam objek argumen pertama yang sesuai dengan kunci string disediakan sebagai argumen kedua. |
Nilai lainnya | Nilai apa pun | Undefined . |
get_dynamodb (TableName,,,,, roLearn partitionKeyName) partitionKeyValue sortKeyName sortKeyValue
Mengambil data dari tabel DynamoDB. get_dynamodb()
memungkinkan Anda untuk query tabel DynamoDB sementara aturan dievaluasi. Anda dapat memfilter atau menambah muatan pesan menggunakan data yang diambil dari DynamoDB. Didukung oleh SQL versi 2016-03-23 dan yang lebih baru.
get_dynamodb()
mengambil parameter berikut:
- tableName
-
Nama tabel DynamoDB untuk query.
- partitionKeyName
-
Nama kunci partisi. Untuk informasi selengkapnya, lihat DynamoDB Keys.
- partitionKeyValue
-
Nilai kunci partisi yang digunakan untuk mengidentifikasi catatan. Untuk informasi selengkapnya, lihat DynamoDB Keys.
- sortKeyName
-
(Opsional) Nama kunci sortir. Parameter ini diperlukan hanya jika tabel DynamoDB query menggunakan kunci komposit. Untuk informasi selengkapnya, lihat DynamoDB Keys.
- sortKeyValue
-
(Opsional) Nilai kunci sortir. Parameter ini diperlukan hanya jika tabel DynamoDB query menggunakan kunci komposit. Untuk informasi selengkapnya, lihat DynamoDB Keys.
- roleArn
-
ARN dari peran IAM yang memberikan akses ke tabel DynamoDB. Mesin aturan mengasumsikan peran ini untuk mengakses tabel DynamoDB atas nama Anda. Hindari menggunakan peran yang terlalu permisif. Berikan peran hanya izin yang diperlukan oleh aturan. Berikut ini adalah contoh kebijakan yang memberikan akses ke satu tabel DynamoDB.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:GetItem", "Resource": "arn:aws:dynamodb:
aws-region
:account-id
:table/table-name
" } ] }}
Sebagai contoh cara menggunakanget_dynamodb()
, katakanlah Anda memiliki tabel DynamoDB yang berisi ID perangkat dan informasi lokasi untuk semua perangkat yang terhubung. AWS IoT Pernyataan SELECT berikut menggunakan get_dynamodb()
fungsi untuk mengambil lokasi untuk ID perangkat yang ditentukan:
SELECT *, get_dynamodb("InServiceDevices", "deviceId", id,
"arn:aws:iam::12345678910:role/getdynamo").location AS location FROM
'some/topic'
catatan
-
Anda dapat memanggil maksimum
get_dynamodb()
satu kali per pernyataan SQL. Memanggilget_dynamodb()
beberapa kali dalam satu pernyataan SQL menyebabkan aturan berakhir tanpa menjalankan tindakan apa pun. -
Jika
get_dynamodb()
mengembalikan lebih dari 8 KB data, tindakan aturan mungkin tidak dipanggil.
get_mqtt_property (nama)
Referensi salah satu header MQTT5 berikut:contentType
,,, payLoadFormatIndicator
dan. responseTopic
correlationData
Fungsi ini mengambil salah satu string literal berikut sebagai argumen:content_type
,, format_indicator
response_topic
, dancorrelation_data
. Untuk informasi selengkapnya, lihat tabel Argumen fungsi berikut.
- ContentType
-
String: String yang dikodekan UTF-8 yang menjelaskan isi pesan penerbitan.
- payLoadFormatIndikator
-
String: Nilai string Enum yang menunjukkan apakah payload diformat sebagai UTF-8. Nilai yang valid adalah
UNSPECIFIED_BYTES
danUTF8_DATA
. - ResponseTopik
-
String: String yang dikodekan UTF-8 yang digunakan sebagai nama topik untuk pesan respons. Topik respons digunakan untuk menggambarkan topik yang harus dipublikasikan oleh penerima sebagai bagian dari aliran permintaan-respons. Topik tidak boleh berisi karakter wildcard.
- KorelasiData
-
String: Data biner berenkode base64 yang digunakan oleh pengirim Pesan Permintaan untuk mengidentifikasi permintaan Pesan Respons saat diterima.
Tabel berikut menunjukkan argumen fungsi yang dapat diterima dan jenis pengembalian terkait untuk get_mqtt_property
fungsi tersebut:
SQL | Tipe data yang dikembalikan (jika ada) | Tipe data yang dikembalikan (jika tidak ada) |
---|---|---|
get_mqtt_property("format_indicator") |
String (UNSPECIFIED_BYTES atau UTF8_DATA) | String (UNSPECIFIED_BYTES) |
get_mqtt_property("content_type") |
String | Tidak terdefinisi |
get_mqtt_property("response_topic") |
String | Tidak terdefinisi |
get_mqtt_property("correlation_data") |
base64 dikodekan String | Tidak terdefinisi |
get_mqtt_property("some_invalid_name") |
Tidak terdefinisi | Tidak terdefinisi |
Contoh berikut Aturan SQL mereferensikan salah satu header MQTT5 berikut:contentType
,,, dan. payLoadFormatIndicator
responseTopic
correlationData
SELECT *, get_mqtt_property('content_type') as contentType, get_mqtt_property('format_indicator') as payloadFormatIndicator, get_mqtt_property('response_topic') as responseTopic, get_mqtt_property('correlation_data') as correlationData FROM 'some/topic'
get_secret (secretID, secretType, kunci, roLearn)
Mengambil nilai terenkripsi SecretString
atau SecretBinary
bidang versi rahasia saat ini di. AWS Secrets Manager Untuk informasi lebih lanjut tentang membuat dan memelihara rahasia, lihat CreateSecret, UpdateSecret, dan PutSecretValue.
get_secret()
mengambil parameter berikut:
- secretId
-
String: Nama Sumber Daya Amazon (ARN) atau nama ramah rahasia untuk diambil.
- SecretType
-
String: Tipe rahasia. Nilai yang valid:
SecretString
|SecretBinary
.- SecretString
-
-
Untuk rahasia yang Anda buat sebagai objek JSON dengan menggunakan API, the AWS CLI, atau AWS Secrets Manager konsol:
Jika Anda menentukan nilai untuk
key
parameter, fungsi ini mengembalikan nilai kunci yang ditentukan.Jika Anda tidak menentukan nilai untuk
key
parameter, fungsi ini mengembalikan seluruh objek JSON.
-
Untuk rahasia yang Anda buat sebagai objek non-JSON dengan menggunakan API atau: AWS CLI
Jika Anda menentukan nilai untuk
key
parameter, fungsi ini gagal dengan pengecualian.Jika Anda tidak menentukan nilai untuk
key
parameter, fungsi ini mengembalikan isi rahasia.
-
- SecretBinary
-
Jika Anda menentukan nilai untuk
key
parameter, fungsi ini gagal dengan pengecualian.Jika Anda tidak menentukan nilai untuk
key
parameter, fungsi ini mengembalikan nilai rahasia sebagai string UTF-8 yang dikodekan base64.
- kunci
(Opsional) String: Nama kunci di dalam objek JSON yang disimpan di
SecretString
bidang rahasia. Gunakan nilai ini ketika Anda ingin mengambil hanya nilai kunci yang disimpan dalam rahasia, bukan seluruh objek JSON.Jika Anda menentukan nilai untuk parameter ini dan rahasia tidak berisi objek JSON di dalam
SecretString
bidangnya, fungsi ini gagal dengan pengecualian.- roleArn
String: Peran ARN dengan
secretsmanager:GetSecretValue
dansecretsmanager:DescribeSecret
izin.
catatan
Fungsi ini selalu mengembalikan versi rahasia saat ini (versi dengan AWSCURRENT
tag). Mesin AWS IoT aturan menyimpan setiap rahasia hingga 15 menit. Akibatnya, mesin aturan dapat memakan waktu hingga 15 menit untuk memperbarui rahasia. Ini berarti bahwa jika Anda mengambil rahasia hingga 15 menit setelah pembaruan dengan AWS Secrets Manager, fungsi ini mungkin mengembalikan versi sebelumnya.
Fungsi ini tidak diukur, tetapi AWS Secrets Manager dikenakan biaya. Karena mekanisme caching rahasia, mesin aturan kadang-kadang memanggil AWS Secrets Manager. Karena mesin aturan adalah layanan terdistribusi penuh, Anda mungkin melihat beberapa panggilan API Secrets Manager dari mesin aturan selama jendela caching 15 menit.
Contoh:
Anda dapat menggunakan get_secret
fungsi dalam header otentikasi dalam tindakan aturan HTTPS, seperti pada contoh otentikasi kunci API berikut.
"API_KEY": "${get_secret('
API_KEY
', 'SecretString
', 'API_KEY_VALUE
', 'arn:aws:iam::12345678910:role/getsecret')}"
Untuk informasi selengkapnya tentang tindakan aturan HTTPS, lihatHTTP.
get_thing_shadow (ThingName, ShadoName, roLearn)
Mengembalikan bayangan yang ditentukan dari hal yang ditentukan. Didukung oleh SQL versi 2016-03-23 dan yang lebih baru.
- thingName
-
String: Nama benda yang bayangannya ingin Anda ambil.
- shadowName
-
(Opsional) String: Nama bayangan. Parameter ini diperlukan hanya saat mereferensikan bayangan bernama.
- roleArn
-
String: Peran ARN dengan
iot:GetThingShadow
izin.
Contoh:
Saat digunakan dengan bayangan bernama, berikan shadowName
parameternya.
SELECT * from 'topic/subtopic' WHERE get_thing_shadow("MyThing","MyThingShadow","arn:aws:iam::123456789012:role/AllowsThingShadowAccess") .state.reported.alarm = 'ON'
Saat digunakan dengan bayangan yang tidak disebutkan namanya, hilangkan parameternya. shadowName
SELECT * from 'topic/subtopic' WHERE get_thing_shadow("MyThing","arn:aws:iam::123456789012:role/AllowsThingShadowAccess") .state.reported.alarm = 'ON'
get_user_properties () userPropertyKey
Referensi Properti Pengguna, yang merupakan salah satu jenis header properti yang didukung di MQTT5.
- UserProperty
-
String: Properti pengguna adalah pasangan kunci-nilai. Fungsi ini mengambil kunci sebagai argumen dan mengembalikan array dari semua nilai yang cocok dengan kunci terkait.
Argumen fungsi
Untuk Properti Pengguna berikut di header pesan:
Kunci | Nilai |
---|---|
beberapa kunci | beberapa nilai |
kunci yang berbeda | nilai yang berbeda |
beberapa kunci | nilai dengan kunci duplikat |
Tabel berikut menunjukkan perilaku SQL yang diharapkan:
SQL | Tipe data yang dikembalikan | Nilai data yang dikembalikan |
---|---|---|
get_user_properties ('beberapa kunci') | Array String | ['some value', 'value with duplicate key'] |
get_user_properties ('kunci lainnya') | Array String | ['a different value'] |
get_user_properties () | Array pasangan kunci-nilai Objek | [{'"some key": "some value"'}, {"other key": "a different
value"}, {"some key": "value with duplicate
key"}] |
get_user_properties ('kunci tidak ada') | Tidak terdefinisi |
Contoh berikut Aturan SQL referensi Properti Pengguna (jenis header properti MQTT5) ke payload:
SELECT *, get_user_properties('user defined property key') as userProperty FROM 'some/topic'
Fungsi hashing
AWS IoT menyediakan fungsi hashing berikut:
-
md2
-
md5
-
sha1
-
sha224
-
sha256
-
sha384
-
sha512
Semua fungsi hash mengharapkan satu argumen string. Hasilnya adalah nilai hash dari string itu. Konversi string standar berlaku untuk argumen non-string. Semua fungsi hash didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
md2("hello")
= “a9046c73e00331af68917d3804f70655"
md5("hello")
= “5d41402abc4b2a76b9719d911017c592"
indexof (String, String)
Mengembalikan indeks pertama (0-based) dari argumen kedua sebagai substring dalam argumen pertama. Kedua argumen diharapkan sebagai string. Argumen yang bukan string dikenakan aturan konversi string standar. Fungsi ini tidak berlaku untuk array, hanya untuk string. Didukung oleh SQL versi 2016-03-23 dan yang lebih baru.
Contoh:
indexof("abcd", "bc")
= 1
isNull ()
Mengembalikan nilai true jika argumen adalah Null
nilai. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
isNull(5)
= salah.
isNull(Null)
= benar.
Jenis Argumen | Hasil |
---|---|
Int |
false |
Decimal |
false |
Boolean |
false |
String |
false |
Array |
false |
Object |
SALAH |
Null |
BETUL |
Undefined |
SALAH |
isUndefined ()
Mengembalikan nilai true jika argumennyaUndefined
. Didukung oleh SQL versi 2016-03-23 dan yang lebih baru.
Contoh:
isUndefined(5)
= salah.
isUndefined(floor([1,2,3])))
= benar.
Jenis Argumen | Hasil |
---|---|
Int |
false |
Decimal |
false |
Boolean |
false |
String |
false |
Array |
false |
Object |
false |
Null |
SALAH |
Undefined |
true |
panjang (String)
Mengembalikan jumlah karakter dalam string yang disediakan. Aturan konversi standar berlaku untuk String
non-argumen. Didukung oleh SQL versi 2016-03-23 dan yang lebih baru.
Contoh:
length("hi")
= 2
length(false)
= 5
ln (Desimal)
Mengembalikan logaritma natural dari argumen. Decimal
argumen dibulatkan ke presisi ganda sebelum aplikasi fungsi. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: ln(e)
= 1.
Jenis Argumen | Hasil |
---|---|
Int |
Decimal (dengan presisi ganda), log alami argumen. |
Decimal |
Decimal (dengan presisi ganda), log alami argumen. |
Boolean |
Undefined . |
String |
Decimal (dengan presisi ganda), log alami argumen. Jika string tidak dapat dikonversi ke aDecimal , hasilnya adalahUndefined . |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
log (Desimal)
Mengembalikan basis 10 logaritma argumen. Decimal
argumen dibulatkan ke presisi ganda sebelum aplikasi fungsi. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: log(100)
= 2.0.
Jenis Argumen | Hasil |
---|---|
Int |
Decimal (dengan presisi ganda), log dasar 10 argumen. |
Decimal |
Decimal (dengan presisi ganda), log dasar 10 argumen. |
Boolean |
Undefined . |
String |
Decimal (dengan presisi ganda), log dasar 10 argumen. Jika String tidak dapat dikonversi ke aDecimal , hasilnya adalahUndefined . |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
lebih rendah (String)
Mengembalikan versi huruf kecil dari yang diberikan. String
Argumen non-string dikonversi ke string menggunakan aturan konversi standar. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
lower("HELLO")
= “halo”.
lower(["HELLO"])
= “[\" halo\ "]”.
lpad (Tali, Int)
Mengembalikan String
argumen, empuk di sisi kiri dengan jumlah spasi yang ditentukan oleh argumen kedua. Int
Argumen harus antara 0 dan 1000. Jika nilai yang diberikan berada di luar rentang yang valid ini, argumen diatur ke nilai valid terdekat (0 atau 1000). Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
lpad("hello", 2)
= " hello
".
lpad(1, 3)
= " 1
"
Tipe argumen 1 | Argumen tipe 2 | Hasil |
---|---|---|
String |
Int |
String , yang disediakan String empuk di sisi kiri dengan sejumlah spasi sama dengan yang disediakanInt . |
String |
Decimal |
Decimal Argumen dibulatkan ke bawah ke terdekat Int dan empuk di sebelah kiri dengan jumlah spasi yang ditentukan. String |
String |
String |
Argumen kedua dikonversi ke aDecimal , yang dibulatkan ke bawah ke terdekatInt , dan empuk dengan spasi nomor yang ditentukan di sebelah kiri. String Jika argumen kedua tidak dapat diubah menjadiInt , hasilnya adalahUndefined . |
Nilai lainnya | Int /Decimal /String |
Nilai pertama dikonversi ke a String menggunakan konversi standar, dan kemudian fungsi LPAD diterapkan pada itu. String Jika tidak dapat dikonversi, hasilnya adalahUndefined . |
Nilai apa pun | Nilai lainnya | Undefined . |
ltrim (Tali)
Menghapus semua spasi putih terkemuka (tab dan spasi) dari yang disediakanString
. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
Ltrim(" h i ")
= “hai”.
Jenis Argumen | Hasil |
---|---|
Int |
String Representasi Int dengan semua ruang putih terkemuka dihapus. |
Decimal |
String Representasi Decimal dengan semua ruang putih terkemuka dihapus. |
Boolean |
String Representasi Boolean (“true” atau “false”) dengan semua spasi putih terkemuka dihapus. |
String |
Argumen dengan semua ruang putih terkemuka dihapus. |
Array | String Representasi dari Array (menggunakan aturan konversi standar) dengan semua spasi putih terkemuka dihapus. |
Objek | String Representasi Object (menggunakan aturan konversi standar) dengan semua spasi putih terkemuka dihapus. |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
machinelearning_predict (modelID, roLearn, rekam)
Gunakan machinelearning_predict
fungsi untuk membuat prediksi menggunakan data dari pesan MQTT berdasarkan model Amazon. SageMaker Didukung oleh SQL versi 2015-10-08 dan yang lebih baru. Argumen untuk machinelearning_predict
fungsi tersebut adalah:
- modelId
-
ID model yang digunakan untuk menjalankan prediksi. Titik akhir real-time model harus diaktifkan.
- roleArn
-
Peran IAM yang memiliki kebijakan dengan
machinelearning:Predict
danmachinelearning:GetMLModel
izin dan memungkinkan akses ke model tempat prediksi dijalankan. - catatan
-
Data yang akan diteruskan ke API SageMaker Predict. Ini harus direpresentasikan sebagai objek JSON lapisan tunggal. Jika catatan adalah objek JSON multi-level, catatan diratakan dengan membuat serial nilainya. Misalnya, JSON berikut:
{ "key1": {"innerKey1": "value1"}, "key2": 0}
akan menjadi:
{ "key1": "{\"innerKey1\": \"value1\"}", "key2": 0}
Fungsi mengembalikan objek JSON dengan bidang-bidang berikut:
- predictedLabel
-
Klasifikasi input berdasarkan model.
- detail
-
Berisi atribut berikut:
- PredictiveModelType
-
Jenis model. Nilai yang valid adalah REGRESSION, BINARY, MULTICLASS.
- Algoritme
-
Algoritma yang digunakan SageMaker untuk membuat prediksi. Nilainya harus SGD.
- predictedScores
-
Berisi skor klasifikasi mentah yang sesuai dengan setiap label.
- predictedValue
-
Nilai yang diprediksi oleh SageMaker.
mod (Desimal, Desimal)
Mengembalikan sisa pembagian argumen pertama dengan argumen kedua. Setara dengansisanya (Desimal, Desimal). Anda juga dapat menggunakan “%” sebagai operator infix untuk fungsionalitas modulo yang sama. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: mod(8, 3)
= 2.
Operan kiri | Operan kanan | Output |
---|---|---|
Int |
Int |
Int , argumen pertama modulo argumen kedua. |
Int /Decimal |
Int /Decimal |
Decimal , argumen pertama modulo operan kedua. |
String /Int /Decimal |
String /Int /Decimal |
Jika semua string dikonversi ke desimal, hasilnya adalah argumen pertama modulo argumen kedua. Atau, Undefined . |
Nilai lainnya | Nilai lainnya | Undefined . |
nanvl (,) AnyValue AnyValue
Mengembalikan argumen pertama jika itu adalah validDecimal
. Jika tidak, argumen kedua dikembalikan. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: Nanvl(8, 3)
= 8.
Tipe argumen 1 | Argumen tipe 2 | Output |
---|---|---|
Tidak terdefinisi | Nilai apa pun | Argumen kedua. |
Null | Nilai apa pun | Argumen kedua. |
Decimal (NaN) |
Nilai apa pun | Argumen kedua. |
Decimal (bukan NaN) |
Nilai apa pun | Argumen pertama. |
Nilai lainnya | Nilai apa pun | Argumen pertama. |
newuuid ()
Mengembalikan UUID 16-byte acak. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: newuuid()
= 123a4567-b89c-12d3-e456-789012345000
numbytes (String)
Mengembalikan jumlah byte dalam pengkodean UTF-8 dari string yang disediakan. Aturan konversi standar berlaku untuk String
non-argumen. Didukung oleh SQL versi 2016-03-23 dan yang lebih baru.
Contoh:
numbytes("hi")
= 2
numbytes("€")
= 3
parse_time (String, Panjang [, String])
Gunakan parse_time
fungsi untuk memformat stempel waktu menjadi format tanggal/waktu yang dapat dibaca manusia. Didukung oleh SQL versi 2016-03-23 dan yang lebih baru. Untuk mengubah string stempel waktu menjadi milidetik, lihat. time_to_epoch (String, String)
parse_time
Fungsi mengharapkan argumen berikut:
- pola
-
(String) Pola tanggal/waktu yang mengikuti format Joda-Time
. - timestamp
-
(Panjang) Waktu untuk diformat dalam milidetik sejak zaman Unix. Lihat fungsistempel waktu ().
- timezone
-
(String) Zona waktu tanggal/waktu yang diformat. Defaultnya adalah “UTC”. Fungsi ini mendukung zona waktu Joda-Time
. Argumen ini opsional.
Contoh:
Ketika pesan ini dipublikasikan ke topik 'A/B', payload {"ts":
"1970.01.01 AD at 21:46:40 CST"}
dikirim ke bucket S3:
{ "ruleArn": "arn:aws:iot:us-east-2:ACCOUNT_ID:rule/RULE_NAME", "topicRulePayload": { "sql": "SELECT parse_time(\"yyyy.MM.dd G 'at' HH:mm:ss z\", 100000000, 'America/Belize' ) as ts FROM 'A/B'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "s3": { "roleArn": "arn:aws:iam::ACCOUNT_ID:rule:role/ROLE_NAME", "bucketName": "BUCKET_NAME", "key": "KEY_NAME" } } ], "ruleName": "RULE_NAME" } }
Saat pesan ini dipublikasikan ke topik 'A/B', muatan yang mirip dengan {"ts": "2017.06.09 AD at 17:19:46 UTC"}
(tetapi dengan tanggal/waktu saat ini) dikirim ke bucket S3:
{ "ruleArn": "arn:aws:iot:us-east-2:ACCOUNT_ID:rule/RULE_NAME", "topicRulePayload": { "sql": "SELECT parse_time(\"yyyy.MM.dd G 'at' HH:mm:ss z\", timestamp() ) as ts FROM 'A/B'", "awsIotSqlVersion": "2016-03-23", "ruleDisabled": false, "actions": [ { "s3": { "roleArn": "arn:aws:iam::ACCOUNT_ID:rule:role/ROLE_NAME", "bucketName": "BUCKET_NAME", "key": "KEY_NAME" } } ], "ruleName": "RULE_NAME" } }
parse_time()
juga dapat digunakan sebagai template substitusi. Misalnya, ketika pesan ini dipublikasikan ke topik 'A/B', muatan dikirim ke bucket S3 dengan kunci = “2017":
{ "ruleArn": "arn:aws:iot:us-east-2:ACCOUNT_ID:rule/RULE_NAME", "topicRulePayload": { "sql": "SELECT * FROM 'A/B'", "awsIotSqlVersion": "2016-03-23", "ruleDisabled": false, "actions": [{ "s3": { "roleArn": "arn:aws:iam::ACCOUNT_ID:rule:role/ROLE_NAME", "bucketName": "BUCKET_NAME", "key": "${parse_time('yyyy', timestamp(), 'UTC')}" } }], "ruleName": "RULE_NAME" } }
kekuatan (Desimal, Desimal)
Mengembalikan argumen pertama yang diangkat ke argumen kedua. Decimal
argumen dibulatkan ke presisi ganda sebelum aplikasi fungsi. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: power(2, 5)
= 32.0.
Tipe argumen 1 | Argumen tipe 2 | Output |
---|---|---|
Int /Decimal |
Int /Decimal |
A Decimal (dengan presisi ganda), argumen pertama diangkat ke kekuatan argumen kedua. |
Int /Decimal /String |
Int /Decimal /String |
A Decimal (dengan presisi ganda), argumen pertama diangkat ke kekuatan argumen kedua. Setiap string dikonversi ke desimal. Jika ada yang String gagal dikonversiDecimal , hasilnya adalahUndefined . |
Nilai lainnya | Nilai lainnya | Undefined . |
prinsipal ()
Mengembalikan prinsipal yang digunakan perangkat untuk otentikasi, berdasarkan bagaimana pesan pemicu dipublikasikan. Tabel berikut menjelaskan prinsip yang dikembalikan untuk setiap metode penerbitan dan protokol.
Bagaimana pesan dipublikasikan | Protokol | Jenis kredensi | Utama |
---|---|---|---|
Klien MQTT | MQTT | Sertifikat perangkat X.509 | Sidik jari sertifikat X.509 |
AWS IoT konsol klien MQTT | MQTT | Pengguna atau peran IAM | iam-role-id : nama sesi |
AWS CLI | HTTP | Pengguna atau peran IAM | userid |
AWS IoT Perangkat SDK | MQTT | Sertifikat perangkat X.509 | Sidik jari sertifikat X.509 |
AWS IoT Perangkat SDK | MQTT lebih WebSocket | Pengguna atau peran IAM | userid |
Contoh berikut menunjukkan berbagai jenis nilai yang principal()
dapat dikembalikan:
-
Sidik jari sertifikat X.509:
ba67293af50bf2506f5f93469686da660c7c844e7b3950bfb16813e0d31e9373
-
ID peran IAM dan nama sesi:
ABCD1EFG3HIJK2LMNOP5:my-session-name
-
Mengembalikan ID pengguna:
ABCD1EFG3HIJK2LMNOP5
rand ()
Mengembalikan pseudorandom, seragam didistribusikan ganda antara 0,0 dan 1,0. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
rand()
= 0.8231909191640703
regexp_matches (String, String)
Mengembalikan nilai true jika string (argumen pertama) berisi kecocokan untuk ekspresi reguler (argumen kedua). Jika Anda menggunakan |
dalam ekspresi reguler, gunakan dengan()
.
Contoh:
regexp_matches("aaaa", "a{2,}")
= benar.
regexp_matches("aaaa", "b")
= salah.
regexp_matches("aaa", "(aaa|bbb)")
= benar.
regexp_matches("bbb", "(aaa|bbb)")
= benar.
regexp_matches("ccc", "(aaa|bbb)")
= salah.
Jenis Argumen | Hasil |
---|---|
Int |
String Representasi dariInt . |
Decimal |
String Representasi dariDecimal . |
Boolean |
String Representasi dari Boolean (“true” atau “false”). |
String |
TheString . |
Array | String Representasi dari Array (menggunakan aturan konversi standar). |
Objek | String Representasi Object (menggunakan aturan konversi standar). |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
Argumen kedua:
Harus berupa ekspresi regex yang valid. Jenis non-string dikonversi untuk String
menggunakan aturan konversi standar. Bergantung pada jenisnya, string yang dihasilkan mungkin bukan ekspresi reguler yang valid. Jika argumen (dikonversi) tidak valid regex, hasilnya adalah. Undefined
regexp_replace (String, String, String)
Menggantikan semua kemunculan argumen kedua (ekspresi reguler) dalam argumen pertama dengan argumen ketiga. Grup tangkapan referensi dengan “$”. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
regexp_replace("abcd", "bc", "x")
= “kapak”.
regexp_replace("abcd", "b(.*)d", "$1")
= “ac”.
Jenis Argumen | Hasil |
---|---|
Int |
String Representasi dariInt . |
Decimal |
String Representasi dariDecimal . |
Boolean |
String Representasi dari Boolean (“true” atau “false”). |
String |
Nilai sumbernya. |
Array | String Representasi dari Array (menggunakan aturan konversi standar). |
Objek | String Representasi Object (menggunakan aturan konversi standar). |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
Argumen kedua:
Harus berupa ekspresi regex yang valid. Jenis non-string dikonversi untuk String
menggunakan aturan konversi standar. Bergantung pada jenisnya, string yang dihasilkan mungkin bukan ekspresi reguler yang valid. Jika argumen (dikonversi) bukan ekspresi regex yang valid, hasilnya adalah. Undefined
Argumen ketiga:
Harus berupa string pengganti regex yang valid. (Dapat mereferensikan grup tangkapan.) Jenis non-string dikonversi untuk String
menggunakan aturan konversi standar. Jika argumen (dikonversi) bukan string pengganti regex yang valid, hasilnya adalah. Undefined
regexp_substr (Tali, Tali)
Menemukan kecocokan pertama dari parameter kedua (regex) di parameter pertama. Grup tangkapan referensi dengan “$”. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
regexp_substr("hihihello", "hi")
= “hai”
regexp_substr("hihihello", "(hi)*")
= “hihi”
Jenis Argumen | Hasil |
---|---|
Int |
String Representasi dariInt . |
Decimal |
String Representasi dariDecimal . |
Boolean |
String Representasi Boolean (“true” atau “false”). |
String |
String Argumennya. |
Array | String Representasi dari Array (menggunakan aturan konversi standar). |
Objek | String Representasi Object (menggunakan aturan konversi standar). |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
Argumen kedua:
Harus berupa ekspresi regex yang valid. Jenis non-string dikonversi untuk String
menggunakan aturan konversi standar. Bergantung pada jenisnya, string yang dihasilkan mungkin bukan ekspresi reguler yang valid. Jika argumen (dikonversi) bukan ekspresi regex yang valid, hasilnya adalah. Undefined
sisanya (Desimal, Desimal)
Mengembalikan sisa pembagian argumen pertama dengan argumen kedua. Setara denganmod (Desimal, Desimal). Anda juga dapat menggunakan “%” sebagai operator infix untuk fungsionalitas modulo yang sama. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: remainder(8, 3)
= 2.
Operan kiri | Operan kanan | Output |
---|---|---|
Int |
Int |
Int , argumen pertama modulo argumen kedua. |
Int /Decimal |
Int /Decimal |
Decimal , argumen pertama modulo operan kedua. |
String /Int /Decimal |
String /Int /Decimal |
Jika semua string dikonversi ke desimal, hasilnya adalah argumen pertama modulo argumen kedua. Atau, Undefined . |
Nilai lainnya | Nilai lainnya | Undefined . |
ganti (String, String, String)
Menggantikan semua kemunculan argumen kedua dalam argumen pertama dengan argumen ketiga. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
replace("abcd", "bc", "x")
= "axd"
.
replace("abcdabcd", "b", "x")
= "axcdaxcd"
.
Jenis Argumen | Hasil |
---|---|
Int |
String Representasi dariInt . |
Decimal |
String Representasi dariDecimal . |
Boolean |
String Representasi Boolean (“true” atau “false”). |
String |
Nilai sumbernya. |
Array | String Representasi dari Array (menggunakan aturan konversi standar). |
Objek | String Representasi Object (menggunakan aturan konversi standar). |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
rpad (String, Int)
Mengembalikan argumen string, empuk di sisi kanan dengan jumlah spasi yang ditentukan dalam argumen kedua. Int
Argumen harus antara 0 dan 1000. Jika nilai yang diberikan berada di luar rentang yang valid ini, argumen diatur ke nilai valid terdekat (0 atau 1000). Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
rpad("hello", 2)
= "hello
".
rpad(1, 3)
= "1
".
Tipe argumen 1 | Argumen tipe 2 | Hasil |
---|---|---|
String |
Int |
Empuk di sisi kanan dengan sejumlah spasi yang sama dengan yang disediakanInt . String |
String |
Decimal |
Decimal Argumen dibulatkan ke bawah ke yang terdekat Int dan string empuk di sisi kanan dengan sejumlah spasi sama dengan yang disediakanInt . |
String |
String |
Argumen kedua diubah menjadi aDecimal , yang dibulatkan ke bawah ke yang terdekatInt . Empuk di sisi kanan dengan sejumlah spasi yang sama dengan Int nilainya. String |
Nilai lainnya | Int /Decimal /String |
Nilai pertama dikonversi ke a String menggunakan konversi standar, dan fungsi rpad diterapkan pada itu. String Jika tidak dapat dikonversi, hasilnya adalahUndefined . |
Nilai apa pun | Nilai lainnya | Undefined . |
bulat (Desimal)
Membulatkan yang diberikan Decimal
ke yang terdekatInt
. Jika Decimal
berjarak sama dari dua Int
nilai (misalnya, 0,5), Decimal
dibulatkan ke atas. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: Round(1.2)
= 1.
Round(1.5)
= 2.
Round(1.7)
= 2.
Round(-1.1)
= -1.
Round(-1.5)
= -2.
Jenis Argumen | Hasil |
---|---|
Int |
Argumennya. |
Decimal |
Decimal dibulatkan ke bawah ke yang terdekatInt . |
String |
Decimal dibulatkan ke bawah ke yang terdekatInt . Jika string tidak dapat dikonversi ke aDecimal , hasilnya adalahUndefined . |
Nilai lainnya | Undefined . |
rtrim (Tali)
Menghapus semua spasi putih (tab dan spasi) dari yang disediakan. String
Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
rtrim(" h i ")
= "h i”
Jenis Argumen | Hasil |
---|---|
Int |
String Representasi dariInt . |
Decimal |
String Representasi dariDecimal . |
Boolean |
String Representasi Boolean (“true” atau “false”). |
Array | String Representasi dari Array (menggunakan aturan konversi standar). |
Objek | String Representasi Object (menggunakan aturan konversi standar). |
Null | Undefined . |
Tidak terdefinisi | Undefined |
tanda (Desimal)
Mengembalikan tanda nomor yang diberikan. Ketika tanda argumen positif, 1 dikembalikan. Ketika tanda argumen negatif, -1 dikembalikan. Jika argumen adalah 0, 0 dikembalikan. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
sign(-7)
= -1.
sign(0)
= 0.
sign(13)
= 1.
Jenis Argumen | Hasil |
---|---|
Int |
Int , tanda Int nilai. |
Decimal |
Int , tanda Decimal nilai. |
String |
Int , tanda Decimal nilai. String dikonversi ke Decimal nilai, dan tanda Decimal nilai dikembalikan. Jika String tidak dapat dikonversi ke aDecimal , hasilnya adalahUndefined . Didukung oleh SQL versi 2015-10-08 dan yang lebih baru. |
Nilai lainnya | Undefined . |
sin (Desimal)
Mengembalikan sinus dari angka dalam radian. Decimal
argumen dibulatkan ke presisi ganda sebelum aplikasi fungsi. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: sin(0)
= 0.0
Jenis Argumen | Hasil |
---|---|
Int |
Decimal (dengan presisi ganda), sinus argumen. |
Decimal |
Decimal (dengan presisi ganda), sinus argumen. |
Boolean |
Undefined . |
String |
Decimal (dengan presisi ganda), sinus argumen. Jika string tidak dapat dikonversi ke aDecimal , hasilnya adalahUndefined . |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Undefined |
Undefined . |
sinh (Desimal)
Mengembalikan sinus hiperbolik dari suatu angka. Decimal
nilai dibulatkan ke presisi ganda sebelum aplikasi fungsi. Hasilnya adalah Decimal
nilai presisi ganda. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: sinh(2.3)
= 4.936961805545957
Jenis Argumen | Hasil |
---|---|
Int |
Decimal (dengan presisi ganda), sinus hiperbolik argumen. |
Decimal |
Decimal (dengan presisi ganda), sinus hiperbolik argumen. |
Boolean |
Undefined . |
String |
Decimal (dengan presisi ganda), sinus hiperbolik argumen. Jika string tidak dapat dikonversi ke aDecimal , hasilnya adalahUndefined . |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
sourceip ()
Mengambil alamat IP perangkat atau router yang terhubung dengannya. Jika perangkat Anda terhubung ke internet secara langsung, fungsi tersebut akan mengembalikan alamat IP sumber perangkat. Jika perangkat Anda terhubung ke router yang terhubung ke internet, fungsi tersebut akan mengembalikan alamat IP sumber router. Didukung oleh SQL versi 2016-03-23. sourceip()
tidak mengambil parameter apa pun.
penting
Alamat IP sumber publik perangkat sering kali merupakan alamat IP dari Network Address Translation (NAT) Gateway terakhir seperti router atau modem kabel penyedia layanan internet Anda.
Contoh:
sourceip()="192.158.1.38"
sourceip()="1.102.103.104"
sourceip()="2001:db8:ff00::12ab:34cd"
Contoh SQL:
SELECT *, sourceip() as deviceIp FROM 'some/topic'
Contoh cara menggunakan fungsi sourceip () dalam AWS IoT Core tindakan aturan:
Contoh 1
Contoh berikut menunjukkan bagaimana memanggil fungsi () sebagai template substitusi dalam tindakan DynamoDB.
{ "topicRulePayload": { "sql": "SELECT * AS message FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "dynamoDB": { "tableName": "my_ddb_table", "hashKeyField": "key", "hashKeyValue": "${sourceip()}", "rangeKeyField": "timestamp", "rangeKeyValue": "${timestamp()}", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDB" } } ] } }
Contoh 2
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "republish": { "topic": "${topic()}/republish", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_republish", "headers": { "payloadFormatIndicator": "UTF8_DATA", "contentType": "rule/contentType", "correlationData": "cnVsZSBjb3JyZWxhdGlvbiBkYXRh", "userProperties": [ { "key": "ruleKey1", "value": "ruleValue1" }, { "key": "sourceip", "value": "${sourceip()}" } ] } } } ] } }
Anda dapat mengambil alamat IP sumber dari pesan yang diteruskan ke AWS IoT Core aturan dari jalur Message Broker dan Basic Ingest. Anda juga dapat mengambil IP sumber untuk pesan IPv4 dan IPv6. IP sumber akan ditampilkan seperti berikut:
IPv6: yyyy:yyyy:yyyy::yyyy:yyyy
IPv4: xxx.xxx.xxx.xxx
catatan
IP sumber asli tidak akan diteruskan melalui tindakan Republish.
substring (String, Int [, Int])
Mengharapkan String
diikuti oleh satu atau dua Int
nilai. Untuk Int
argumen String
dan satu, fungsi ini mengembalikan substring yang disediakan String
dari Int
indeks yang disediakan (berbasis 0, inklusif) ke akhir. String
Untuk Int
argumen a String
dan dua, fungsi ini mengembalikan substring yang disediakan String
dari argumen Int
indeks pertama (berbasis 0, inklusif) ke argumen Int
indeks kedua (berbasis 0, eksklusif). Indeks yang kurang dari nol ditetapkan ke nol. Indeks yang lebih besar dari String
panjang diatur ke String
panjang. Untuk versi tiga argumen, jika indeks pertama lebih besar dari (atau sama dengan) indeks kedua, hasilnya kosongString
.
Jika argumen yang diberikan bukan (String
, Int
), atau (String
, Int
, Int
), konversi standar diterapkan ke argumen untuk mencoba mengubahnya menjadi tipe yang benar. Jika tipe tidak dapat dikonversi, hasil fungsinya adalahUndefined
. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
substring("012345", 0)
= “012345".
substring("012345", 2)
= “2345".
substring("012345", 2.745)
= “2345".
substring(123, 2)
= “3".
substring("012345", -1)
= “012345".
substring(true, 1.2)
= “rue”.
substring(false, -2.411E247)
= “salah”.
substring("012345", 1, 3)
= “12".
substring("012345", -50, 50)
= “012345".
substring("012345", 3, 1)
= "".
sql_version ()
Mengembalikan versi SQL yang ditentukan dalam aturan ini. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
sql_version()
= “2016-03-23"
sqrt (Desimal)
Mengembalikan akar kuadrat dari sebuah angka. Decimal
argumen dibulatkan ke presisi ganda sebelum aplikasi fungsi. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: sqrt(9)
= 3.0.
Jenis Argumen | Hasil |
---|---|
Int |
Akar kuadrat dari argumen. |
Decimal |
Akar kuadrat dari argumen. |
Boolean |
Undefined . |
String |
Akar kuadrat dari argumen. Jika string tidak dapat dikonversi ke aDecimal , hasilnya adalahUndefined . |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
startswith (String, String)
PengembalianBoolean
, apakah argumen string pertama dimulai dengan argumen string kedua. Jika salah satu argumen adalah Null
atauUndefined
, hasilnya adalahUndefined
. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
startswith("ranger","ran")
= benar
Tipe argumen 1 | Argumen tipe 2 | Hasil |
---|---|---|
String |
String |
Apakah string pertama dimulai dengan string kedua. |
Nilai lainnya | Nilai lainnya | Kedua argumen dikonversi ke string menggunakan aturan konversi standar. Mengembalikan nilai true jika string pertama dimulai dengan string kedua. Jika salah satu argumen adalah Null atauUndefined , hasilnya adalahUndefined . |
tan (Desimal)
Mengembalikan garis singgung angka dalam radian. Decimal
nilai dibulatkan ke presisi ganda sebelum aplikasi fungsi. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: tan(3)
= -0.1425465430742778
Jenis Argumen | Hasil |
---|---|
Int |
Decimal (dengan presisi ganda), garis singgung argumen. |
Decimal |
Decimal (dengan presisi ganda), garis singgung argumen. |
Boolean |
Undefined . |
String |
Decimal (dengan presisi ganda), garis singgung argumen. Jika string tidak dapat dikonversi ke aDecimal , hasilnya adalahUndefined . |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
tanh (Desimal)
Mengembalikan tangen hiperbolik dari angka dalam radian. Decimal
nilai dibulatkan ke presisi ganda sebelum aplikasi fungsi. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: tanh(2.3)
= 0,9800963962661914
Jenis Argumen | Hasil |
---|---|
Int |
Decimal (dengan presisi ganda), garis singgung hiperbolik argumen. |
Decimal |
Decimal (dengan presisi ganda), garis singgung hiperbolik argumen. |
Boolean |
Undefined . |
String |
Decimal (dengan presisi ganda), garis singgung hiperbolik argumen. Jika string tidak dapat dikonversi ke aDecimal , hasilnya adalahUndefined . |
Susunan | Undefined . |
Objek | Undefined . |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
time_to_epoch (String, String)
Gunakan time_to_epoch
fungsi untuk mengubah string timestamp menjadi beberapa milidetik dalam waktu epoch Unix. Didukung oleh SQL versi 2016-03-23 dan yang lebih baru. Untuk mengonversi milidetik ke string stempel waktu yang diformat, lihat. parse_time (String, Panjang [, String])
time_to_epoch
Fungsi mengharapkan argumen berikut:
- timestamp
-
(String) String timestamp yang akan dikonversi menjadi milidetik sejak zaman Unix. Jika string stempel waktu tidak menentukan zona waktu, fungsi menggunakan zona waktu UTC.
- pola
-
(String) Pola tanggal/waktu yang mengikuti Format Waktu JDK11
.
Contoh:
time_to_epoch("2020-04-03 09:45:18 UTC+01:00", "yyyy-MM-dd HH:mm:ss
VV")
= 1585903518000
time_to_epoch("18 December 2015", "dd MMMM yyyy")
= 1450396800000
time_to_epoch("2007-12-03 10:15:30.592 America/Los_Angeles", "yyyy-MM-dd
HH:mm:ss.SSS z")
= 1196705730592
stempel waktu ()
Mengembalikan stempel waktu saat ini dalam milidetik dari 00:00:00 Coordinated Universal Time (UTC), Kamis, 1 Januari 1970, seperti yang diamati oleh mesin aturan. AWS IoT Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh: timestamp()
= 1481825251155
topik (Desimal)
Mengembalikan topik ke mana pesan yang memicu aturan dikirim. Jika tidak ada parameter yang ditentukan, seluruh topik dikembalikan. Decimal
Parameter ini digunakan untuk menentukan segmen topik tertentu, dengan 1 menunjuk segmen pertama. Untuk topikfoo/bar/baz
, topik (1) kembalifoo
, topik (2) kembalibar
, dan sebagainya. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
topic()
= “Hal-hal/Mitos/Hal-hal”
topic(1)
= “hal-hal”
Ketika Basic Ingest digunakan, awalan awal topic ($aws/rules/
) tidak tersedia untuk fungsi topic (). Misalnya, mengingat topik:rule-name
$aws/rules/BuildingManager/Buildings/Building5/Floor2/Room201/Lights
topic()
= “Bangunan/Bangunan/Lantai/Kamar201/Lampu”
topic(3)
= “Lantai2"
traceid ()
Mengembalikan ID jejak (UUID) pesan MQTT, atau Undefined
jika pesan tidak dikirim melalui MQTT. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
traceid()
= “12345678-1234-1234-1234-123456789012"
mengubah (String, Objek, Array)
Mengembalikan array objek yang berisi hasil transformasi tertentu dari Object
parameter pada Array
parameter.
Didukung oleh SQL versi 2016-03-23 dan yang lebih baru.
- String
Mode transformasi yang akan digunakan. Lihat tabel berikut untuk mode transformasi yang didukung dan bagaimana mereka membuat
Result
dariObject
danArray
parameter.- Objek
Objek yang berisi atribut untuk diterapkan ke setiap elemen
Array
.- Array
-
Sebuah array objek ke mana atribut
Object
diterapkan.Setiap objek dalam Array ini sesuai dengan objek dalam respon fungsi. Setiap objek dalam respons fungsi berisi atribut yang ada di objek asli dan atribut yang disediakan oleh
Object
sebagaimana ditentukan oleh mode transformasi yang ditentukan dalamString
.
|
|
|
Hasil |
---|---|---|---|
|
Objek |
Array objek |
Array objek di mana setiap objek berisi atribut elemen dari |
Nilai lainnya |
Nilai apa pun |
Nilai apa pun |
Tidak terdefinisi |
catatan
Array yang dikembalikan oleh fungsi ini terbatas pada 128 KiB.
Contoh fungsi transformasi 1
Contoh ini menunjukkan bagaimana transform() fungsi menghasilkan array tunggal objek dari objek data dan array.
Dalam contoh ini, pesan berikut dipublikasikan ke topik MQTT. A/B
{ "attributes": { "data1": 1, "data2": 2 }, "values": [ { "a": 3 }, { "b": 4 }, { "c": 5 } ] }
Pernyataan SQL ini untuk tindakan aturan topik menggunakan transform() fungsi dengan String
nilai. enrichArray
Dalam contoh ini, Object
adalah attributes
properti dari payload pesan dan Array
values
array, yang berisi tiga objek.
select value transform("enrichArray", attributes, values) from 'A/B'
Setelah menerima payload pesan, pernyataan SQL mengevaluasi respons berikut.
[ { "a": 3, "data1": 1, "data2": 2 }, { "b": 4, "data1": 1, "data2": 2 }, { "c": 5, "data1": 1, "data2": 2 } ]
Contoh fungsi transformasi 2
Contoh ini menunjukkan bagaimana transform() fungsi dapat menggunakan nilai literal untuk menyertakan dan mengganti nama atribut individual dari payload pesan.
Dalam contoh ini, pesan berikut dipublikasikan ke topik MQTT. A/B
Ini adalah pesan yang sama yang digunakan dalamContoh fungsi transformasi 1.
{ "attributes": { "data1": 1, "data2": 2 }, "values": [ { "a": 3 }, { "b": 4 }, { "c": 5 } ] }
Pernyataan SQL ini untuk tindakan aturan topik menggunakan transform() fungsi dengan String
nilai. enrichArray
Object
Dalam transform() fungsi memiliki atribut tunggal bernama key
dengan nilai attributes.data1
dalam payload pesan dan Array
values
array, yang berisi tiga objek yang sama yang digunakan dalam contoh sebelumnya.
select value transform("enrichArray", {"key": attributes.data1}, values) from 'A/B'
Setelah menerima payload pesan, pernyataan SQL ini mengevaluasi respons berikut. Perhatikan bagaimana data1
properti tersebut dinamai key
dalam tanggapan.
[ { "a": 3, "key": 1 }, { "b": 4, "key": 1 }, { "c": 5, "key": 1 } ]
Contoh fungsi transformasi 3
Contoh ini menunjukkan bagaimana transform() fungsi dapat digunakan dalam klausa SELECT bersarang untuk memilih beberapa atribut dan membuat objek baru untuk pemrosesan selanjutnya.
Dalam contoh ini, pesan berikut dipublikasikan ke topik MQTT. A/B
{ "data1": "example", "data2": { "a": "first attribute", "b": "second attribute", "c": [ { "x": { "someInt": 5, "someString": "hello" }, "y": true }, { "x": { "someInt": 10, "someString": "world" }, "y": false } ] } }
Fungsi Object
untuk transformasi ini adalah objek yang dikembalikan oleh pernyataan SELECT, yang berisi a
dan b
elemen data2
objek pesan. Array
Parameter terdiri dari dua objek dari data2.c
array dalam pesan asli.
select value transform('enrichArray', (select a, b from data2), (select value c from data2)) from 'A/B'
Dengan pesan sebelumnya, pernyataan SQL mengevaluasi respons berikut.
[ { "x": { "someInt": 5, "someString": "hello" }, "y": true, "a": "first attribute", "b": "second attribute" }, { "x": { "someInt": 10, "someString": "world" }, "y": false, "a": "first attribute", "b": "second attribute" } ]
Array yang dikembalikan dalam respons ini dapat digunakan dengan tindakan aturan topik yang mendukungbatchMode
.
memangkas (Tali)
Menghapus semua spasi putih terdepan dan tertinggal dari yang disediakanString
. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
Trim(" hi ")
= “hai”
Jenis Argumen | Hasil |
---|---|
Int |
String Representasi dari Int dengan semua ruang putih terkemuka dan tertinggal dihapus. |
Decimal |
String Representasi dari Decimal dengan semua ruang putih terkemuka dan tertinggal dihapus. |
Boolean |
String Representasi dari Boolean (“benar” atau “salah”) dengan semua spasi putih di depan dan belakang dihapus. |
String |
String Dengan semua ruang putih terkemuka dan tertinggal dihapus. |
Array | String Representasi dari Array menggunakan aturan konversi standar. |
Objek | String Representasi Object menggunakan aturan konversi standar. |
Null | Undefined . |
Tidak terdefinisi | Undefined . |
batang (Desimal, Int)
Memangkas argumen pertama ke jumlah Decimal
tempat yang ditentukan oleh argumen kedua. Jika argumen kedua kurang dari nol, itu diatur ke nol. Jika argumen kedua lebih besar dari 34, itu diatur ke 34. Trailing zeroes dilucuti dari hasilnya. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
trunc(2.3, 0)
= 2.
trunc(2.3123, 2)
= 2,31.
trunc(2.888, 2)
= 2,88.
trunc(2.00, 5)
= 2.
Tipe argumen 1 | Argumen tipe 2 | Hasil |
---|---|---|
Int |
Int |
Nilai sumbernya. |
Int /Decimal |
Int /Decimal |
Argumen pertama dipotong dengan panjang yang dijelaskan oleh argumen kedua. Argumen kedua, jika bukanInt , dibulatkan ke bawah ke yang terdekatInt . |
Int /Decimal /String |
Int /Decimal |
Argumen pertama dipotong dengan panjang yang dijelaskan oleh argumen kedua. Argumen kedua, jika bukanInt , dibulatkan ke bawah ke yang terdekatInt . A String dikonversi menjadi Decimal nilai. Jika konversi string gagal, hasilnya adalahUndefined . |
Nilai lainnya | Undefined . |
atas (String)
Mengembalikan versi huruf besar dari yang diberikan. String
String
Non-argumen dikonversi untuk String
menggunakan aturan konversi standar. Didukung oleh SQL versi 2015-10-08 dan yang lebih baru.
Contoh:
upper("hello")
= “HALO”
upper(["hello"])
= “[\" HALO\ "]”