Node.js AWS DynamoDB错误:“请求中包含的安全令牌无效。”尽管凭据位于共享安全文件中

Node.js AWS DynamoDB错误:“请求中包含的安全令牌无效。”尽管凭据位于共享安全文件中,node.js,amazon-web-services,amazon-dynamodb,Node.js,Amazon Web Services,Amazon Dynamodb,我在~/.aws/credentials中放置了正确且最近更新的凭据,以确保它们是有效的凭据 但当我给迪纳摩打电话时 this.docClient=new AWS.DynamoDB.DocumentClient this.docClient.scan(params).promise().then(data => { console.log('data received',data) }).catch(err => { console.log(

我在~/.aws/credentials中放置了正确且最近更新的凭据,以确保它们是有效的凭据

但当我给迪纳摩打电话时

this.docClient=new AWS.DynamoDB.DocumentClient

 this.docClient.scan(params).promise().then(data => {
        console.log('data received',data)
    }).catch(err => {
        console.log('error from scan',err)
    })
我明白了

请求中包含的安全令牌无效

作为扫描中的错误。其他DynamoDB调用也会在那里失败,并出现相同的错误

我在这里有点不知所措,因为它应该会起作用。有人能建议我在哪里查找问题吗?

添加答案:

凭据文件中使用的变量错误。凭据文件要求定义以下变量

aws_access_key_id =

aws_secret_access_key =

aws_session_token =
AWS_会话_令牌是在会话中导出时要使用的值

export AWS_SESSION_TOKEN=
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=

你是说aws_会话_令牌,对吗?AWS_会话_令牌与env下的导出一起使用variable@error404事实上,我认为这是一个错误。当您使用AWS仪表板生成它并下载该文件时,它的格式就是这样的——将该变量大写。我把它改成小写,现在看起来很好用。在我将其标记为“已回答”之前,我想再做一点测试。这是连接到AWS仪表板的内部仪表板中的一个错误:它生成了大写字母的变量。
export AWS_SESSION_TOKEN=
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=