All Products
Search
Document Center

Resource Orchestration Service:ALIYUN::IOT::Rule

Last Updated:Jul 06, 2025

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:
  • 0: topik komunikasi berbasis Thing Specification Language (TSL) atau topik komunikasi dasar yang ditentukan dalam parameter ShortTopic, seperti topik yang digunakan untuk mengirimkan status batch pembaruan OTA.
  • 1: topik kustom.
  • 2: topik yang digunakan untuk mengirimkan perubahan status perangkat. Format: /as/mqtt/status/${productKey}/${deviceName}.
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:
  • JSON
  • BINARY
    Catatan Jika Anda mengatur parameter ini ke BINARY, Anda tidak dapat mengatur parameter TopicType ke 0 atau meneruskan data ke penyimpanan data seri waktu di instance, Time Series Database (TSDB), Tablestore, atau ApsaraDB RDS.
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:
  • true
  • false
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:
  • true
  • false
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