指定されたルールのルールアクションを作成し、処理されたデータを Topic から別の Topic またはサポートされている Alibaba Cloud サービスに転送します。
制限
- ルールエンジンでサポートされている宛先 Alibaba Cloud サービスは、リージョンによって異なります。 ルールエンジンでサポートされているリージョンと宛先クラウドサービスの詳細については、「リージョンとゾーン」をご参照ください。
ルールごとに最大 10 個のルールアクションを作成できます。
- この API オペレーションを呼び出して、IoT Platform の Topic、AMQP コンシューマーグループ、または Alibaba Cloud サービスにデータを転送するルールアクションを定義できます。 サポートされている Alibaba Cloud サービスには、メッセージサービス(MNS)、Function Compute、および Tablestore が含まれます。 ApsaraDB RDS にデータを転送する必要がある場合は、IoT Platform コンソールを使用する必要があります。
- 各 Alibaba Cloud アカウントは、最大 50 クエリ/秒(QPS)を実行できます。説明 Alibaba Cloud アカウントの RAM ユーザーは、アカウントのクォータを共有します。
デバッグ
リクエストパラメーター
| パラメーター | タイプ | 必須 | 例 | 説明 |
| Action | String | はい | CreateRuleAction | 実行する操作。値を CreateRuleAction に設定します。 |
| Configuration | String | はい | null | ルールアクションの構成。JSON 文字列を指定する必要があります。構成は、ルールアクションのタイプによって異なります。必要な構文と例の詳細については、以下の表を参照してください。 |
| RuleId | Long | はい | 100000 | アクションを作成するルールの ID。IoT Platform コンソールにログインし、ルール > データ転送 を選択して、ルール ID を表示できます。ListRule オペレーションを呼び出し、レスポンスでルール ID を表示することもできます。 |
| Type | String | はい | REPUBLISH | ルールアクションのタイプ。有効な値:
説明 DataType パラメーターを BINARY に設定すると、ルールはバイナリ形式で作成されます。これらのルールを使用して Tablestore にデータを転送することはできません。 |
| IotInstanceId | String | いいえ | iot-cn-0pp1n8t**** | インスタンスの ID。インスタンス ID は、IoT Platform コンソールの 概要 ページで確認できます。 重要
詳細については、「概要」をご参照ください。 |
| ErrorActionFlag | Boolean | いいえ | false | ルールアクションがエラー操作データを転送するかどうかを指定します。エラー操作データは、ルールエンジンが IoT Platform Topic から宛先クラウドサービスにデータを転送できなかった場合に生成されます。データ転送の失敗は、転送の再試行も失敗したことを示します。有効な値:
デフォルト値: false。 |
パラメーター | 説明 |
topic | 宛先 Topic。Thing Specification Language(TSL)通信 Topic またはカスタム Topic を指定できます。次のダウンストリーム TSL 通信 Topic にデータを転送できます。 /sys/${YourProductKey}/${YourDeviceName}/thing/service/property/set/sys/${YourProductKey}/${YourDeviceName}/thing/service/${tsl.service.identifier}${tsl.service.identifier} 変数を、TSL モデルで定義されているサービス識別子に置き換えます。 |
topicType | Topic のタイプ。有効な値: 0: ダウンストリーム TSL 通信 Topic。 1: カスタム Topic。 |
例
A system topic: {"topic":"/sys/a1TXXXXXWSN/xxx_cache001/thing/service/property/set","topicType":0}
A custom topic: {"topic":"/a1TXXXXXWSN/xxx_cache001/user/update","topicType":1}
DATAHUB タイプの構成パラメーター | 説明 |
projectName | データを受信するために使用される DataHub プロジェクトの名前。 |
topicName | データを受信するために使用される DataHub Topic の名前。 |
regionName | DataHub がデプロイされているリージョンのコード。例: cn-shanghai。 |
role | RAM ロールの情報。IoT Platform にサービスロールを割り当てることで、IoT Platform に DataHub へのアクセス権を付与できます。RAM ロールの構文: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingdatahubrole","roleName": "AliyunIOTAccessingDataHubRole"}
|
schemaVals | DataHub のスキーマ。詳細については、以下の SchemaVals 表を参照してください。 |
schemaVals
パラメーター | 説明 |
name | 列の名前。 |
value | 列の値。 |
type | 列のデータ型。有効な値: BIGINT: big integer DOUBLE: 倍精度浮動小数点数 BOOLEAN: ブール値。 TIMESTAMP: タイムスタンプ。 STRING: 文字列。 DECIMAL: 10 進数。 |
例
{
"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"
}
OTS タイプの構成パラメーター | 説明 |
instanceName | データを受信するために使用される Tablestore インスタンスの名前。 |
tableName | データを受信するために使用されるテーブルの名前。 |
regionName | Tablestore がデプロイされているリージョンのコード。例: cn-shanghai。 |
role | RAM ロールの情報。IoT Platform にサービスロールを割り当てることで、IoT Platform に Tablestore へのアクセス権を付与できます。RAM ロールの構文: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingotsrole","roleName": "AliyunIOTAccessingOTSRole"}
|
primaryKeys | 宛先テーブルのプライマリキーのリスト。詳細については、以下の PrimaryKeys 表を参照してください。 |
PrimaryKeys
パラメーター | 説明 |
columnType | プライマリキーのデータ型。有効な値: INTEGER: 整数 STRING: 文字列 BINARY: バイナリ |
columnName | プライマリキーの名前。 |
columnValue | プライマリキーの値。 |
option | プライマリキーが自動インクリメント列かどうかを指定します。パラメーターを AUTO_INCREMENT に設定するか、空のままにすることができます。 columnType パラメーターと option パラメーターがそれぞれ INTEGER と AUTO_INCREMENT に設定されている場合、プライマリキーは自動インクリメント列です。 |
例
{
"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"
}
}
MNS タイプの構成パラメーター | 説明 |
themeName | データを受信するために使用される MNS Topic の名前。 |
regionName | MNS がデプロイされているリージョンのコード。例: cn-shanghai。 |
role | RAM ロールの情報。IoT Platform に MNS へのアクセス権を付与するには、IoT Platform にサービスロールを割り当てることができます。RAM ロールの構文: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"}
|
例
{
"themeName": "mns-test-topic1",
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",
"roleName": "AliyunIOTAccessingMNSRole"
}
}
FC タイプの構成パラメーター | 説明 |
functionName | データを受信するために使用される関数の名前。 |
serviceName | データを受信するために使用されるサービスの名前。 |
regionName | Function Compute がデプロイされているリージョンのコード。例: cn-shanghai。 |
role | RAM ロールの情報。IoT Platform にサービスロールを割り当てることで、IoT Platform に Function Compute へのアクセス権を付与できます。RAM ロールの構文: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingfcrole","roleName": "AliyunIOTAccessingFCRole"}
|
例
{
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingfcrole",
"roleName": "AliyunIOTAccessingFCRole"
},
"functionName": "weatherForecast",
"serviceName": "weather"
}
ONS タイプの構成パラメーター | 説明 |
instanceId | データを受信するために使用されるメッセージキュー for Apache RocketMQ インスタンスの ID。 |
topic | データを受信するために使用されるメッセージキュー for Apache RocketMQ Topic の名前。 |
regionName | メッセージキュー for Apache RocketMQ がデプロイされているリージョンのコード。例: cn-shanghai。 同じゾーンでインターネット経由でデータを転送するには、一般的なメッセージキュー for Apache RocketMQ インスタンスを使用できます。ゾーン間でデータを転送するには、メッセージキュー for Apache RocketMQ Platinum Edition インスタンスを使用する必要があります。 |
tag | オプション。タグ。タグの長さは 128 バイトを超えることはできません。 |
role | RAM ロールの情報。IoT Platform にサービスロールを割り当てることで、IoT Platform にメッセージキュー for Apache RocketMQ へのアクセス権を付与できます。RAM ロールの構文: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingonsrole","roleName": "AliyunIOTAccessingONSRole"}
|
例
{
"instanceId": "MQ_INST_123157908552****_XXXXXX"
"topic": "aliyun-iot-XXXXX",
"regionName": "cn-hangzhou",
"role": {
"roleArn": "acs:ram::6541***:role/aliyuniotaccessingonsrole",
"roleName": "AliyunIOTAccessingONSRole"
}
}
AMQP タイプの構成パラメーター | 説明 |
groupId | コンシューマーグループの ID。 |
例
{
"groupId":"ZTh1JmyLGuZcUfv44p4z00****"
}
上記の操作固有のリクエストパラメーターに加えて、この操作を呼び出すときは、共通のリクエストパラメーターを指定する必要があります。詳細については、「共通リクエストパラメーター」をご参照ください。
レスポンスパラメーター
| パラメーター | タイプ | 例 | 説明 |
| ActionId | Long | 10003 | アクションの ID。呼び出しが成功した場合、アクション ID はルールエンジンによって生成されます。 説明 今後の参照のために情報を保護してください。ルールアクションに関連する操作を呼び出すときは、アクション ID を提供する必要があります。 |
| Code | String | iot.system.SystemException | 呼び出しが失敗した場合に返されるエラーコード。詳細については、「エラーコード」をご参照ください。 |
| ErrorMessage | String | システム例外が発生しました。 | 呼び出しが失敗した場合に返されるエラーメッセージ。 |
| RequestId | String | 21D327AF-A7DE-4E59-B5D1-ACAC8C024555 | リクエストの ID。 |
| Success | Boolean | true | 呼び出しが成功したかどうかを示します。
|
例
リクエストの例
https://iot.cn-shanghai.aliyuncs.com/?Action=CreateRuleAction
&RuleId=100000
&Type=REPUBLISH
&Configuration={"topic":"/a1POX0c****/device1/user/get","topicType":1}
&<共通リクエストパラメーター>成功レスポンスの例
XML 形式
<CreateRuleActionResponse>
<RequestId>21D327AF-A7DE-4E59-B5D1-ACAC8C024555</RequestId>
<ActionId>10003</ActionId>
<Success>true</Success>
</CreateRuleActionResponse>JSON 形式
{
"RequestId": "21D327AF-A7DE-4E59-B5D1-ACAC8C024555",
"ActionId": 10003,
"Success": true
}エラーコード
エラーコードのリストについては、API エラーセンターをご覧ください。