我已经在本地计算机上安装了AWS-CLI。我已经创建了一个配置文件。但是我不知道如何从代码中的配置文件中获取区域。
代码
var credentials = new AWS.SharedIniFileCredentials({ profile: node_env });
console.log(credentials);
我可以得到access ID
,但我无法得到该地区。还有其他方法可以到达该区域吗?
答案 0 :(得分:0)
使用aws configure
设置凭据时,它将创建两个文件
~/.aws/config
~/.aws/credentials
区域和输出信息保存在~/.aws/config
下,access_key
和secret_key
存储在~/.aws/credentials
下。
使用aws-cli
aws configure get region --profile test
它将返回区域以进行配置文件测试。
但是对于Nodejs来说,它有点不同,它does not set region,并且在打印凭据时会得到空区域。
默认情况下,JavaScript SDK不会选择区域。然而, 您可以使用环境变量,共享配置来设置区域 文件或全局配置对象。
所以您有两个选择。
使用共享的配置文件
就像共享凭证文件一样,您可以存储以下凭证: 通过SDK使用,您可以保留您的Region和其他配置 SDK使用的名为config的共享文件中的设置。如果 AWS_SDK_LOAD_CONFIG环境变量已设置为true 值,JavaScript SDK会自动搜索配置文件 当它加载时。您保存配置文件的位置取决于您的 操作系统:
Linux, macOS, or Unix users: ~/.aws/config
Windows users: C:\Users\USER_NAME\.aws\config
如果还没有共享的配置文件,则可以在指定的目录中创建一个。在下面的示例中,配置文件设置了Region和输出格式。
[default]
region=us-west-2
output=json
setting-region与loading-node-credentials-shared
设置区域的优先顺序
“区域”设置的优先顺序如下:
如果将Region传递给客户端类构造函数,则使用该Region。如果没有,那么...
如果在全局配置对象上设置了Region,则使用该Region。如果没有,那么...
如果AWS_REGION
环境变量是真实值,则使用该 Region 。如果没有,那么...
如果AMAZON_REGION
环境变量是真实值,则使用该 Region 。如果没有,那么...
如果将AWS_SDK_LOAD_CONFIG
环境变量设置为true值,并且共享凭据文件(~/.aws/credentials or the path indicated by AWS_SHARED_CREDENTIALS_FILE)
包含用于配置的配置文件的Region,则使用 Region 。如果没有,那么...
如果将AWS_SDK_LOAD_CONFIG
环境变量设置为真实值,并且配置文件(~/.aws/config or the path indicated by AWS_CONFIG_FILE)
包含用于配置的配置文件的 Region ,则该 Region 。
或者您可以使用~/.aws/config
方法将SharedIniFileCredentials
读取为文件,而不是nodejs中的AWS配置。