我正在运行一个使用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文件。然而,从读取,特别是here,它似乎应该自动检测我的环境变量,而不需要有一个凭证文件。
我的问题是,如何才能让aws-sdk使用我的环境变量中的凭据,而不会因为没有凭据文件而出错?
发布于 2020-02-03 14:50:49
我相信如果你访问的功能需要一个区域(这是最多的),你就会遇到这个问题。
您需要导出AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY和AWS_REGION。您缺少AWS_REGION。
注意:如果这不起作用,您可以提供AWS SDK版本的堆栈跟踪。
发布于 2018-07-11 14:57:31
AWS-SDK自动获取.aws/凭据文件的凭据。
在Windows中,它位于C:\Users\username.aws\credentials
[default] AWS_ACCESS_KEY_ID=XXXXXXXXXXXXX AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXX
发布于 2019-02-23 04:05:41
您是否在shell配置文件中导出了环境变量?如果您能够在节点代码中打印process.env.AWS_ACCESS_KEY_ID,那么您的节点就能够读取环境文件。aws sdk获取凭证的precedence顺序是:首先是环境变量,然后是凭证文件。因此,您的环境变量很可能没有正确导出(或者对于您的节点代码是不可读的)。请注意,您必须重新启动终端控制台,才能使env var更改生效。希望这能有所帮助。
https://stackoverflow.com/questions/51254047
复制相似问题