ree*_*ces 4 amazon-web-services amazon-dynamodb aws-lambda aws-sam-cli
我正在使用aws-sam-cli构建一个 AWS lambda 。在函数中,我想访问某个 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)
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我真的将sam deploy它发送到 AWS 并在实际的 Lambda 控制台中对其进行测试,它会正确记录表信息。
{
Items: <TABLE ITEMS>,
Count: 1,
ScannedCount: 1
}
Run Code Online (Sandbox Code Playgroud)
这是预期的行为吗?或者我需要做一些额外的配置才能让它在本地工作吗?我的template.yaml看起来像这样:
{
Items: <TABLE ITEMS>,
Count: 1,
ScannedCount: 1
}
Run Code Online (Sandbox Code Playgroud)
我相信当您在本地调用 Lambda 时,SAM 无法识别用于远程资源的配置文件,例如:DynamoDB
尝试传递远程 dynamoDB 的凭据配置文件
前任:
sam local invoke --profile default
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看命令文档:https : //docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-local-invoke.html
| 归档时间: |
|
| 查看次数: |
1449 次 |
| 最近记录: |