Javascript 使用节点从AWS CLI获取区域

Javascript 使用节点从AWS CLI获取区域,javascript,node.js,amazon-web-services,aws-cli,Javascript,Node.js,Amazon Web Services,Aws Cli,我已经在本地机器上安装了。我已经创建了一个配置文件。但我不知道如何从我的代码中从配置文件中获取区域 代码 var credentials = new AWS.SharedIniFileCredentials({ profile: node_env }); console.log(credentials); 我可以获取访问ID,但无法获取区域。是否有其他方法获取区域?使用aws configure设置凭据时,会创建两个文件 ~/.aws/config ~/.aws/凭证 保存在~/.aws/

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

代码

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

我可以获取
访问ID
,但无法获取区域。是否有其他方法获取区域?

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

  • ~/.aws/config
  • ~/.aws/凭证
保存在
~/.aws/config
访问密钥
密钥
下的区域和输出信息存储在
~/.aws/credentials

使用aws cli获取

aws配置获取区域--配置文件测试

它将返回该区域进行剖面测试

但在Nodejs的情况下,它有一点不同,当您打印凭证时,它和您得到的是空区域

默认情况下,SDK for JavaScript不选择区域。然而, 可以使用环境变量(共享配置)设置区域 文件或全局配置对象

所以你有两个选择

使用共享配置文件

var credentials = new AWS.SharedIniFileCredentials({ profile: node_env });
console.log(credentials);
与共享凭据文件非常相似,它允许您存储 通过SDK使用,您可以保留您的区域和其他配置 SDK使用的名为config的共享文件中的设置。如果 AWS_SDK_LOAD_CONFIG环境变量已设置为truthy 值时,SDK for JavaScript会自动搜索配置文件 当它加载时。保存配置文件的位置取决于您的 操作系统:

Linux、macOS或Unix用户:~/.aws/config

Windows用户:C:\users\USER\u NAME\.aws\config

如果您还没有共享配置文件,可以在指定目录中创建一个。在下面的示例中,配置文件设置区域和输出格式

[default]
   region=us-west-2
   output=json
vs

设置区域的优先顺序

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

  • 如果将区域传递给客户端类构造函数,则使用该区域。如果没有,则…

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

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

  • 如果
    AMAZON\u REGION
    环境变量是真实值,则使用该区域。如果没有,那么

  • 如果
    AWS\u SDK\u LOAD\u CONFIG
    环境变量设置为真实值,并且共享凭据文件
    (~/.AWS/credentials或AWS\u shared\u credentials\u文件指示的路径)
    包含配置的配置文件的区域,则使用该区域。如果没有,那么

  • 如果
    AWS\u SDK\u LOAD\u CONFIG
    环境变量设置为真实值,并且配置文件
    (~/.AWS/CONFIG或AWS\u CONFIG\u文件指示的路径)
    包含配置的配置文件的区域,则使用该区域


或者,您可以将
~/.aws/config
作为文件读取,而不是使用
SharedIniFileCredentials
方法在nodejs中作为aws配置读取

谢谢,这是我见过的最详细的答案。现在,我的所有源代码中都引用了它,以便有人能够理解我为什么通过docker compose将所有这些环境变量传入