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

Python BOTO3脚本无法提取AWS EC2实例NAME标签值问题求助

错误原因

原代码中Instances['Tags']返回的是由多个标签键值对组成的列表,而非字典结构,Instances['Tags']['Key'=='Name']的写法实际会先计算'Key'=='Name'得到布尔值False,等价于取列表索引为0的元素,因此无法正确筛选到KEY为NAME的标签值。

修正后完整代码
import boto3
import csv

client = boto3.client('ec2')

response = client.describe_instances(
    Filters=[
        {
        'Name':'tag:STATE','Values':['GREEN']
        }
    ]
)

detail=[]

for Reservations in response["Reservations"]:
    for Instances in Reservations["Instances"]:
        # 查找NAME标签对应的值,无标签时默认填充「无名称」
        instance_name = "无名称"
        for tag in Instances['Tags']:
            if tag['Key'] == 'NAME':
                instance_name = tag['Value']
                break
        detail.append({
            'ID':Instances['InstanceId'],
            'Status':Instances['State']['Name'],
            'Name':instance_name
        })

header=['ID','Status','Name']
with open('EC2_Detail.csv','w', encoding='utf-8') as file:
    writer=csv.DictWriter(file, fieldnames=header)
    writer.writeheader()
    writer.writerows(detail)
补充说明
  • 新增了标签匹配逻辑,遍历实例标签列表精准匹配KEY为NAME的标签取值
  • 增加了缺省值处理,若实例未配置NAME标签会自动填充「无名称」,避免代码运行报错
  • 导出CSV时新增了utf-8编码声明,避免中文名称乱码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:06:02