繁体   English   中英

使用Node从AWS CLI获取区域

[英]Get Region from AWS CLI using Node

我已经在本地计算机上安装了AWS-CLI 我已经创建了一个配置文件。 但是我不知道如何从代码中的配置文件中获取区域。

var credentials = new AWS.SharedIniFileCredentials({ profile: node_env });
console.log(credentials);

我可以获取access ID但无法获取区域。 还有其他方法可以到达该区域吗?

使用aws configure设置凭据时,它将创建两个文件

  • ~/.aws/config
  • ~/.aws/credentials

区域和输出信息保存在~/.aws/configaccess_keysecret_key存储在~/.aws/credentials

要使用aws-cli

aws configure get region --profile test

它将返回该区域以进行配置文件测试。

但是如果使用Node.js,则略有不同,它不会设置区域,并且在打印凭据时会得到空区域。

默认情况下,JavaScript SDK不会选择区域。 但是,您可以使用环境变量,共享配置文件或全局配置对象来设置区域。

因此,您有两种选择。

使用共享的配置文件

就像共享凭据文件使您可以存储供SDK使用的凭据一样,您可以将区域和其他配置设置保留在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

设置区域共享加载节点凭证

设置区域的优先顺序

  • 区域设置的优先顺序如下:

  • 如果将Region传递给客户端类构造函数,则使用该Region。 如果没有,那么...

  • 如果在全局配置对象上设置了区域,则使用该区域。 如果没有,那么...

  • 如果AWS_REGION环境变量为真实值,则使用该区域 如果没有,那么...

  • 如果AMAZON_REGION环境变量是真实值,则使用该Region 如果没有,那么...

  • 如果将AWS_SDK_LOAD_CONFIG环境变量设置为真实值,并且共享凭证文件(~/.aws/credentials or the path indicated by AWS_SHARED_CREDENTIALS_FILE)包含用于配置的配置文件的Region,则使用该Region 如果没有,那么...

  • 如果AWS_SDK_LOAD_CONFIG环境变量设置为一个truthy值和配置文件(~/.aws/config or the path indicated by AWS_CONFIG_FILE)包含用于配置的配置文件的区域 ,即区域被使用。

或者,您可以使用SharedIniFileCredentials方法将~/.aws/config读取为文件,而不是nodejs中的AWS config。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM