我将.env文件配置为具有AWS凭证,但是它不起作用。
在文档中,它被写成配置将从.env文件自动加载。但事实并非如此。
我尝试添加以下内容
aws.config.update({
region: process.env.AWS_region,
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
});
那行得通。
AWS SDK为什么不自动加载选项的任何想法吗?
"aws-sdk": "^2.288.0",
"dotenv": "^6.0.0",
答案 0 :(得分:1)
老问题,但因为我在测试中遇到了这个问题而回答。
这是由于 AWS 开发工具包在首次需要或导入 sdk 时捕获凭证。
当您运行 dotenv.config()
时,它已完成此操作,不会重新读取环境变量。
自己更新 AWS 配置会设置这些值,这是一个合理的解决方案。
答案 1 :(得分:0)
我遇到了同样的问题,然后发现我必须在外壳配置文件中导出env变量(在我的情况下为zsh-〜/ .zshrc-只需添加export AWS_ACCESS_KEY_ID=<key>
,其他AWS var则添加相同的内容)。重新启动终端控制台,然后我的节点aws sdk能够将其拾取。如果您使用的是节点aws sdk,那么建议您在代码中打印process.env.AWS_ACCESS_KEY_ID
,以首先验证您的节点代码确实能够读取env变量。希望有帮助。