Membuat aksi aturan untuk aturan tertentu guna meneruskan data yang telah diproses dari suatu topik ke topik lain atau ke layanan Alibaba Cloud yang didukung.
Batasan
- Layanan Alibaba Cloud tujuan yang didukung oleh mesin aturan bervariasi berdasarkan wilayah. Untuk informasi selengkapnya mengenai wilayah dan layanan cloud tujuan yang didukung oleh mesin aturan, lihat Regions and zones.
Anda dapat membuat maksimal 10 aksi aturan untuk setiap aturan.
- Anda dapat memanggil operasi API ini untuk menentukan aksi aturan guna meneruskan data ke topik Platform IoT, kelompok konsumen AMQP, atau layanan Alibaba Cloud. Layanan Alibaba Cloud yang didukung mencakup Message Service (MNS), Function Compute, dan Tablestore. Jika perlu meneruskan data ke ApsaraDB RDS, Anda harus menggunakan IoT Platform console.
- Setiap Akun Alibaba Cloud dapat menjalankan maksimal 50 permintaan per detik (QPS).Catatan Pengguna RAM dari suatu Akun Alibaba Cloud berbagi kuota akun tersebut.
Debugging
Parameter permintaan
| Parameter | Tipe | Wajib | Contoh | Deskripsi |
| Action | String | Ya | CreateRuleAction | Operasi yang ingin Anda lakukan. Tetapkan nilainya ke CreateRuleAction. |
| Configuration | String | Ya | null | Konfigurasi aksi aturan. Anda harus menentukan sebuah string JSON. Konfigurasi ini berbeda-beda tergantung pada jenis aksi aturan. Untuk informasi lebih lanjut mengenai sintaks yang diperlukan dan contohnya, lihat tabel-tabel berikut. |
| RuleId | Long | Ya | 100000 | ID aturan yang ingin Anda buat aksinya. Anda dapat login ke Konsol IoT Platform, , lalu pilih Rules > Data Forwarding untuk melihat ID aturan tersebut. Anda juga dapat memanggil operasi ListRule dan melihat ID aturan dalam respons. |
| Type | String | Ya | REPUBLISH | Jenis aksi aturan. Nilai yang valid:
Catatan Jika Anda mengatur parameter DataType ke BINARY, aturan akan dibuat dalam format biner. Aturan tersebut tidak dapat digunakan untuk meneruskan data ke Tablestore. |
| IotInstanceId | String | Tidak | iot-cn-0pp1n8t**** | ID instans. Anda dapat melihat ID instans pada halaman Overview di Konsol IoT Platform. Penting
Untuk informasi selengkapnya, lihat Overview. |
| ErrorActionFlag | Boolean | Tidak | false | Menentukan apakah aksi aturan meneruskan data operasi error. Data operasi error dihasilkan ketika mesin aturan gagal meneruskan data dari Topik IoT Platform ke layanan cloud tujuan. Kegagalan penerusan data menunjukkan bahwa upaya pengiriman ulang juga gagal. Nilai yang valid:
Nilai default: false. |
Parameter | Deskripsi |
topic | Topik tujuan. Anda dapat menentukan topik komunikasi Thing Specification Language (TSL) atau topik kustom. Anda dapat meneruskan data ke topik komunikasi TSL downstream berikut: /sys/${YourProductKey}/${YourDeviceName}/thing/service/property/set/sys/${YourProductKey}/${YourDeviceName}/thing/service/${tsl.service.identifier}Ganti variabel ${tsl.service.identifier} dengan identifier layanan yang didefinisikan dalam model TSL. |
topicType | Jenis topik. Nilai yang valid: 0: topik komunikasi TSL downstream. 1: topik kustom. |
Contoh
Topik sistem: {"topic":"/sys/a1TXXXXXWSN/xxx_cache001/thing/service/property/set","topicType":0}
Topik kustom: {"topic":"/a1TXXXXXWSN/xxx_cache001/user/update","topicType":1}
Konfigurasi tipe DATAHUBParameter | Deskripsi |
projectName | Nama proyek DataHub yang digunakan untuk menerima data. |
topicName | Nama topik DataHub yang digunakan untuk menerima data. |
regionName | Kode wilayah tempat DataHub dideploy. Contoh: cn-shanghai. |
role | Informasi mengenai peran RAM. Anda dapat memberikan akses Platform IoT ke DataHub dengan menetapkan peran layanan ke Platform IoT. Sintaks peran RAM: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingdatahubrole","roleName": "AliyunIOTAccessingDataHubRole"}Ganti
|
schemaVals | Skema DataHub. Untuk informasi selengkapnya, lihat tabel SchemaVals berikut. |
schemaVals
Parameter | Deskripsi |
name | Nama kolom. |
value | Nilai kolom. |
type | Tipe data kolom. Nilai yang valid: BIGINT: bilangan bulat besar DOUBLE: float presisi ganda BOOLEAN: Boolean. TIMESTAMP: timestamp. STRING: string. DECIMAL: desimal. |
Contoh
{
"schemaVals": [
{
"name": "devicename",
"value": "${deviceName}",
"type": "STRING"
},
{
"name": "msgtime",
"value": "${msgTime}",
"type": "TIMESTAMP"
}
],
"role": {
"roleArn": "acs:ram::6541***:role/aliyuniotaccessingdatahubrole",
"roleName": "AliyunIOTAccessingDataHubRole"
},
"projectName": "iot_datahub_stream",
"topicName": "device_message",
"regionName": "cn-shanghai"
}
Konfigurasi tipe OTSParameter | Deskripsi |
instanceName | Nama instans Tablestore yang digunakan untuk menerima data. |
tableName | Nama tabel yang digunakan untuk menerima data. |
regionName | Kode wilayah tempat Tablestore dideploy. Contoh: cn-shanghai. |
role | Informasi mengenai peran RAM. Anda dapat memberikan akses Platform IoT ke Tablestore dengan menetapkan peran layanan ke Platform IoT. Sintaks peran RAM: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingotsrole","roleName": "AliyunIOTAccessingOTSRole"}Ganti
|
primaryKeys | Daftar primary key pada tabel tujuan. Untuk informasi selengkapnya, lihat tabel PrimaryKeys berikut. |
PrimaryKeys
Parameter | Deskripsi |
columnType | Tipe data primary key. Nilai yang valid: INTEGER: integer STRING: string BINARY: binary |
columnName | Nama primary key. |
columnValue | Nilai primary key. |
option | Menentukan apakah primary key merupakan kolom auto-increment. Anda dapat menyetel parameter ini ke AUTO_INCREMENT atau membiarkannya kosong. Primary key merupakan kolom auto-increment jika parameter columnType dan option masing-masing disetel ke INTEGER dan AUTO_INCREMENT. |
Contoh
{
"instanceName": "testaaa",
"tableName": "tt",
"primaryKeys": [
{
"columnType": "STRING",
"columnName": "ttt",
"columnValue": "${tt}",
"option": ""
},
{
"columnType": "INTEGER",
"columnName": "id",
"columnValue": "",
"option": "AUTO_INCREMENT"
}
],
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingotsrole",
"roleName": "AliyunIOTAccessingOTSRole"
}
}
Konfigurasi tipe MNSParameter | Deskripsi |
themeName | Nama topik MNS yang digunakan untuk menerima data. |
regionName | Kode wilayah tempat MNS dideploy. Contoh: cn-shanghai. |
role | Informasi mengenai peran RAM. Untuk memberikan akses Platform IoT ke MNS, Anda dapat menetapkan peran layanan ke Platform IoT. Sintaks peran RAM: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"}Ganti
|
Contoh
{
"themeName": "mns-test-topic1",
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",
"roleName": "AliyunIOTAccessingMNSRole"
}
}
Konfigurasi tipe FCParameter | Deskripsi |
functionName | Nama fungsi yang digunakan untuk menerima data. |
serviceName | Nama layanan yang digunakan untuk menerima data. |
regionName | Kode wilayah tempat Function Compute dideploy. Contoh: cn-shanghai. |
role | Informasi mengenai peran RAM. Anda dapat memberikan akses Platform IoT ke Function Compute dengan menetapkan peran layanan ke Platform IoT. Sintaks peran RAM: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingfcrole","roleName": "AliyunIOTAccessingFCRole"}Ganti
|
Contoh
{
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingfcrole",
"roleName": "AliyunIOTAccessingFCRole"
},
"functionName": "weatherForecast",
"serviceName": "weather"
}
Konfigurasi tipe ONSParameter | Deskripsi |
instanceId | ID instans Message Queue for Apache RocketMQ yang digunakan untuk menerima data. |
topic | Nama topik Message Queue for Apache RocketMQ yang digunakan untuk menerima data. |
regionName | Kode wilayah tempat Message Queue for Apache RocketMQ dideploy. Contoh: cn-shanghai. Untuk meneruskan data melalui Internet dalam zona yang sama, Anda dapat menggunakan instans Message Queue for Apache RocketMQ umum. Untuk meneruskan data lintas zona, Anda harus menggunakan instans Message Queue for Apache RocketMQ Platinum Edition. |
tag | Opsional. Tag. Panjang tag tidak boleh melebihi 128 byte. |
role | Informasi mengenai peran RAM. Anda dapat memberikan akses Platform IoT ke Message Queue for Apache RocketMQ dengan menetapkan peran layanan ke Platform IoT. Sintaks peran RAM: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingonsrole","roleName": "AliyunIOTAccessingONSRole"}Ganti
|
Contoh
{
"instanceId": "MQ_INST_123157908552****_XXXXXX"
"topic": "aliyun-iot-XXXXX",
"regionName": "cn-hangzhou",
"role": {
"roleArn": "acs:ram::6541***:role/aliyuniotaccessingonsrole",
"roleName": "AliyunIOTAccessingONSRole"
}
}
Konfigurasi tipe AMQPParameter | Deskripsi |
groupId | ID kelompok konsumen. |
Contoh
{
"groupId":"ZTh1JmyLGuZcUfv44p4z00****"
}
Selain parameter permintaan spesifik operasi di atas, Anda harus menentukan parameter permintaan umum saat memanggil operasi ini. Untuk informasi selengkapnya, lihat Common request parameters.
Parameter respons
| Parameter | Tipe | Contoh | Deskripsi |
| ActionId | Long | 10003 | ID dari aksi tersebut. ID aksi dihasilkan oleh rules engine jika panggilan berhasil. Catatan Amankan informasi ini untuk referensi di masa mendatang. Saat Anda memanggil operasi yang terkait dengan rule action, Anda harus menyediakan action ID tersebut. |
| Code | String | iot.system.SystemException | Kode kesalahan yang dikembalikan jika panggilan gagal. Untuk informasi selengkapnya, lihat Error codes. |
| ErrorMessage | String | A system exception occurred. | Pesan error yang dikembalikan jika panggilan gagal. |
| RequestId | String | 21D327AF-A7DE-4E59-B5D1-ACAC8C024555 | ID dari permintaan tersebut. |
| Success | Boolean | true | Menunjukkan apakah panggilan berhasil atau tidak.
|
Contoh
Contoh permintaan
https://iot.cn-shanghai.aliyuncs.com/?Action=CreateRuleAction
&RuleId=100000
&Type=REPUBLISH
&Configuration={"topic":"/a1POX0c****/device1/user/get","topicType":1}
&<Common request parameters>Contoh respons sukses
XML format
<CreateRuleActionResponse>
<RequestId>21D327AF-A7DE-4E59-B5D1-ACAC8C024555</RequestId>
<ActionId>10003</ActionId>
<Success>true</Success>
</CreateRuleActionResponse>JSON format
{
"RequestId": "21D327AF-A7DE-4E59-B5D1-ACAC8C024555",
"ActionId": 10003,
"Success": true
}Kode kesalahan
Untuk daftar kode kesalahan, kunjungi API Error Center.