错误:区域丢失-@aws sdk-Dynamose-nodejs16



我正在将nodejs从旧版本升级到节点16,因为AWS-SDK已经宣布结束对node.js 14.x的支持。现在使用nodejs 16,即使在所有可能的方式中都设置了区域,获取区域也是错误的

错误:缺少区域默认情况下(/home/myproject/nod_module/@aws sdk/config resolver/dist cjs/reregionConfig/config.js:10:15(

尝试了所有这些方法来设置区域

1. const ddb = new dynamoose.aws.ddb.DynamoDB({
region: config.aws.region,
accessKeyId: config.aws.accessKeyId,
secretAccessKey: config.aws.secretAccessKey,
});
// Set DynamoDB instance to the Dynamoose DDB instance
dynamoose.aws.ddb.set(ddb);
2.  var AWS = require('aws-sdk');
AWS.config.loadFromPath('./aws.json');
AWS.config.getCredentials(function(err) {
if (err) console.log(err.stack);
// credentials not loaded
else {
console.log("Access key:", AWS.config.credentials.accessKeyId);
console.log("secretAccessKey:", AWS.config.credentials.secretAccessKey);
console.log("credentials.region:", AWS.config.credentials.region);
console.log("region: ", AWS.config.region);
}
});
Able to get AWS.config.region in logs :
Access key: XXXXX
secretAccessKey: XXXXXXXXXXXXXXXXXX
credentials.region: undefined
region: ap-southeast-1
aws version: 2.1231.0
3. AWS.config.update({region:'ap-southeast-1'});
4. set region if not set (as not set by the SDK by default)
if (!AWS.config.region) {
AWS.config.update({
region: 'eu-west-1'
});
}

请帮我解决这个问题

  • 节点-v:v16.17.1
  • npm-v:8.15.0
  • aws版本:2.1231.0
  • 发电机:3.1.0

派对有点晚了,但我遇到了麻烦,这有点令人困惑。显然,dynose使用本地的AWS系统配置(即使它可以是一组随机的字符串(。所以我要做的是

  1. 安装aws-cli
  2. 在终端/powershell中使用aws configure
  3. 提供您的accessID、密钥、区域(主要是这个(

然后它应该可以正常工作

最新更新