Я пытаюсь получить доступ к AWS DynamoDB из функции Lambda. Когда я вызываю функцию сканирования клиента документа, используя обещание, она никогда не возвращается, даже когда я увеличиваю время ожидания функции до целой минуты.
Я использую платформу Serverless, узел 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» функция зависает и заканчивается тайм-аут. Я делаю обещание как-то неправильно? Кажется, это должен быть правильный формат, основанный на том, что я видел.