AWS::IoT::TopicRule DynamoDBAction - AWS CloudFormation

AWS::IoT::TopicRule DynamoDBAction

Describes an action to write to a DynamoDB table.

The tableName, hashKeyField, and rangeKeyField values must match the values used when you created the table.

The hashKeyValue and rangeKeyvalue fields use a substitution template syntax. These templates provide data at runtime. The syntax is as follows: ${sql-expression}.

You can specify any valid expression in a WHERE or SELECT clause, including JSON properties, comparisons, calculations, and functions. For example, the following field uses the third level of the topic:

"hashKeyValue": "${topic(3)}"

The following field uses the timestamp:

"rangeKeyValue": "${timestamp()}"

For more information, see DynamoDBv2 Action in the AWS IoT Developer Guide.

Syntax

To declare this entity in your AWS CloudFormation template, use the following syntax:

JSON

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

YAML

HashKeyField: String HashKeyType: String HashKeyValue: String PayloadField: String RangeKeyField: String RangeKeyType: String RangeKeyValue: String RoleArn: String TableName: String

Properties

HashKeyField

The hash key name.

Required: Yes

Type: String

Update requires: No interruption

HashKeyType

The hash key type. Valid values are "STRING" or "NUMBER"

Required: No

Type: String

Allowed values: STRING | NUMBER

Update requires: No interruption

HashKeyValue

The hash key value.

Required: Yes

Type: String

Update requires: No interruption

PayloadField

The action payload. This name can be customized.

Required: No

Type: String

Update requires: No interruption

RangeKeyField

The range key name.

Required: No

Type: String

Update requires: No interruption

RangeKeyType

The range key type. Valid values are "STRING" or "NUMBER"

Required: No

Type: String

Allowed values: STRING | NUMBER

Update requires: No interruption

RangeKeyValue

The range key value.

Required: No

Type: String

Update requires: No interruption

RoleArn

The ARN of the IAM role that grants access to the DynamoDB table.

Required: Yes

Type: String

Update requires: No interruption

TableName

The name of the DynamoDB table.

Required: Yes

Type: String

Update requires: No interruption