交互式地,我可以使用“aws configure”来更改或查看默认区域。是否有“pwd”之类的功能,记录与否,允许我在脚本中确定或确认当前区域?即使没有定义AWS_DEFAULT_REGION?我想要一个脚本在许多配置文件下运行。我可以从aws配置列表中删除,但是有什么更整洁的东西吗?
也许,AWS没有提供获取当前区域。但是,它们不是获取当前区域,而是通过实例元数据提供当前可用区域。所有可用区域都包含当前区域,因此您可以在EC2实例的脚本中替换当前可用区域的一部分来确定当前区域。
例如:
curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone | sed 's/\(.*\)[a-z]/\1/'
aws configure get region
将在您的脚本中为您提供当前区域。
如果您使用的是个人资料,请输入aws configure get --profile $PROFILE_NAME
。
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
这就是方法
aws configure get region
该地区如下:
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}'