更改日志显示
Load config from ~/.aws/config if AWS_SDK_LOAD_CONFIG is set.
找不到有关如何加载配置的任何示例或文档。任何帮助!
3 回答
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
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 过期之前不会起作用。
有这方面的文档:
我建议安装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
更新:
config
并credentials
同时制作和引用。当你运行它时,它会生成两个文件。包含 AccessKey 和 SecretKey 的文件 - 以及包含响应类型和区域的文件。没有必要明确定义或引用该文件。aws configure
credentials
config
config