ALIYUN::IOT::Rule は、特定のトピックのルールを作成するために使用されます。
構文
{
"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
}
}
プロパティ
| プロパティ | タイプ | 必須 | 編集可能 | 説明 | 制約 |
| TopicType | Integer | いいえ | はい | トピックのタイプ。 | 有効な値:
|
| IotInstanceId | String | いいえ | いいえ | インスタンスの ID。 | このパラメーターは Enterprise Edition インスタンスでは必須ですが、パブリックインスタンスでは必須ではありません。 |
| ResourceGroupId | String | いいえ | いいえ | リソースグループの ID。 | なし |
| ShortTopic | String | いいえ | はい | ルールが適用されるトピック。 | 形式: ${deviceName}/topicShortName。${deviceName} はデバイスの名前を示し、topicShortName はトピックのカスタム名を示します。 |
| Select | String | いいえ | はい | 実行する SQL SELECT ステートメント。詳細については、「SQL ステートメント」をご参照ください。 | このパラメーターを SELECT キーワードの後に続くコンテンツに設定します。たとえば、SELECT ステートメントが SELECT a,b,c の場合、このパラメーターを a,b,c に設定します。 |
| DataType | String | いいえ | いいえ | ルールによって処理されるデータの形式。このパラメーターの値は、処理されるデバイスデータの形式と同じである必要があります。 | デフォルト値: JSON。有効な値:
|
| RuleDesc | String | いいえ | はい | ルールの説明。 | 説明は最大 100 文字です。 |
| Where | String | いいえ | はい | ルールをトリガーするために使用される条件。詳細については、「SQL ステートメント」をご参照ください。 | このパラメーターを WHERE キーワードの後に続くコンテンツに設定します。たとえば、WHERE ステートメントが WHERE a>10 の場合、このパラメーターを a>10 に設定します。 |
| ProductKey | String | いいえ | いいえ | ルールが適用される製品の一意の識別子。 | なし |
| RuleAction | List | いいえ | はい | ルールアクション。 | 詳細については、「RuleAction プロパティ」をご参照ください。 |
| StartRule | Boolean | いいえ | はい | ルールを有効にするかどうかを指定します。 | 有効な値:
|
| Name | String | はい | はい | ルールの名前。 | 名前は 1 ~ 30 バイトの長さで、文字、数字、ハイフン(-)、アンダースコア(_)を含めることができます。 |
RuleAction 構文
"RuleAction": [
{
"ErrorActionFlag": String,
"Configuration": String,
"Type": String
}
]
RuleAction プロパティ
| プロパティ | タイプ | 必須 | 編集可能 | 説明 | 制約 |
| ErrorActionFlag | String | いいえ | いいえ | ルールアクションがエラー操作データを転送するかどうかを指定します。エラー操作データは、ルールエンジンが IoT Platform トピックから宛先クラウドサービスにデータを転送できなかった場合に生成されます。データ転送の失敗は、転送の再試行も失敗したことを示します。 | 有効な値:
|
| Configuration | String | はい | いいえ | ルールアクションの構成。値を JSON 文字列に設定します。 | 詳細については、「CreateRuleAction」をご参照ください。 |
| Type | String | はい | いいえ | ルールアクションのタイプ。 | 詳細については、「CreateRuleAction」をご参照ください。 |
レスポンスパラメーター
Fn::GetAtt
- RuleId: ルールの ID。
- ActionId: ルールアクションの ID。
例
JSON 形式
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"TopicType": {
"Type": "Number",
"Description": "0: トピックは基本的な通信トピックまたは TSL ベースの通信トピックです。\n1: トピックはカスタムトピックです。\n2: トピックはデバイスのステータス変更を送信するために使用されます。構文:/as/mqtt/status/${productKey}/${deviceName}。" // 翻訳済
},
"IotInstanceId": {
"Type": "String",
"Description": "インスタンスの ID。このパラメーターはパブリックインスタンスには必要ありません。ただし、\n購入したインスタンスにはこのパラメーターが必要です。" // 翻訳済
},
"ResourceGroupId": {
"Type": "String",
"Description": "ルールが割り当てられるリソースグループの ID。リソース\nグループ情報はリソース管理コンソールで確認できます。\nこのパラメーターを指定しない場合、ルールはデフォルトのリソース\nグループに割り当てられます。" // 翻訳済
},
"RuleAction": {
"Type": "Json",
"Description": "",
"MinLength": 1,
"MaxLength": 10
},
"ShortTopic": {
"Type": "String",
"Description": "このルールが適用されるトピック。構文:${deviceName}/topicShortName。${deviceName} はデバイスの名前を指定し、topicShortName はトピックのカスタム名を指定します。\n基本的な通信トピックまたは Thing Specification Language(TSL)ベースの通信\nトピック。構文:${deviceName}/topicShortName。${deviceName} をワイルドカード + に置き換えることができます。ワイルドカードは、トピックが製品下のすべてのデバイスに適用されることを示します。topicShortName の有効な値:\n/thing/event/property/post:デバイスのプロパティデータを送信します。\n/thing/event/${tsl.event.identifier}/post:デバイスのイベントデータを送信します。${tsl.event.identifier} は TSL のイベントの識別子を指定します。\n/thing/lifecycle:デバイスのライフサイクルの変更を送信します。\n/thing/downlink/reply/message:IoT Platform からの要求への応答を送信します。\n/thing/list/found:ゲートウェイが新しいサブデバイスを検出したときにデータを送信します。\n/thing/topo/lifecycle:デバイスのトポロジの変更を送信します。\n/thing/event/property/history/post:デバイスの履歴プロパティデータを送信します。\n/thing/event/${tsl.event.identifier}/post:デバイスの履歴イベントデータを送信します。${tsl.event.identifier} は TSL のイベントの識別子を指定します。\n/ota/upgrade:OTA アップデートステータスを送信します。\n/ota/version/post:OTA モジュールバージョンを送信します。\n/thing/deviceinfo/update:デバイスタグの変更を送信します。\n/edge/driver/${driver_id}/point_post:Link IoT Edge からパススルーデータを送信します。${driver_id} は、デバイスが Link IoT Edge にアクセスするために使用するドライバーの ID を指定します。\n${packageId}/${jobId}/ota/job/status:OTA アップデートバッチのステータスを送信します。このトピックは基本的な通信トピックです。\n${packageId} はファームウェアの ID を指定します。${jobId} はアップデートバッチの ID を指定します。\nカスタムトピック。例:${deviceName}/user/get。\nQueryProductTopicoperation を呼び出して、製品のすべてのカスタムトピックを表示できます。\nカスタムトピックを指定する場合、+ および # ワイルドカードを使用できます。\n${deviceName} を + ワイルドカードに置き換えることができます。ワイルドカードは、トピックが製品下のすべてのデバイスに適用されることを示します。\n${deviceName} の後に続くフィールドを /user/# に置き換えることができます。# ワイルドカードは、/user の後に続くフィールドに指定されている値に関係なく、トピックが適用されることを示します。\nワイルドカードの使用方法の詳細については、「トピックのワイルドカード」を参照してください。\nデバイスのステータス変更を送信するために使用されるトピック:${deviceName}。\n+ ワイルドカードを使用できます。この場合、製品下のすべてのデバイスのステータス変更が送信されます。" // 翻訳済
},
"Select": {
"Type": "String",
"Description": "実行する SQL SELECT ステートメント。詳細については、「SQL 式」を参照してください。\n注:このパラメーターには、Select キーワードの後に続くフィールドを指定します。たとえば、Select ステートメントが Select a,b,c の場合、このパラメーターには a,b,c を指定します。" // 翻訳済
},
"StartRule": {
"Type": "Boolean",
"Description": "ルールを開始します。ルールには、少なくとも 1 つの通常のデータ転送を行うルールアクションが含まれています。", // 翻訳済
"AllowedValues": [
"True",
"true",
"False",
"false"
]
},
"DataType": {
"Type": "String",
"Description": "ルールによって処理されるデータの形式。このパラメーターには、処理される\nデバイスデータの形式を指定する必要があります。有効な値:\nJSON:JSON データ\nBINARY:バイナリデータ\n注:BINARY を指定した場合、TopicType パラメーターを 0 に設定したり、Table Store、Time Series Database(TSDB)、または ApsaradDB for RDS にデータを転送したりすることはできません。\nデフォルト値:JSON。" // 翻訳済
},
"RuleDesc": {
"Type": "String",
"Description": "ルールの説明。説明は最大 100 文字です。\n各中国語の記号は 1 文字を占めます。" // 翻訳済
},
"Where": {
"Type": "String",
"Description": "ルールをトリガーするために使用される条件。詳細については、「SQL 式」を参照してください。\n注:このパラメーターには、Where キーワードの後に続くフィールドを指定します。たとえば、Where ステートメントが Where a>10 の場合、このパラメーターには a>10 を指定します。" // 翻訳済
},
"ProductKey": {
"Type": "String",
"Description": "ルールが適用される製品の ProductKey。" // 翻訳済
},
"Name": {
"Type": "String",
"Description": "ルールの名前。名前は 1 ~ 30 文字の長さで、英字、数字、アンダースコア(_)、ハイフン(-)を含めることができます。中国語も\nサポートされています。各中国語の記号は 2 文字を占めます。" // 翻訳済
}
},
"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。", // 翻訳済
"Value": {
"Fn::GetAtt": [
"Rule",
"ActionId"
]
}
},
"RuleId": {
"Description": "ルールの ID。", // 翻訳済
"Value": {
"Fn::GetAtt": [
"Rule",
"RuleId"
]
}
}
}
}
YAML 形式
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
TopicType:
Type: Number
Description: >-
0: トピックは基本的な通信トピックまたは TSL ベースの通信トピックです。
1: トピックはカスタムトピックです。
2: トピックはデバイスのステータス変更を送信するために使用されます。構文:/as/mqtt/status/${productKey}/${deviceName}。
IotInstanceId:
Type: String
Description: >-
インスタンスの ID。このパラメーターはパブリックインスタンスには必要ありません。ただし、
購入したインスタンスにはこのパラメーターが必要です。
ResourceGroupId:
Type: String
Description: >-
ルールが割り当てられるリソースグループの ID。リソース
グループ情報はリソース管理コンソールで確認できます。
このパラメーターを指定しない場合、ルールはデフォルトのリソース
グループに割り当てられます。
RuleAction:
Type: Json
Description: ''
MinLength: 1
MaxLength: 10
ShortTopic:
Type: String
Description: >-
このルールが適用されるトピック。構文:${deviceName}/topicShortName。${deviceName} はデバイスの名前を指定し、topicShortName はトピックのカスタム名を指定します。
基本的な通信トピックまたは Thing Specification Language(TSL)ベースの通信
トピック。構文:${deviceName}/topicShortName。${deviceName} をワイルドカード + に置き換えることができます。ワイルドカードは、トピックが製品下のすべてのデバイスに適用されることを示します。
product. Valid values of topicShortName:
/thing/event/property/post:デバイスのプロパティデータを送信します。
/thing/event/${tsl.event.identifier}/post:デバイスのイベントデータを送信します。${tsl.event.identifier} は TSL のイベントの識別子を指定します。
/thing/lifecycle:デバイスのライフサイクルの変更を送信します。
/thing/downlink/reply/message:IoT Platform からの要求への応答を送信します。
/thing/list/found:ゲートウェイが新しいサブデバイスを検出したときにデータを送信します。
/thing/topo/lifecycle:デバイスのトポロジの変更を送信します。
/thing/event/property/history/post:デバイスの履歴プロパティデータを送信します。
/thing/event/${tsl.event.identifier}/post:デバイスの履歴イベントデータを送信します。${tsl.event.identifier} は TSL のイベントの識別子を指定します。
/ota/upgrade:OTA アップデートステータスを送信します。
/ota/version/post:OTA モジュールバージョンを送信します。
/thing/deviceinfo/update:デバイスタグの変更を送信します。
/edge/driver/${driver_id}/point_post:Link IoT Edge からパススルーデータを送信します。${driver_id} は、デバイスが Link IoT Edge にアクセスするために使用するドライバーの ID を指定します。
${packageId}/${jobId}/ota/job/status:OTA アップデートバッチのステータスを送信します。このトピックは基本的な通信トピックです。
${packageId} はファームウェアの ID を指定します。${jobId} はアップデートバッチの ID を指定します。
カスタムトピック。例:${deviceName}/user/get。
QueryProductTopicoperation を呼び出して、製品のすべてのカスタムトピックを表示できます。
カスタムトピックを指定する場合、+ および # ワイルドカードを使用できます。
${deviceName} を + ワイルドカードに置き換えることができます。ワイルドカードは、トピックが製品下のすべてのデバイスに適用されることを示します。
${deviceName} の後に続くフィールドを /user/# に置き換えることができます。# ワイルドカードは、/user の後に続くフィールドに指定されている値に関係なく、トピックが適用されることを示します。
ワイルドカードの使用方法の詳細については、「トピックのワイルドカード」を参照してください。
デバイスのステータス変更を送信するために使用されるトピック:${deviceName}。
+ ワイルドカードを使用できます。この場合、製品下のすべてのデバイスのステータス変更が送信されます。
Select:
Type: String
Description: >-
実行する SQL SELECT ステートメント。詳細については、「SQL 式」を参照してください。
注:このパラメーターには、Select キーワードの後に続くフィールドを指定します。たとえば、Select ステートメントが Select a,b,c の場合、このパラメーターには a,b,c を指定します。
StartRule:
Type: Boolean
Description: >-
ルールを開始します。ルールには、少なくとも 1 つの通常のデータ転送を行うルールアクションが含まれています。
AllowedValues:
- 'True'
- 'true'
- 'False'
- 'false'
DataType:
Type: String
Description: >-
ルールによって処理されるデータの形式。このパラメーターには、処理される
デバイスデータの形式を指定する必要があります。有効な値:
JSON:JSON データ
BINARY:バイナリデータ
注:BINARY を指定した場合、TopicType パラメーターを 0 に設定したり、Table Store、Time Series Database(TSDB)、または ApsaradDB
for RDS にデータを転送したりすることはできません。
デフォルト値:JSON。
AllowedValues:
- BINARY
- JSON
RuleDesc:
Type: String
Description: >-
ルールの説明。説明は最大 100 文字です。
各中国語の記号は 1 文字を占めます。
Where:
Type: String
Description: >-
ルールをトリガーするために使用される条件。詳細については、「SQL 式」を参照してください。
注:このパラメーターには、Where キーワードの後に続くフィールドを指定します。たとえば、Where ステートメントが Where a>10 の場合、このパラメーターには a>10 を指定します。
ProductKey:
Type: String
Description: ルールが適用される製品の ProductKey。
Name:
Type: String
Description: >-
ルールの名前。名前は 1 ~ 30 文字の長さで、英字、数字、アンダースコア(_)、ハイフン(-)を含めることができます。中国語も
サポートされています。各中国語の記号は 2 文字を占めます。
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。'
Value:
'Fn::GetAtt':
- Rule
- ActionId
RuleId:
Description: 'ルールの ID。'
Value:
'Fn::GetAtt':
- Rule
- RuleId