Я строю AWS лямбду с aws -sam-cli . В этой функции я хочу получить доступ к определенной таблице DynamoDB. Моя проблема в том, что функция возвращается с этой ошибкой, когда я вызываю ее локально с помощью команды sam local invoke
: ResourceNotFoundException: Requested resource not found
const axios = require('axios')
const AWS = require('aws-sdk')
AWS.config.update({region: <MY REGION>});
const dynamo = new AWS.DynamoDB.DocumentClient()
exports.handler = async (event) => {
const scanParams = {
TableName: 'example-table'
}
const scanResult = await dynamo.scan(scanParams).promise().catch((error) => {
console.log(`Scan error: ${error}`)
// => Scan error: ResourceNotFoundException: Requested resource not found
})
console.log(scanResult)
}
Однако, если я действительно sam deploy
, то AWS и тестирую это в фактической консоли Lambda, это регистрирует информацию таблицы правильно.
{
Items: <TABLE ITEMS>,
Count: 1,
ScannedCount: 1
}
Это ожидаемое поведение? Или мне нужна дополнительная конфигурация для локальной работы? Мой template.yaml
выглядит так:
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: 'Example SAM stack'
Resources:
ExampleFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: nodejs12.x
Policies:
- DynamoDBCrudPolicy:
TableName: 'example-table'