0

应用程序本身是一个用 Node.js 编写的 Lambda 处理程序。在“npm update”之后,一些子依赖,babel?,很可能会干扰并做一些改变的事情。

我们的 AWS 代码在一个模块中初始化,如下所示:

const AWS = require('aws-sdk')

AWS.config.update({
  accessKeyId: process.env.AWS_ACCESSKEY_ID,
  secretAccessKey: process.env.AWS_ACCESSKEY_SECRET,
  region: process.env.AWS_REGION
})

module.exports= {
  s3: new AWS.S3(),
  dynamodb: new AWS.DynamoDB({ apiVersion: '2012-08-10' }),
  <more similar exports>
}

module.exports.default = AWS

一旦我尝试在服务上模拟方法,就会收到与该服务相关的错误:

TypeError: AWS.DynamoDB is not a constructor
4

1 回答 1

0

这解决了我的问题,不确定它是否正确,但至少我可以继续前进。

const AWS = require('aws-sdk')

AWS.config.update({
  accessKeyId: process.env.AWS_ACCESSKEY_ID,
  secretAccessKey: process.env.AWS_ACCESSKEY_SECRET,
  region: process.env.AWS_REGION
})

const S3 = require('aws-sdk/clients/s3')
const DynamoDB = require('aws-sdk/clients/dynamodb')

module.exports= {
  s3: new S3(),
  dynamodb: new DynamoDB({ apiVersion: '2012-08-10' }),
  <more similar exports>
}

module.exports.default = AWS
于 2021-08-03T07:17:19.967 回答