AWS::IoTEvents::DetectorModel DynamoDB - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::IoTEvents::DetectorModel DynamoDB

定义要写入所创建的 Amazon DynamoDB 表的操作。标准操作负载包含有关检测器模型实例和触发操作的事件的所有信息。您可以自定义负载。DynamoDB 表中有一个列用于接收指定负载中的所有属性/值对。

必须对 DynamoDBAction 中的所有参数使用表达式。这些表达式接受文字、运算符、函数、引用和替代模板。

示例

  • 对于文字值,表达式必须包含单引号。例如,hashKeyType 参数的值可以是 'STRING'

  • 对于引用,必须指定变量或输入值。例如,hashKeyField 参数的值可以是 $input.GreenhouseInput.name

  • 对于替代模板,您必须使用 ${},且模板必须在单引号内。替代模板还可以包含文字、运算符、函数、引用和替代模板的组合。

    在以下示例中,hashKeyValue 参数的值使用替代模板。

    '${$input.GreenhouseInput.temperature * 6 / 5 + 32} in Fahrenheit'

  • 对于字符串串联,必须使用 +。字符串串联还可以包含文字、运算符、函数、引用和替代模板的组合。

    在以下示例中,tableName 参数的值使用字符串串联。

    'GreenhouseTemperatureTable ' + $input.GreenhouseInput.date

有关更多信息,请参阅 AWS IoT Events 开发人员指南 中的语法

如果定义的负载类型为字符串,则 DynamoDBAction 会将非 JSON 数据作为二进制数据写入到 DynamoDB 表中。DynamoDB 控制台以 Base64 编码文本格式显示数据。payloadField 参数的值为 <payload-field>_raw

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "HashKeyField" : String, "HashKeyType" : String, "HashKeyValue" : String, "Operation" : String, "Payload" : Payload, "PayloadField" : String, "RangeKeyField" : String, "RangeKeyType" : String, "RangeKeyValue" : String, "TableName" : String }

YAML

HashKeyField: String HashKeyType: String HashKeyValue: String Operation: String Payload: Payload PayloadField: String RangeKeyField: String RangeKeyType: String RangeKeyValue: String TableName: String

属性

HashKeyField

哈希键(也称为分区键)的名称。hashKeyField 值必须与目标 DynamoDB 表的分区键匹配。

必需:否

类型:字符串

Update requires: No interruption

HashKeyType

哈希键(也称为分区键)的数据类型。可以指定以下值:

  • 'STRING' - 哈希键是字符串。

  • 'NUMBER' - 哈希键是数字。

如果不指定 hashKeyType,则默认值为 'STRING'

必需:否

类型:字符串

Update requires: No interruption

HashKeyValue

哈希键(也称为分区键)的值。

必需:否

类型:字符串

Update requires: No interruption

Operation

要执行的操作的类型。可以指定以下值:

  • 'INSERT' - 将数据作为新项插入到 DynamoDB 表中。此项使用指定的哈希键作为分区键。如果您指定了范围键,则项将使用范围键作为排序键。

  • 'UPDATE' - 使用新数据更新 DynamoDB 表的现有项。此项目的分区键必须与指定的哈希键匹配。如果您指定了范围键,则范围键必须与项的排序键匹配。

  • 'DELETE' - 删除 DynamoDB 表的现有项。此项目的分区键必须与指定的哈希键匹配。如果您指定了范围键,则范围键必须与项的排序键匹配。

如果不指定此参数,AWS IoT Events 将触发 'INSERT' 操作。

必需:否

类型:字符串

Update requires: No interruption

Payload

配置负载所需的信息。

默认情况下,AWS IoT Events 会以 JSON 格式为任何操作生成标准负载。此操作负载包含有关检测器模型实例和触发操作的事件的信息的所有属性/值对。要配置操作负载,可以使用 contentExpression

必需:否

类型Payload

Update requires: No interruption

PayloadField

接收操作负载的 DynamoDB 列的名称。

如果不指定此参数,则 DynamoDB 列名为 payload

必需:否

类型:字符串

Update requires: No interruption

RangeKeyField

范围键(也称为排序键)的名称。rangeKeyField 值必须与目标 DynamoDB 表的排序键匹配。

必需:否

类型:字符串

Update requires: No interruption

RangeKeyType

范围键(也称为排序键)的数据类型,您可以指定以下值:

  • 'STRING' - 范围键是字符串。

  • 'NUMBER' - 范围键是数字。

如果不指定 rangeKeyField,则默认值为 'STRING'

必需:否

类型:字符串

Update requires: No interruption

RangeKeyValue

范围键(也称为排序键)的名称。

必需:否

类型:字符串

Update requires: No interruption

TableName

DynamoDB 表的名称。tableName 值必须与目标 DynamoDB 表的表名匹配。

必需:否

类型:字符串

Update requires: No interruption