繁体   English   中英

Lambda AWS Rekognition到DynamoDB-错误

[英]Lambda AWS Rekognition to DynamoDB - Error

我正在使用本教程将Rekognition结果链接到DynamoDB表。 它给了我这个错误:

{
"errorMessage": "Unable to get object metadata from S3. Check object key, region and/or access permissions.",
"errorType": "InvalidS3ObjectException",
"stackTrace": [
    "Request.extractError (/var/runtime/node_modules/aws-sdk/lib/protocol/json.js:48:27)",
    "Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:105:20)",
    "Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:77:10)",
    "Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)",
    "Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)",
    "AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)",
    "/var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10",
    "Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)",
    "Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:685:12)",
    "Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:115:18)"
]
}

GitHub使用的代码是this

我确保lambda-bucket和表的region-name是相同的。

我是一个入门者,因此将不胜感激!

谢谢!

编辑:我做了一些修改,现在它给了我:

{
"errorMessage": "Requested resource not found",
"errorType": "ResourceNotFoundException",
"stackTrace": [
    "Request.extractError (/var/runtime/node_modules/aws-sdk/lib/protocol/json.js:48:27)",
    "Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:105:20)",
    "Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:77:10)",
    "Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)",
    "Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)",
    "AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)",
    "/var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10",
    "Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)",
    "Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:685:12)",
    "Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:115:18)"
]

}

发生这种情况的原因有两个:

1)资源绝对不存在。 三重检查存储桶名称,DynamoDB表名称,区域等。

2)您的函数很可能缺少权限。 检查您的Lambda函数正在使用的IAM角色,并为其添加正确的策略。 在这种情况下,您的函数需要访问S3,DynamoDB和Rekognition。 确保所有这些策略都已附加到IAM角色。

您看到ResourceNotFoundException的事实提示了两个潜在原因:

  • Lambda函数找不到DynamoDB表:通过设置config.dynamo.tableName = '<your table>' ,确保已修改config.js以正确包含DynamoDB表的名称
  • 重新识别无法从S3中读取图像:确保图像文件名采用faces.jpg而不是test faces.jpg的形式(转义为test+faces.jpg

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM