使用aws cli,确定当前区域的最佳方法是什么。

问题描述 投票:9回答:5

交互式地,我可以使用“aws configure”来更改或查看默认区域。是否有“pwd”之类的功能,记录与否,允许我在脚本中确定或确认当前区域?即使没有定义AWS_DEFAULT_REGION?我想要一个脚本在许多配置文件下运行。我可以从aws配置列表中删除,但是有什么更整洁的东西吗?

amazon-web-services region aws-cli
5个回答
17
投票

也许,AWS没有提供获取当前区域。但是,它们不是获取当前区域,而是通过实例元数据提供当前可用区域。所有可用区域都包含当前区域,因此您可以在EC2实例的脚本中替换当前可用区域的一部分来确定当前区域。

例如:

curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone | sed 's/\(.*\)[a-z]/\1/'

20
投票

aws configure get region将在您的脚本中为您提供当前区域。

如果您使用的是个人资料,请输入aws configure get --profile $PROFILE_NAME


4
投票

aws configure get region很整洁,但即使设置了AWS_DEFAULT_REGION,我也希望能够了解该地区。不幸的是,根据文件:

请注意,aws configure get仅查看AWS配置文件中的值。它不解析在其他任何地方指定的配置变量,包括环境变量,命令行参数等。

相反,假设你安装了Python和boto3,你可以运行:

python -c 'import boto3;print(boto3.Session().region_name)'

EG

$ AWS_DEFAULT_REGION=us-east-1 python -c 'import boto3;print(boto3.Session().region_name)'
us-east-1

0
投票

这就是方法

aws configure get region

0
投票

该地区如下:

curl http://169.254.169.254/latest/dynamic/instance-identity/document

所以...

curl http://169.254.169.254/latest/dynamic/instance-identity/document|grep region|awk -F\" '{print $4}'
© www.soinside.com 2019 - 2024. All rights reserved.