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

IoT Platform:CreateRule

最終更新日:Apr 17, 2025

特定の Topic に対してデータ転送ルールを作成します。

使用方法

この操作を呼び出すときは、リクエストで ProductKey を指定する必要があります。

QPS 制限

この API 操作は、アカウントごとに 1 秒あたり最大 50 回呼び出すことができます。

説明

Alibaba Cloud アカウントの Resource Access Management (RAM) ユーザーは、アカウントのクォータを共有します。

デバッグ

OpenAPI Explorer は署名値を自動的に計算します。便宜上、OpenAPI Explorer でこの操作を呼び出すことをお勧めします。 OpenAPI Explorer は、さまざまな SDK の操作のサンプルコードを動的に生成します。

リクエストパラメーター

パラメーター

タイプ

必須

説明

Action

String

はい

CreateRule

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

Name

String

はい

iot_test1

データ転送ルールの名前。ルール名は 1 ~ 30 文字で、文字、数字、アンダースコア(_)、およびハイフン(-)を含めることができます。

IotInstanceId

String

いいえ

iot-cn-0pp1n8t****

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

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

  • IoT Platform コンソールに 概要 タブまたはインスタンス ID が表示されない場合は、このパラメーターを指定する必要はありません。

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

Select

String

いいえ

deviceName() as deviceName, items.Humidity.value as Humidity, items.Temperature.value as Temperature

実行する SQL SELECT 文。詳細については、「SQL 文」をご参照ください。

説明

このパラメーターは、SELECT 文のフィールドを指定します。たとえば、SELECT 文が SELECT a,b,c の場合、このパラメーターを a,b,c に設定します。

ShortTopic

String

いいえ

+/thing/event/property/post

このルールが適用される Topic。フォーマットは ${deviceName}/topicShortName です。 ${deviceName} はデバイスの名前を指定し、topicShortName は Topic の短縮名を指定します。

  • 基本的な通信 Topic または Thing Specification Language (TSL) ベースの通信 Topic の場合、フォーマットは ${deviceName}/topicShortName です。 ${deviceName} は、+ ワイルドカード文字に置き換えることができます。ワイルドカード文字は、Topic がプロダクト下のすべてのデバイスに適用されることを示します。 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}/history/post: デバイスの履歴イベントデータを送信します。 ${tsl.event.identifier} は、TSL モデルのイベントの識別子を指定します。

    • /ota/upgrade: デバイスのファームウェアアップデートステータスを送信します。

    • /ota/version/post: OTA モジュールバージョンを送信します。

    • /thing/deviceinfo/update: デバイスタグの変更を送信します。

    • /edge/driver/${driver_id}/point_post: Link IoT Edge からのパススルーデータを送信します。 ${driver_id} は、デバイスが Link IoT Edge にアクセスするために使用するドライバーの ID を指定します。

      ファームウェアアップデートバッチのステータスを送信するために使用される Topic のフォーマットは、${packageId}/${jobId}/ota/job/status です。この Topic は、基本的な通信 Topic に属します。 ${packageId} はパッケージ ID を指定します。 ${jobId} はアップデートバッチ ID を指定します。

  • カスタム Topic の例は、${deviceName}/user/get です。

    QueryProductTopic 操作を呼び出すと、プロダクトのすべてのカスタム Topic を表示できます。

    カスタム Topic を指定するときは、+ および # ワイルドカード文字を使用できます。

    • ${deviceName} は、+ ワイルドカード文字に置き換えることができます。ワイルドカード文字は、Topic がプロダクト内のすべてのデバイスに適用されることを指定します。

    • ${deviceName} の後続のフィールドは、/user/# に置き換えることができます。 # ワイルドカードは、Topic が /user に続くすべてのフィールドに適用されることを指定します。

      ワイルドカード文字の使用方法の詳細については、「カスタム Topic を使用する」をご参照ください。

  • デバイスのステータス変更を送信するために使用される Topic のフォーマットは、${deviceName} です。

    + ワイルドカード文字を使用できます。この場合、プロダクト下のすべてのデバイスのステータス変更が送信されます。

Where

String

いいえ

Temperature>35

ルールをトリガーするために使用される条件。ルールの詳細については、「SQL 文」をご参照ください。

説明

このパラメーターは、WHERE 句のフィールドを指定します。たとえば、WHERE 文が WHERE a > 10 の場合、このパラメーターを a>10 に設定します。

ProductKey

String

いいえ

a1T27vz****

ルールが適用されるプロダクトの ProductKey。

RuleDesc

String

いいえ

rule test

ルールの説明。説明は最大 100 文字まで入力できます。

DataType

String

いいえ

JSON

ルールに基づいて処理されるデータのフォーマット。このパラメーターの値は、処理するデバイスデータのフォーマットと一致している必要があります。有効な値:

  • JSON (デフォルト): JSON データ。

  • BINARY: バイナリデータ。

説明

このパラメーターを BINARY に設定した場合、TopicType を 0 に設定することはできず、Tablestore および ApsaraDB RDS にデータを転送することはできません。

TopicType

Integer

いいえ

1

  • 0: ShortTopic で説明されている基本的な通信 Topic または TSL ベースの通信 Topic。ファームウェアアップデートバッチのステータスを送信するために使用される Topic は、基本的な通信 Topic に属します。

  • 1: カスタム Topic。

  • 2: デバイスのステータス変更を送信するために使用される Topic。Topic は、次の完全なフォーマットで表現されます: /as/mqtt/status/${productKey}/${deviceName}

ResourceGroupId

String

いいえ

rg-acfmxazb4ph****

リソースグループ ID。

重要
  • IoT Platform は、インスタンスによるリソースグループ管理のみをサポートしています。 ResourceGroupId は有効になりません。このパラメーターを指定する必要はありません。

  • 以前にこの操作を呼び出したときに指定したリソースグループは引き続き有効です。

Topic

String

いいえ

/sys/g18l***/device1/thing/event/property/post

ルールが適用される完全な Topic。

このパラメーターを指定する場合、ShortTopic および TopicType を指定する必要はありません。

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

説明

ルールを有効にするには、ProductKey、ShortTopic、および Select を指定する必要があります。

レスポンスパラメーター

パラメーター

タイプ

説明

Code

String

iot.system.SystemException

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

ErrorMessage

String

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

リクエストが失敗した場合に返されるエラーメッセージ。

RequestId

String

E4C0FF92-2A86-41DB-92D3-73B60310D25E

リクエスト ID。

RuleId

Long

100000

ルール ID。リクエストが成功した場合、ルールエンジンはルールにルール ID を生成します。

説明

ルール ID は機密にしてください。ルール関連の操作を呼び出す場合は、ルール ID を提供する必要がある場合があります。

Success

Boolean

true

リクエストが成功したかどうかを示します。有効な値:

  • true

  • false

リクエストの例

https://iot.cn-shanghai.aliyuncs.com/?Action=CreateRule
&Name=iot_test1
&ProductKey=a1T27vz****
&ShortTopic=+/thing/event/property/post
&Select=deviceName() as deviceName, items.Humidity.value as Humidity, items.Temperature.value as Temperature
&RuleDesc=rule test
&DataType=JSON
&Where=Temperature>35
&TopicType=1
&<共通リクエストパラメーター>

成功レスポンスの例

XML 形式

<CreateRuleResponse>
      <RequestId>E4C0FF92-2A86-41DB-92D3-73B60310D25E</RequestId>
      <RuleId>100000</RuleId>
      <Success>true</Success>
</CreateRuleResponse>

JSON 形式

{
  "RequestId": "E4C0FF92-2A86-41DB-92D3-73B60310D25E", 
  "RuleId": 100000, 
  "Success": true
}

エラーコード

エラーコードのリストについては、「サービスエラーコード」をご参照ください。