我正在运行一个使用该aws-sdk
库的 NodeJS 应用程序。我导出了以下环境变量:
AWS_ACCESS_KEY_ID=XXXXXXXXXXXXX
AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXX
env
我可以通过运行命令以及console.log(process.env)
在我的节点代码中运行来验证它们是否设置正确。
运行我的应用程序时出现以下错误:
Error: ENOENT: no such file or directory, open '/root/.aws/credentials'
at Object.fs.openSync (fs.js:577:3)
at Object.fs.readFileSync (fs.js:483:33)
at Object.readFileSync (/app/node_modules/aws-sdk/lib/util.js:97:26)
at SharedIniFile.loadFile [as ensureFileLoaded] (/app/node_modules/aws-sdk/lib/shared_ini.js:19:18)
at SharedIniFile.loadProfile [as getProfile] (/app/node_modules/aws-sdk/lib/shared_ini.js:52:10)
at Config.region (/app/node_modules/aws-sdk/lib/node_loader.js:88:34)
at Config.set (/app/node_modules/aws-sdk/lib/config.js:448:39)
at Config.<anonymous> (/app/node_modules/aws-sdk/lib/config.js:283:12)
at Config.each (/app/node_modules/aws-sdk/lib/util.js:485:32)
at new Config (/app/node_modules/aws-sdk/lib/config.js:282:19)
at Object.<anonymous> (/app/node_modules/aws-sdk/lib/node_loader.js:99:14)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
显然,确切的问题很明显我没有/root/.aws/credentials
文件。但是从阅读中,特别是这里似乎 sdk 应该自动检测我的环境变量并且不需要有凭据文件。
我的问题是我怎样才能aws-sdk
在我的环境变量中使用凭据而不会因为没有凭据文件而出错?