Lambda AWS Rekognition для DynamoDB - Ошибка - PullRequest
0 голосов
/ 22 февраля 2019

Я использую этот учебник , чтобы связать результаты 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 .

Я убедился, что имя региона для лямбда-адреса совпадаетведро и стол.

Я начинающий в этом, поэтому любая помощь будет оценена!

Спасибо!

Редактировать: я сделал некоторые изменения, и теперь он даетмне это:

{
"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)"
]

}

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Тот факт, что вы видите ResourceNotFoundException, предполагает несколько возможных причин:

  • функция Lambda не смогла найти таблицу DynamoDB: убедитесь, что вы изменили конфигурацию, js для включенияимя таблицы DynamoDB правильно, установив config.dynamo.tableName = '<your table>'
  • Rekognition не может прочитать изображение из S3: убедитесь, что имя файла изображения имеет вид faces.jpg, а не test faces.jpg (который экранируется вtest+faces.jpg)
0 голосов
/ 22 февраля 2019

Существует несколько причин, по которым это может происходить:

1) Ресурс определенно не существует.Тройная проверка имени корзины, имени таблицы DynamoDB, регионов и т. Д.

2) Весьма вероятно, что вашей функции не хватает разрешений.Проверьте роль IAM, которую использует ваша функция Lambda, и прикрепите к ней правильные политики.В этом случае вашей функции необходим доступ к S3, DynamoDB и Rekognition.Убедитесь, что все эти политики привязаны к роли IAM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...