15

更改日志显示 Load config from ~/.aws/config if AWS_SDK_LOAD_CONFIG is set. 找不到有关如何加载配置的任何示例或文档。任何帮助!

4

3 回答 3

22

aws-sdk 加载配置的方式有点神奇

要么设置环境变量

export AWS_SDK_LOAD_CONFIG="true"

或在加载 aws-sdk 集之前

process.env.AWS_SDK_LOAD_CONFIG = true; 

然后加载aws模块;

var AWS = require('aws-sdk');

您可以通过以下方式直接访问该区域

AWS.config.region
于 2017-06-22T12:11:10.187 回答
1

sreenivas 的答案是正确的。这似乎也是不编写自定义函数的唯一方法。

我在源代码中追溯了它,它的加载~/.aws/config方式类似于这个伪代码:

if process.env.AWS_SDK_LOAD_CONFIG:
  return load('~/.aws/credentials').overwrite('~/.aws/config')
else:
  return load('~/.aws/credentials')

这也意味着您可以在之后设置环境变量require('aws-sdk'),只要您在new SharedIniFileCredentials({..})或之前进行credentials.refresh()。请注意,credentials.get()在 sessiontoken 过期之前不会起作用。

于 2019-06-14T20:27:29.503 回答
0

有这方面的文档:

我建议安装awscli工具来设置它,然后aws configure在您的终端中运行。默认情况下,您在本地主机上运行的任何内容都将采用config文件中列出的凭据,除非指定采用不同的配置文件。

第一个链接的示例:

AWS.config.credentials = new AWS.SharedIniFileCredentials( { profile: 'work-account' } );

如果您使用 CLI 运行脚本:

AWS_PROFILE=work-account node script.js

如果您只使用 CLI 工具而不是 JavaScript:

aws s3 ls --profile work-account

更新:

configcredentials同时制作引用。当你运行它时,它会生成两个文件。包含 AccessKey 和 SecretKey 的文件 - 以及包含响应类型和区域的文件。没有必要明确定义或引用该文件。aws configurecredentialsconfigconfig

于 2017-06-08T18:52:45.143 回答