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
エキスパート
質問済み 5ヶ月前56ビュー
1回答
0

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

profile picture
エキスパート
回答済み 5ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン