无法从本地计算机上的/.aws/credentials读取凭据



我在~/.aws/credentials.txt创建了一个credentials.txt我已将~/.aws/credentials.txt的凭据添加为

[bogdan-ses-user]
aws_access_key_id = ***
aws_secret_access_key = ***

本地节点JS服务器

const express = require('express');
const mysql = require('mysql');
const app = express();
// import entire SDK
var AWS = require('aws-sdk');

var credentials = new AWS.SharedIniFileCredentials({profile: 'bogdan-ses-user'});
AWS.config.credentials = credentials;
console.log(credentials);

AWS.config.getCredentials(function(err) {
if (err) {
console.log("err comes hereeee");
console.log(err.stack);
}else{
console.log('Access key: ', AWS.config.getCredentials.accessKeyId);
}
});
app.listen(3000, function(){
console.log('server has started');
});

控制台打印错误*

(基本(bogdamac:ProjectDemo iliebogdanbarbulescu$node-app.jsSharedIniFileCredentials{expired:false,expireTime:null,
refreshCallbacks:[],accessKeyId:undefined,sessionToken:未定义,文件名:未定义,配置文件:'bogdan-ses-user',
disableAssumeRole:false,preferStaticCredentials:false,
标记代码Fn:null,httpOptions:null}此处出现错误凭据错误:无法从加载凭据共享的niFileCredentials在Object.openSync(fs.js:462:3(位于Object.readFileSync(fs.js:364:35(位于Object.readFileSync(/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws sdk/lib/util.js:95:26(在IniLoader.parseFile(/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws-sdk/lib/shared-ini/ini-loader.js:6:47(在IniLoader.loadFrom(/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws sdk/lib/shared ini/ini-loader.js:56:30(位于Object.getProfilesFromSharedConfig(/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws sdk/lib/util.js:965:39(位于SharedIniFileCredentials.load(/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws sdk/lib/credentials/shared_ini_file_credentials.js:96:31(位于SharedIniFileCredentials.coalsecRefresh(/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws sdk/lib/credentials.js:205:12(位于SharedIniFileCredentials.refresh(/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws sdk/lib/credentials/shared_ini_file_credentials.js:168:10(位于SharedIniFileCredentials.get(/Users/iliebogdanbarbulescu/Documents/ProjectDemo/node_modules/aws sdk/lib/credentials.js:122:12(服务器已开始成功连接完成

正如文档所说:

filename(字符串(--默认值:'~/.aws/credentials'或由aws_SHARED_credentials_FILE进程env-var定义--加载凭据时使用的文件名。

因此您可以:

  • 将文件~/.aws/credentials.txt重命名为~/.aws/credentials
  • 设置环境变量AWS_SHARED_CREDENTIALS_FILE=~/.aws/credentials
  • 使用filename选项:
var credentials = new AWS.SharedIniFileCredentials({filename: '~/.aws/credentials.txt', profile: 'bogdan-ses-user'});

最新更新