如何通过CodeBuild获取AWS分区信息?
AWS CodeBuild容器中获取AWS分区的方法
CodeBuild默认没有提供直接对应AWS分区(如aws、aws-cn、aws-us-gov)的内置环境变量,但可以通过现有环境变量推导或者借助AWS CLI获取。
方法一:通过AWS_REGION环境变量推导
CodeBuild容器会默认注入AWS_REGION环境变量,你可以根据区域前缀判断对应的分区:
- 标准商业分区:区域格式为
us-east-1、eu-west-1等,对应分区aws - 中国区:区域以
cn-开头(如cn-north-1、cn-northwest-1),对应分区aws-cn - 美国联邦区:区域以
us-gov-开头(如us-gov-west-1、us-gov-east-1),对应分区aws-us-gov
Shell脚本示例
# 根据AWS_REGION推导分区 if [[ "$AWS_REGION" == cn-* ]]; then AWS_PARTITION="aws-cn" elif [[ "$AWS_REGION" == us-gov-* ]]; then AWS_PARTITION="aws-us-gov" else AWS_PARTITION="aws" fi # 输出分区结果 echo "当前AWS分区: $AWS_PARTITION"
方法二:通过AWS CLI查询
如果你的CodeBuild服务角色拥有ec2:DescribeRegions权限,可以使用AWS CLI直接查询当前区域所属的分区:
AWS_PARTITION=$(aws ec2 describe-regions --region "$AWS_REGION" --query 'Regions[0].Partition' --output text) echo "当前AWS分区: $AWS_PARTITION"
这种方式更精准,但需要额外的权限配置,且执行效率不如环境变量推导。
内容的提问来源于stack exchange,提问作者alltej
相关产品推荐
相关产品推荐

