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
EXPERT
demandé il y a 5 mois56 vues
1 réponse
0

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

profile picture
EXPERT
répondu il y a 5 mois

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions