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
EXPERTE
gefragt vor 5 Monaten56 Aufrufe
1 Antwort
0

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

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen