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

Resource Orchestration Service:ALIYUN::IOT::Rule

最終更新日:Jan 16, 2025

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 いいえ はい トピックのタイプ。 有効な値:
  • 0: ShortTopic パラメーターで指定された Thing Specification Language(TSL)ベースの通信トピック、または基本的な通信トピック。たとえば、OTA アップデートバッチのステータスを送信するために使用されるトピック。
  • 1: カスタムトピック。
  • 2: デバイスのステータス変更を送信するために使用されるトピック。形式: /as/mqtt/status/${productKey}/${deviceName}
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。有効な値:
  • JSON
  • BINARY
    説明 このパラメーターを BINARY に設定した場合、TopicType パラメーターを 0 に設定したり、インスタンスの時系列データストレージ、Time Series Database(TSDB)、Tablestore、または ApsaraDB RDS にデータを転送したりすることはできません。
RuleDesc String いいえ はい ルールの説明。 説明は最大 100 文字です。
Where String いいえ はい ルールをトリガーするために使用される条件。詳細については、「SQL ステートメント」をご参照ください。 このパラメーターを WHERE キーワードの後に続くコンテンツに設定します。たとえば、WHERE ステートメントが WHERE a>10 の場合、このパラメーターを a>10 に設定します。
ProductKey String いいえ いいえ ルールが適用される製品の一意の識別子。 なし
RuleAction List いいえ はい ルールアクション。 詳細については、「RuleAction プロパティ」をご参照ください。
StartRule Boolean いいえ はい ルールを有効にするかどうかを指定します。 有効な値:
  • true
  • false
Name String はい はい ルールの名前。 名前は 1 ~ 30 バイトの長さで、文字、数字、ハイフン(-)、アンダースコア(_)を含めることができます。

RuleAction 構文

"RuleAction": [
  {
    "ErrorActionFlag": String,
    "Configuration": String,
    "Type": String
  }
] 

RuleAction プロパティ

プロパティ タイプ 必須 編集可能 説明 制約
ErrorActionFlag String いいえ いいえ ルールアクションがエラー操作データを転送するかどうかを指定します。エラー操作データは、ルールエンジンが IoT Platform トピックから宛先クラウドサービスにデータを転送できなかった場合に生成されます。データ転送の失敗は、転送の再試行も失敗したことを示します。 有効な値:
  • true
  • false
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