すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:CreateRuleAction

最終更新日:Apr 17, 2025

指定されたルールのルールアクションを作成し、処理されたデータを 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 ユーザーは、アカウントのクォータを共有します。

デバッグ

Alibaba Cloud は、API の使用を簡素化するために OpenAPI Explorer を提供しています。 OpenAPI Explorer は署名値を自動的に計算します。便宜上、OpenAPI Explorer でこの操作を呼び出すことをお勧めします。 OpenAPI Explorer は、さまざまな SDK の操作のサンプルコードを動的に生成します。

リクエストパラメーター

パラメータータイプ必須説明
ActionStringはいCreateRuleAction

実行する操作。値を CreateRuleAction に設定します。

ConfigurationStringはいnull

ルールアクションの構成。JSON 文字列を指定する必要があります。構成は、ルールアクションのタイプによって異なります。必要な構文と例の詳細については、以下の表を参照してください。

RuleIdLongはい100000

アクションを作成するルールの ID。IoT Platform コンソールにログインし、ルール > データ転送 を選択して、ルール ID を表示できます。ListRule オペレーションを呼び出し、レスポンスでルール ID を表示することもできます。

TypeStringはいREPUBLISH

ルールアクションのタイプ。有効な値:

  • REPUBLISH: ルールエンジンによって処理された Topic データを別の IoT Platform Topic に転送します。
  • AMQP: データを AMQP コンシューマーグループに転送します。

  • MNS: ルールエンジンによって処理されたデータをメッセージサービス(MNS)に転送します。
  • FC: ルールエンジンによって処理された Topic データを Function Compute に転送して、イベントコンピューティングを行います。
  • OTS: ルールエンジンによって処理されたデータを OTS に転送して、NoSQL データストレージを行います。
説明 DataType パラメーターを BINARY に設定すると、ルールはバイナリ形式で作成されます。これらのルールを使用して Tablestore にデータを転送することはできません。
IotInstanceIdStringいいえiot-cn-0pp1n8t****

インスタンスの ID。インスタンス ID は、IoT Platform コンソールの 概要 ページで確認できます。

重要
  • インスタンスに ID がある場合は、このパラメーターを設定する必要があります。このパラメーターを設定しないと、呼び出しは失敗します。
  • インスタンスに 概要 ページまたは ID がない場合は、このパラメーターを設定する必要はありません。

詳細については、「概要」をご参照ください。

ErrorActionFlagBooleanいいえfalse

ルールアクションがエラー操作データを転送するかどうかを指定します。エラー操作データは、ルールエンジンが IoT Platform Topic から宛先クラウドサービスにデータを転送できなかった場合に生成されます。データ転送の失敗は、転送の再試行も失敗したことを示します。有効な値:

  • true: エラー操作データを転送します。
  • false: エラー操作データではなく通常のデータを転送します。

デフォルト値: false

REPUBLISH タイプの構成

パラメーター

説明

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"}

6541*** を Alibaba Cloud ID に置き換えます。Alibaba Cloud 管理コンソールにログインし、セキュリティ設定ページでアカウント ID を確認できます。

AliyunIOTAccessingDataHubRole は、RAM で定義されているサービスロールを示します。このロールは、IoT Platform に DataHub へのアクセス権を付与するために使用されます。RAM コンソールの RAM ロールページに移動して、RAM ロールを管理できます。

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"}

6541*** を Alibaba Cloud ID に置き換えます。Alibaba Cloud 管理コンソールにログインし、セキュリティ設定ページでアカウント ID を確認できます。

AliyunIOTAccessingOTSRole は、RAM で定義されているサービスロールを示します。このロールは、IoT Platform に Tablestore へのアクセス権を付与するために使用されます。RAM コンソールの RAM ロールページに移動して、RAM ロールを管理できます。

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"}

6541*** を Alibaba Cloud ID に置き換えます。Alibaba Cloud 管理コンソールにログインし、セキュリティ設定ページでアカウント ID を確認できます。

AliyunIOTAccessingMNSRole は、RAM で定義されているサービスロールを示します。このロールは、IoT Platform に MNS へのアクセス権を付与するために使用されます。RAM コンソールの RAM ロールページに移動して、RAM ロールを管理できます。


{
    "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"}

6541*** を Alibaba Cloud ID に置き換えます。Alibaba Cloud 管理コンソールにログインし、セキュリティ設定ページでアカウント ID を確認できます。

AliyunIOTAccessingFCRole は、RAM で定義されているサービスロールを示します。このロールは、IoT Platform に Function Compute へのアクセス権を付与するために使用されます。RAM コンソールの RAM ロールページに移動して、RAM ロールを管理できます。


{
    "regionName": "cn-shanghai",
    "role": {
        "roleArn": "acs:ram::5645***:role/aliyuniotaccessingfcrole",
        "roleName": "AliyunIOTAccessingFCRole"
    },
    "functionName": "weatherForecast",
    "serviceName": "weather"
}
            
ONS タイプの構成
説明 メッセージキュー for Apache RocketMQ の SDK を呼び出すか、コンソールを使用して、IoT Platform にサービスへのアクセス権を付与する必要があります。IoT Platform は、メッセージキュー for Apache RocketMQ にメッセージをパブリッシュする権限を持っている必要があります。その後、サービスにデータを転送するルールアクションを作成できます。

パラメーター

説明

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"}

6541*** を Alibaba Cloud ID に置き換えます。Alibaba Cloud 管理コンソールにログインし、セキュリティ設定ページでアカウント ID を確認できます。

AliyunIOTAccessingONSRole は、RAM で定義されているサービスロールを示します。このロールは、IoT Platform にメッセージキュー for Apache RocketMQ へのアクセス権を付与するために使用されます。RAM コンソールの RAM ロールページに移動して、RAM ロールを管理できます。


{
    "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****"
}
            

上記の操作固有のリクエストパラメーターに加えて、この操作を呼び出すときは、共通のリクエストパラメーターを指定する必要があります。詳細については、「共通リクエストパラメーター」をご参照ください。

レスポンスパラメーター

パラメータータイプ説明
ActionIdLong10003

アクションの ID。呼び出しが成功した場合、アクション ID はルールエンジンによって生成されます。

説明 今後の参照のために情報を保護してください。ルールアクションに関連する操作を呼び出すときは、アクション ID を提供する必要があります。
CodeStringiot.system.SystemException

呼び出しが失敗した場合に返されるエラーコード。詳細については、「エラーコード」をご参照ください。

ErrorMessageStringシステム例外が発生しました。

呼び出しが失敗した場合に返されるエラーメッセージ。

RequestIdString21D327AF-A7DE-4E59-B5D1-ACAC8C024555

リクエストの ID。

SuccessBooleantrue

呼び出しが成功したかどうかを示します。

  • true: 呼び出しは成功しました。
  • false: 呼び出しは失敗しました。

リクエストの例

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 エラーセンターをご覧ください。