我试图在筛选实例时找出“未标记的”和“空值”字段是什么。下面的函数适用于带有标记的所有者的实例,其值为“test”。然而,当我尝试代替“test”的任何东西时(空值0,空值0等等)。该函数要么返回每个实例,要么该函数不返回任何实例。我已经看过无数页的文件,任何帮助都是非常感谢的。如果我不能让它工作,下一步将是使用Lambda、Tag Editor和Beautiful SoupE 219来定位E 120特定的E 221无标记和空的实例并关闭它们。
import boto3
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
ec2 = boto3.resource('ec2')
def lambda_handler(event, context):
filters1 = [{'Name': 'instance-state-name',
'Values': ['running']}]
base = ec2.instances.filter(Filters=filters1)
filters2 = [{'Name': 'tag:Owner',
'Values': ['test']}]
instances = base.filter(Filters=filters2)
for instance in instances:
print(instance.id)
RunningInstances = [instance.id for instance in instances]
ec2.instances.filter(InstanceIds=RunningInstances).stop()发布于 2016-03-17 14:34:58
只需使用describe_instances()列出所有标记、运行状态和从那里生成控件。
ec2 = boto3.client("ec2")
reservations = ec2.describe_instances()["Reservations"]
for each_item in reservations :
for instance in each_item["Instances"]:
print "{} {} {}".format(instance["InstanceId"], instance["State"]["Name"], instance["Tags"] ) 配置规则招致的费用:每个活动规则每月2美元。因此,谨慎使用它,您不会想要创建太多的冗余规则来触发。
发布于 2016-12-15 00:11:59
我也面临着类似的情况。我现在能看到的最好的选择就是。
tagged-by:boto3我还在用代码写这篇文章,一旦做完就会更新答案。
发布于 2019-11-08 12:15:23
要指出的是,如果在屏幕中选择“(不是标记的)”选项,它就不会列出结果资源组中的任何内容。从这个角度来看,这与使用“(而不是标记)”作为AWS cli中的值之一是一样的。
aws resource-groups create-group --name Non-Project-Linked-Resources --description "All resources NOT tagged with a ProjectNumber" --resource-query '{"Type":"TAG_FILTERS_1_0", "Query":"{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"ProjectNumber\",\"Values\":[\"\",\"(not tagged)\"]}]}"}'其效果与选择ProjectNumber作为键、添加(空值)和(未标记)作为值完全相同。我所读到的一致意见是,服务器端查询将不支持搜索没有标记的情况。
https://stackoverflow.com/questions/35810077
复制相似问题