Я пытаюсь получить доступ к AWS DynamoDB из функции Lambda. Когда я вызываю клиентскую функцию сканирования документа с помощью обещания, она никогда не возвращается, даже если я увеличиваю тайм-аут функции до целой минуты.
Я использую бессерверную платформу, Node 8.10, и я настроил «iamRoleStatements», чтобы разрешить Dynamodb и ARN таблицы.
serverless.yml:
provider:
name: aws
runtime: nodejs8.10
timeout: 6
region: us-east-1
iamRoleStatements:
- Effect: Allow
Action:
- dynamodb:*
Resource: "[arn from dynamodb]"
handler.js:
const dynamodb = new AWS.DynamoDB.DocumentClient()
...
...
...
try {
console.log('dynamodb go')
attributes = await dynamodb.scan(queryParams).promise()
console.log('dynamodb success')
console.log(attributes)
} catch (err) {
console.log('dynamodb error')
}
Я ожидаю, что в консоли появится «Dynamodb go», затем «Dynamodb success» или даже «Dynamodb error». Однако после вывода команды "Dynamodb go" функция зависает и завершается тайм-аут. Я почему-то неправильно выполняю обещание? Судя по тому, что я видел, это должен быть правильный формат.