Jac*_*ore 5 amazon-web-services node.js aws-sdk aws-sdk-js
我正在运行一个使用该aws-sdk
库的 NodeJS 应用程序。我导出了以下环境变量:
AWS_ACCESS_KEY_ID=XXXXXXXXXXXXX
AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXX
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
显然,确切的问题很明显我没有文件/root/.aws/credentials
。然而,从阅读来看,特别是在这里,sdk 似乎应该自动检测我的环境变量,并且不需要有凭据文件。
我的问题是如何才能aws-sdk
在环境变量中使用凭据,而不会出现没有凭据文件的错误?
AWS-SDK 自动获取 .aws/credential 文件的凭证。
[default]
AWS_ACCESS_KEY_ID=XXXXXXXXXXXXX
AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXX
归档时间: |
|
查看次数: |
10078 次 |
最近记录: |