AWS IoT Events 表达式中输入和变量的参考 - AWS IoT Events

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS IoT Events 表达式中输入和变量的参考

输入

$input.input-name.path-to-data

input-name是您使用CreateInput操作创建的输入。

例如,如果您有一个名为 TemperatureInput 的输入(您对其定义了 inputDefinition.attributes.jsonPath 条目),则这些值可能会出现在以下可用字段中。

{ "temperature": 78.5, "date": "2018-10-03T16:09:09Z" }

要引用该 temperature 字段的值,请使用以下命令。

$input.TemperatureInput.temperature

对于值为数组的字段,您可以使用 [n] 来引用数组的成员。例如,给定以下值:

{ "temperatures": [ 78.4, 77.9, 78.8 ], "date": "2018-10-03T16:09:09Z" }

78.8可以使用以下命令引用该值。

$input.TemperatureInput.temperatures[2]
Variables

$variable.variable-name

variable-name是您使用CreateDetectorModel操作定义的变量。

例如,如果您使用定义了一个名为 TechnicianID 的变量(您使用 detectorDefinition.states.onInputEvents.actions.setVariable.variableName 定义了该变量),则可以使用以下命令引用最近赋予该变量的(字符串)值。

$variable.TechnicianID

只能使用 setVariable 操作来设置变量的值。不能为表达式中的变量赋值。变量不能被取消设置。例如,您不能为其分配值 null

注意

在使用不遵循(正则表达式)模式[a-zA-Z][a-zA-Z0-9_]*的标识符的引用中,必须用反引号 (`) 将这些标识符括起来。例如,对具有名为 _value 的字段的名为 MyInput 的输入的引用必须将该字段指定为 $input.MyInput.`_value`

当您在表达式中使用引用时,请检查以下内容:

  • 当您将引用值作为一个或多个运算符的操作数时,确保您引用的所有数据类型均兼容。

    例如,在以下表达式中,整数 2==&& 运算符的操作数。为确保操作数兼容,$variable.testVariable + 1$variable.testVariable必须引用整数或小数。

    此外,整数 1 是运算符+的操作数。因此,$variable.testVariable 必须引用整数或小数。

    ‘$variable.testVariable + 1 == 2 && $variable.testVariable’
  • 当您使用引用作为传递给函数的自变量时,请确保该函数支持您引用的数据类型。

    例如,以下 timeout("time-name") 函数需要带有双引号的字符串作为自变量。如果你使用参考文献 timer-name value,则必须使用双引号引用字符串。

    timeout("timer-name")
    注意

    对于convert(type, expression)函数,如果您使用引用 type 值,则您的引用的评估结果必须是StringDecimal、或Boolean

AWS IoT Events 表达式支持整数、十进制、字符串和布尔数据类型。下表提供了不兼容的类型对的列表。

不兼容的类型对

整数、字符串

整数、布尔值

小数值、字符串

小数值、布尔值

字符串、布尔值