我正在尝试在我的 Lambda 函数中通过
根据文档,
有人知道我做错了什么吗?
非常感谢。
aws-sdk
访问 S3
。import S3 from 'aws-sdk/clients/s3';
const s3 = new S3();
const { Contents: results } = await s3.listObjects({ Bucket: process.env.DOCUMENTS_BUCKET_NAME! }).promise()
我也成功使用了cdk deploy
命令部署它。但是当我测试时,我会得到以下错误:
2022-11-23T15:53:40.891Z undefined ERROR Uncaught Exception
{
"errorType": "Runtime.ImportModuleError",
"errorMessage": "Error: Cannot find module 'aws-sdk'\nRequire stack:\n- /var/task/index.js\n- /var/runtime/index.mjs",
"stack": [
"Runtime.ImportModuleError: Error: Cannot find module 'aws-sdk'",
"Require stack:",
"- /var/task/index.js",
"- /var/runtime/index.mjs",
" at _loadUserApp (file:///var/runtime/index.mjs:1000:17)",
" at async UserFunction.js.module.exports.load (file:///var/runtime/index.mjs:1035:21)",
" at async start (file:///var/runtime/index.mjs:1200:23)",
" at async file:///var/runtime/index.mjs:1206:1"
]
}
根据文档,
aws-sdk
始终可用于运行时环境。有人知道我做错了什么吗?
非常感谢。
listObjects
方法而不是listObjectsV2
,并且使用了.promise()
特性,你似乎在尝试使用 JavaScript SDK v2。因此需要使用以下代码:const AWS = require('aws-sdk'); const s3 = new AWS.S3();
。 - jarmod