IoT SQL函数“get_dynamodb”意外失败。

0

【以下的问题经过翻译处理】 当按照文档https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-functions.html指定的四个参数调用 IoT SQL 的get_dynamodb函数时,出现了奇怪的错误消息。

我的规则定义如下:

SELECT
    *,
    get_dynamodb("myTableName", "devEui", WirelessMetadata.LoRaWAN.DevEui, "myRoleArn") AS context
FROM 'myTopic'
WHERE
    message.WirelessMetadata.LoRaWAN.FPort = 10
    OR message.WirelessMetadata.LoRaWAN.FPort = 32

我已经为 AWS IoT Core 开启了细粒度日志记录,并在 CloudWatch 中看到了以下错误消息:

{
logLevel: ERROR
reason: ExternFunctionException
status: Failure
timestamp: 2021-12-29 07:12:10.436
details: Function 'GetDynamodb' failed to execute for rule 'XXX'. get_dynamodb takes either 4 or 6 arguments, but 4 given. Expected get_dynamodb(tableName, partitionKeyName, partitionKeyValue, roleArn) or get_dynamodb(tableName, partitionKeyName, partitionKeyValue, sortKeyName, sortKeyValue, roleArn).
eventType: RuleExecution
}

我是否遗漏了什么配置,或者 IoT Core SQL 函数文档已过时?

profile picture
专家
已提问 3 个月前13 查看次数
1 回答
0

【以下的回答经过翻译处理】 我通过修复查询中的一个拼写错误解决了这个问题。具体来说,partitionKeyValue参数缺少message前缀。错误消息有点误导性,因为它指出我调用了一个包含四个参数的函数,虽然其中一个并没有被定义。

profile picture
专家
已回答 3 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则