本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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
是您使用CreateDetectorModel操作定义的变量。variable-name
例如,如果您使用定义了一个名为
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
值,则您的引用的评估结果必须是String
Decimal
、或Boolean
。
AWS IoT Events 表达式支持整数、十进制、字符串和布尔数据类型。下表提供了不兼容的类型对的列表。
不兼容的类型对 |
---|
整数、字符串 |
整数、布尔值 |
小数值、字符串 |
小数值、布尔值 |
字符串、布尔值 |