如何使用boto3获取单个EC2实例的全部标签并追加新标签
基于boto2实现EC2实例标签查询与追加
1 获取指定EC2实例的全部标签
直接通过实例ID查询实例对象后,访问内置的tags属性即可拿到全部标签的键值对字典,无需额外指定过滤条件,示例代码如下:
import boto.ec2 # 初始化对应区域的EC2连接 conn = boto.ec2.connect_to_region("你实例所在的区域ID,例如cn-north-1") # 按指定实例ID查询实例 reservations = conn.get_all_instances(instance_ids=['你的EC2实例ID']) instance = reservations[0].instances[0] # 获取全部标签,返回格式为 {'标签键1': '标签值1', '标签键2': '标签值2'} current_tags = instance.tags
2 追加新标签
使用实例内置的add_tags方法即可完成标签追加,默认不会覆盖未传入的原有标签,若需要避免覆盖已有同键标签,可先做过滤处理:
直接追加(存在同键则覆盖原有值)
# 传入要追加的标签键值对 instance.add_tags({ "新标签键1": "新标签值1", "新标签键2": "新标签值2" })
仅追加不存在的新标签(不覆盖原有同键标签)
new_tags = { "新标签键1": "新标签值1", "新标签键2": "新标签值2" } # 过滤掉已存在的标签键 tags_to_add = {k: v for k, v in new_tags.items() if k not in current_tags} if tags_to_add: instance.add_tags(tags_to_add)
内容的提问来源于stack exchange,提问作者user1898250
相关产品推荐
相关产品推荐

