如何在规则引擎表达式中使用 AWS IoT 消息负载生成 PartitionKey

How to use AWS IoT message payload in Rule Engine expression to generate PartitionKey

问题背景: AWS IoT 使用 AWS 规则引擎连接到 Kinesis Data Stream (KDS),在规则引擎规则定义中有一个 PartitionKey 选项。 PartionKey 可以使用诸如“${topic()}”之类的表达式来填充。示例消息负载为

{
    Id:"123"
    GS:"123"
}

问题: 如何定义使用负载的表达式,例如 "part${payload().GS}"

您可以使用 substitution template

例如:

{
    "rule": {
        "sql": "SELECT * FROM 'some/topic'", 
        "ruleDisabled": false, 
        "actions": [{
            "kinesis": {
                "roleArn": "arn:aws:iam::123456789012:role/aws_iot_kinesis", 
                "streamName": "my_kinesis_stream", 
                "partitionKey": "${GS}"
            }
        }], 
    }
}