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将所有这些环境变量传入