【问题标题】:AWS JS SDK doesn't Loading Credentials from environment variablesAWS JS SDK 不从环境变量加载凭证
【发布时间】:2019-01-15 12:48:58
【问题描述】:

我将 .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",

【问题讨论】:

  • 这是官方docs的链接,它应该可以工作
  • 我试过了,但是不行@AloAlo

标签: node.js amazon-web-services environment-variables aws-sdk


【解决方案1】:

我遇到了同样的问题,然后我发现我必须在 shell 配置文件中导出 env 变量(在我的情况下为 zsh 是 ~/.zshrc - 只需添加 export AWS_ACCESS_KEY_ID=<key> 和其他 AWS vars 相同)。重新启动终端控制台,然后我的节点 aws sdk 能够拿起它。如果您使用的是节点 aws sdk,那么我建议您在代码中打印 process.env.AWS_ACCESS_KEY_ID 以验证您的节点代码确实能够首先读取 env 变量。希望对您有所帮助。

【讨论】:

    【解决方案2】:

    老问题,但我在测试时遇到了这个问题。

    这是由于 AWS 开发工具包在首次需要或导入 sdk 时捕获了凭证。

    当你运行dotenv.config()时,它已经完成了,不会重新读取环境变量。

    自己更新 AWS 配置会设置值,是一个合理的解决方案。

    【讨论】:

      猜你喜欢
      • 2018-12-17
      • 1970-01-01
      • 2021-10-22
      • 2020-11-26
      • 1970-01-01
      • 2015-10-28
      • 2020-12-21
      • 2018-07-07
      • 2020-05-20
      相关资源
      最近更新 更多