ALIYUN::IOT::Rule digunakan untuk membuat aturan pada topik tertentu.
Sintaksis
{
"Type": "ALIYUN::IOT::Rule",
"Properties": {
"TopicType": Integer,
"IotInstanceId": String,
"ResourceGroupId": String,
"ShortTopic": String,
"Select": String,
"DataType": String,
"RuleDesc": String,
"Where": String,
"ProductKey": String,
"RuleAction": List,
"StartRule": Boolean,
"Name": String
}
}
Properti
| Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Batasan |
| TopicType | Integer | Tidak | Ya | Jenis topik. | Nilai yang valid:
|
| IotInstanceId | String | Tidak | Tidak | ID dari instance. | Parameter ini diperlukan untuk instance Edisi Perusahaan, tetapi tidak diperlukan untuk instance publik. |
| ResourceGroupId | String | Tidak | Tidak | ID dari grup sumber daya. | Tidak ada |
| ShortTopic | String | Tidak | Ya | Topik ke mana aturan diterapkan. | Format: ${deviceName}/topicShortName. ${deviceName} menunjukkan nama perangkat, dan topicShortName menunjukkan nama kustom topik. |
| Select | String | Tidak | Ya | Pernyataan SQL SELECT yang ingin Anda eksekusi. Untuk informasi lebih lanjut, lihat pernyataan SQL. | Atur parameter ini ke konten yang mengikuti kata kunci SELECT. Misalnya, jika pernyataan SELECT adalah SELECT a,b,c, atur parameter ini ke a,b,c. |
| DataType | String | Tidak | Tidak | Format data yang akan diproses oleh aturan. Nilai parameter ini harus sama dengan format data perangkat yang akan diproses. | Nilai default: JSON. Nilai yang valid:
|
| RuleDesc | String | Tidak | Ya | Deskripsi aturan. | Deskripsi dapat memiliki panjang hingga 100 karakter. |
| Where | String | Tidak | Ya | Kondisi yang digunakan untuk memicu aturan. Untuk informasi lebih lanjut, lihat pernyataan SQL. | Atur parameter ini ke konten yang mengikuti kata kunci WHERE. Misalnya, jika pernyataan WHERE adalah WHERE a>10, atur parameter ini ke a>10. |
| ProductKey | String | Tidak | Tidak | Pengenal unik produk tempat aturan berlaku. | Tidak ada |
| RuleAction | List | Tidak | Ya | Aksi aturan. | Untuk informasi lebih lanjut, lihat properti RuleAction. |
| StartRule | Boolean | Tidak | Ya | Menentukan apakah akan mengaktifkan aturan. | Nilai yang valid:
|
| Name | String | Ya | Ya | Nama aturan. | Nama harus memiliki panjang 1 hingga 30 byte dan dapat berisi huruf, angka, tanda hubung (-), dan garis bawah (_). |
Sintaksis RuleAction
"RuleAction": [
{
"ErrorActionFlag": String,
"Configuration": String,
"Type": String
}
]
Properti RuleAction
| Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Batasan |
| ErrorActionFlag | String | Tidak | Tidak | Menentukan apakah aksi aturan adalah untuk meneruskan data operasi kesalahan. Data operasi kesalahan dihasilkan ketika mesin aturan gagal meneruskan data dari topik IoT Platform ke layanan cloud tujuan. Kegagalan penerusan data menunjukkan bahwa percobaan ulang penerusan juga gagal. | Nilai yang valid:
|
| Configuration | String | Ya | Tidak | Konfigurasi aksi aturan. Atur nilainya menjadi string JSON. | Untuk informasi lebih lanjut, lihat CreateRuleAction. |
| Type | String | Ya | Tidak | Jenis aksi aturan. | Untuk informasi lebih lanjut, lihat CreateRuleAction. |
Parameter respons
Fn::GetAtt
- RuleId: ID aturan.
- ActionId: ID aksi aturan.
Contoh
JSON Format
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"TopicType": {
"Type": "Number",
"Description": "0: Topik adalah topik komunikasi dasar atau topik komunikasi berbasis TSL.\n1: Topik adalah topik kustom.\n2: Topik digunakan untuk mengirimkan perubahan status perangkat. Sintaksis: /as/mqtt/status/${productKey}/${deviceName}."
},
"IotInstanceId": {
"Type": "String",
"Description": "ID dari instance. Parameter ini tidak diperlukan untuk instance publik. Namun,\nparameter ini diperlukan untuk instance yang telah Anda beli."
},
"ResourceGroupId": {
"Type": "String",
"Description": "ID dari grup sumber daya ke mana aturan ditugaskan. Anda dapat melihat informasi grup sumber daya di konsol Manajemen Sumber Daya.\nJika Anda tidak menentukan parameter ini, aturan ditugaskan ke grup sumber daya default."
},
"RuleAction": {
"Type": "Json",
"Description": "",
"MinLength": 1,
"MaxLength": 10
},
"ShortTopic": {
"Type": "String",
"Description": "Topik ke mana aturan ini diterapkan. Sintaksis: ${deviceName}/topicShortName. ${deviceName}menentukan nama perangkat, dan topicShortNamemenentukan nama kustom topik.\nTopik komunikasi dasar atau topik komunikasi berbasis Thing Specification Language (TSL). Sintaksis: ${deviceName}/topicShortName. Anda dapat mengganti ${deviceName} dengan wildcard +. Wildcard tersebut menunjukkan bahwa topik berlaku untuk semua perangkat di bawah\nproduk. Nilai yang valid untuk topicShortName:\n/thing/event/property/post: mengirimkan data properti perangkat.\n/thing/event/${tsl.event.identifier}/post: mengirimkan data acara perangkat.${tsl.event.identifier} menentukan pengenal suatu acara dalam TSL.\n/thing/lifecycle: mengirimkan perubahan siklus hidup perangkat.\n/thing/downlink/reply/message: mengirimkan respons terhadap permintaan dari IoT Platform.\n/thing/list/found: mengirimkan data ketika gateway mendeteksi sub-perangkat baru.\n/thing/topo/lifecycle: mengirimkan perubahan topologi perangkat.\n/thing/event/property/history/post: mengirimkan data properti historis perangkat.\n/thing/event/${tsl.event.identifier}/post: mengirimkan data acara historis perangkat.${tsl.event.identifier}menentukan pengenal suatu acara dalam TSL.\n/ota/upgrade: mengirimkan status pembaruan OTA.\n/ota/version/post: mengirimkan versi modul OTA.\n/thing/deviceinfo/update: mengirimkan perubahan tag perangkat.\n/edge/driver/${driver_id}/point_post: mengirimkan data pass-through dari Link IoT Edge.${driver_id} menentukan ID driver yang digunakan perangkat untuk mengakses Link IoT Edge.\n${packageId}/${jobId}/ota/job/status: mengirimkan status batch pembaruan OTA. Topik ini adalah topik komunikasi dasar.\n${packageId}menentukan ID firmware. ${jobId}menentukan ID batch pembaruan.\nTopik kustom. Contoh:${deviceName}/user/get.\nAnda dapat memanggil operasi QueryProductTopic untuk melihat semua topik kustom produk.\nKetika Anda menentukan topik kustom, Anda dapat menggunakan wildcard + dan #.\nAnda dapat mengganti ${deviceName} dengan wildcard+. Wildcard tersebut menunjukkan bahwa topik berlaku untuk semua perangkat di bawah\nproduk.\nAnda dapat mengganti bidang-bidang setelah ${deviceName} dengan /user/#. Wildcard # menunjukkan bahwa topik berlaku apa pun nilai yang ditentukan untuk bidang-bidang yang\nmengikuti /user.\nUntuk informasi lebih lanjut tentang cara menggunakan wildcard, lihat Wildcards in topics.\nTopik yang digunakan untuk mengirimkan perubahan status perangkat: ${deviceName}.\nAnda dapat menggunakan wildcard+. Dalam hal ini, perubahan status semua perangkat di bawah produk dikirimkan."
},
"Select": {
"Type": "String",
"Description": "Pernyataan SQL SELECT yang ingin Anda eksekusi. Untuk informasi lebih lanjut, lihatEkspresi SQL.\nCatatan Tentukan bidang-bidang yang mengikuti kata kunci Select untuk parameter ini. Misalnya, jika pernyataan Select adalah Select a,b,c, tentukan a,b,c untuk parameter ini."
},
"StartRule": {
"Type": "Boolean",
"Description": "Mulai aturan. Aturan minimal berisi satu aksi aturan dengan penerusan data normal. ",
"AllowedValues": [
"True",
"true",
"False",
"false"
]
},
"DataType": {
"Type": "String",
"Description": "Format data yang akan diproses oleh aturan. Anda harus menentukan format\ndata perangkat yang akan diproses untuk parameter ini. Nilai yang valid:\nJSON: data JSON\nBINARY: data biner\nCatatan Jika Anda menentukanBINARY, Anda tidak dapat mengatur parameter TopicType ke 0 dan meneruskan data ke Table Store, Time Series Database (TSDB), atau ApsaradDB\nuntuk RDS.\nNilai default: JSON.",
"AllowedValues": [
"BINARY",
"JSON"
]
},
"RuleDesc": {
"Type": "String",
"Description": "Deskripsi aturan. Deskripsi dapat memiliki panjang hingga 100 karakter.\nSetiap simbol Cina menempati 1 karakter."
},
"Where": {
"Type": "String",
"Description": "Kondisi yang digunakan untuk memicu aturan. Untuk informasi lebih lanjut, lihatEkspresi SQL.\nCatatan Tentukan bidang-bidang yang mengikuti kata kunciWhereuntuk parameter ini. Misalnya, jika pernyataan Where adalah Where a>10, tentukan a>10 untuk parameter ini."
},
"ProductKey": {
"Type": "String",
"Description": "ProductKey dari produk tempat aturan berlaku."
},
"Name": {
"Type": "String",
"Description": "Nama aturan. Nama harus memiliki panjang 1 hingga 30 karakter dan dapat berisi\nhuruf Inggris, angka, garis bawah (_), dan tanda hubung (-). Bahasa Cina juga\ndidukung. Setiap simbol Cina menempati 2 karakter."
}
},
"Resources": {
"Rule": {
"Type": "ALIYUN::IOT::Rule",
"Properties": {
"TopicType": {
"Ref": "TopicType"
},
"IotInstanceId": {
"Ref": "IotInstanceId"
},
"ResourceGroupId": {
"Ref": "ResourceGroupId"
},
"RuleAction": {
"Ref": "RuleAction"
},
"ShortTopic": {
"Ref": "ShortTopic"
},
"Select": {
"Ref": "Select"
},
"StartRule": {
"Ref": "StartRule"
},
"DataType": {
"Ref": "DataType"
},
"RuleDesc": {
"Ref": "RuleDesc"
},
"Where": {
"Ref": "Where"
},
"ProductKey": {
"Ref": "ProductKey"
},
"Name": {
"Ref": "Name"
}
}
}
},
"Outputs": {
"ActionId": {
"Description": "ID dari aksi aturan. ",
"Value": {
"Fn::GetAtt": [
"Rule",
"ActionId"
]
}
},
"RuleId": {
"Description": "ID dari aturan. ",
"Value": {
"Fn::GetAtt": [
"Rule",
"RuleId"
]
}
}
}
}
YAML Format
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
TopicType:
Type: Number
Description: >-
0: Topik adalah topik komunikasi dasar atau topik komunikasi berbasis TSL.
1: Topik adalah topik kustom.
2: Topik digunakan untuk mengirimkan perubahan status perangkat. Sintaksis:
/as/mqtt/status/${productKey}/${deviceName}.
IotInstanceId:
Type: String
Description: >-
ID dari instance. Parameter ini tidak diperlukan untuk instance publik.
Namun,
parameter ini diperlukan untuk instance yang telah Anda beli.
ResourceGroupId:
Type: String
Description: >-
ID dari grup sumber daya ke mana aturan ditugaskan. Anda dapat melihat
informasi grup sumber daya
di konsol Manajemen Sumber Daya.
Jika Anda tidak menentukan parameter ini, aturan ditugaskan ke grup sumber daya
default.
RuleAction:
Type: Json
Description: ''
MinLength: 1
MaxLength: 10
ShortTopic:
Type: String
Description: >-
Topik ke mana aturan ini diterapkan. Sintaksis:
${deviceName}/topicShortName. ${deviceName}menentukan nama perangkat, dan topicShortNamemenentukan nama kustom topik.
Topik komunikasi dasar atau topik komunikasi berbasis Thing Specification Language (TSL).
Sintaksis: ${deviceName}/topicShortName. Anda dapat mengganti
${deviceName} dengan wildcard +. Wildcard tersebut menunjukkan bahwa topik
berlaku untuk semua perangkat di bawah
produk. Nilai yang valid untuk topicShortName:
/thing/event/property/post: mengirimkan data properti perangkat.
/thing/event/${tsl.event.identifier}/post: mengirimkan data acara perangkat.${tsl.event.identifier} menentukan pengenal suatu acara dalam TSL.
/thing/lifecycle: mengirimkan perubahan siklus hidup perangkat.
/thing/downlink/reply/message: mengirimkan respons terhadap permintaan dari IoT
Platform.
/thing/list/found: mengirimkan data ketika gateway mendeteksi sub-perangkat baru.
/thing/topo/lifecycle: mengirimkan perubahan topologi perangkat.
/thing/event/property/history/post: mengirimkan data properti historis perangkat.
/thing/event/${tsl.event.identifier}/post: mengirimkan data acara historis perangkat.${tsl.event.identifier}menentukan pengenal suatu acara dalam TSL.
/ota/upgrade: mengirimkan status pembaruan OTA.
/ota/version/post: mengirimkan versi modul OTA.
/thing/deviceinfo/update: mengirimkan perubahan tag perangkat.
/edge/driver/${driver_id}/point_post: mengirimkan data pass-through dari Link
IoT Edge.${driver_id} menentukan ID driver yang digunakan perangkat untuk mengakses Link IoT Edge.
${packageId}/${jobId}/ota/job/status: mengirimkan status batch pembaruan OTA. Topik ini adalah topik komunikasi dasar.
${packageId}menentukan ID firmware. ${jobId}menentukan ID batch pembaruan.
Topik kustom. Contoh:${deviceName}/user/get.
Anda dapat memanggil operasiQueryProductTopic untuk melihat semua topik kustom produk.
Ketika Anda menentukan topik kustom, Anda dapat menggunakan wildcard + dan #.
Anda dapat mengganti ${deviceName} dengan wildcard+. Wildcard tersebut menunjukkan bahwa topik berlaku untuk semua perangkat di bawah
produk.
Anda dapat mengganti bidang-bidang setelah ${deviceName} dengan /user/#. Wildcard # menunjukkan bahwa topik berlaku apa pun nilai yang ditentukan untuk bidang-bidang yang
mengikuti/user.
Untuk informasi lebih lanjut tentang cara menggunakan wildcard, lihat Wildcards in topics.
Topik yang digunakan untuk mengirimkan perubahan status perangkat: ${deviceName}.
Anda dapat menggunakan wildcard+. Dalam hal ini, perubahan status semua perangkat di bawah produk dikirimkan.
Select:
Type: String
Description: >-
Pernyataan SQL SELECT yang ingin Anda eksekusi. Untuk informasi lebih lanjut,
lihatEkspresi SQL.
Catatan Tentukan bidang-bidang yang mengikuti kata kunci Select untuk parameter ini.
Misalnya, jika pernyataan Select adalah Select a,b,c, tentukan a,b,c untuk
parameter ini.
StartRule:
Type: Boolean
Description: >-
Mulai aturan. Aturan minimal berisi satu aksi aturan dengan penerusan data normal.
AllowedValues:
- 'True'
- 'true'
- 'False'
- 'false'
DataType:
Type: String
Description: >-
Format data yang akan diproses oleh aturan. Anda harus menentukan format
data perangkat yang akan diproses untuk parameter ini. Nilai yang valid:
JSON: data JSON
BINARY: data biner
Catatan Jika Anda menentukanBINARY, Anda tidak dapat mengatur parameter TopicType ke 0 dan
meneruskan data ke Table Store, Time Series Database (TSDB), atau ApsaradDB
untuk RDS.
Nilai default: JSON.
AllowedValues:
- BINARY
- JSON
RuleDesc:
Type: String
Description: >-
Deskripsi aturan. Deskripsi dapat memiliki panjang hingga 100 karakter.
Setiap simbol Cina menempati 1 karakter.
Where:
Type: String
Description: >-
Kondisi yang digunakan untuk memicu aturan. Untuk informasi lebih lanjut,
lihatEkspresi SQL.
Catatan Tentukan bidang-bidang yang mengikuti kata kunciWhereuntuk parameter ini.
Misalnya, jika pernyataan Where adalah Where a>10, tentukan a>10 untuk parameter ini.
ProductKey:
Type: String
Description: ProductKey dari produk tempat aturan berlaku.
Name:
Type: String
Description: >-
Nama aturan. Nama harus memiliki panjang 1 hingga 30 karakter dan dapat berisi
huruf Inggris, angka, garis bawah (_), dan tanda hubung (-). Bahasa Cina juga
didukung. Setiap simbol Cina menempati 2 karakter.
Resources:
Rule:
Type: 'ALIYUN::IOT::Rule'
Properties:
TopicType:
Ref:TopicType
IotInstanceId:
Ref: IotInstanceId
ResourceGroupId:
Ref: ResourceGroupId
RuleAction:
Ref: RuleAction
ShortTopic:
Ref: ShortTopic
Select:
Ref: Select
StartRule:
Ref: StartRule
DataType:
Ref: DataType
RuleDesc:
Ref: RuleDesc
Where:
Ref: Where
ProductKey:
Ref: ProductKey
Name:
Ref: Name
Outputs:
ActionId:
Description: 'ID dari aksi aturan. '
Value:
'Fn::GetAtt':
- Rule
- ActionId
RuleId:
Description: 'ID dari aturan. '
Value:
'Fn::GetAtt':
- Rule
- RuleId