You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助修改AWS CLI Bash脚本:遍历多配置文件与区域

修改后的多配置文件+多区域EC2实例查询脚本

先创建一个存储AWS配置文件的文本文件,比如命名为aws_profiles.txt,每行填写一个配置文件名称,示例内容:

default
dev-profile
prod-profile

接下来是修改后的脚本,实现同时遍历配置文件和区域:

# 定义区域和配置文件的文件名
REGIONS_FILE="aws_regions.txt"
PROFILES_FILE="aws_profiles.txt"

# 读取区域列表和配置文件列表
AWSREGIONS=$(cat "$REGIONS_FILE")
AWSPROFILES=$(cat "$PROFILES_FILE")

# 外层循环遍历每个AWS配置文件
for profile in $AWSPROFILES
do
    echo "\n===== 使用配置文件: '$profile' 查询实例 ====="
    # 内层循环遍历每个区域
    for region in $AWSREGIONS
    do
        echo "\n正在查询区域: '$region' 下的实例..."
        aws ec2 describe-instances \
            --filters "Name=tag:name,Values=test" \
            --output text \
            --query 'Reservations[].Instances[].[InstanceId, PrivateIpAddress, Tags[?Key==`Name`].Value[] | [0]]' \
            --region "$region" \
            --profile "$profile"
    done
done

关键修改说明

  • 新增PROFILES_FILE变量指定配置文件列表路径,读取该文件内容得到配置文件列表
  • 采用嵌套循环:先遍历每个AWS配置文件,再在每个配置文件下遍历所有区域执行查询
  • 把原脚本中固定的--profile default替换为遍历变量--profile "$profile"
  • 增加分隔线输出,方便区分不同配置文件的查询结果

注意事项

  • 确保aws_profiles.txt文件中每行只有一个配置文件名,避免多余空格或空行
  • 确认每个配置文件已在本地AWS配置文件(通常是~/.aws/config或~/.aws/credentials)中正确配置
  • 如果区域文件或配置文件路径不在脚本执行目录,需填写完整绝对路径

内容的提问来源于stack exchange,提问作者difficultyadequate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 19:35:36