首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Lambda中使用EC2时,尝试对“未标记”和“空值”Boto3实例进行筛选,然后关闭它们

在Lambda中使用EC2时,尝试对“未标记”和“空值”Boto3实例进行筛选,然后关闭它们
EN

Stack Overflow用户
提问于 2016-03-05 04:36:57
回答 3查看 3.6K关注 0票数 1

我试图在筛选实例时找出“未标记的”和“空值”字段是什么。下面的函数适用于带有标记的所有者的实例,其值为“test”。然而,当我尝试代替“test”的任何东西时(空值0,空值0等等)。该函数要么返回每个实例,要么该函数不返回任何实例。我已经看过无数页的文件,任何帮助都是非常感谢的。如果我不能让它工作,下一步将是使用Lambda、Tag Editor和Beautiful SoupE 219来定位E 120特定的E 221无标记和空的实例并关闭它们。

代码语言:javascript
复制
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()
EN

回答 3

Stack Overflow用户

发布于 2016-03-17 14:34:58

只需使用describe_instances()列出所有标记、运行状态和从那里生成控件。

代码语言:javascript
复制
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美元。因此,谨慎使用它,您不会想要创建太多的冗余规则来触发。

票数 0
EN

Stack Overflow用户

发布于 2016-12-15 00:11:59

我也面临着类似的情况。我现在能看到的最好的选择就是。

  • 用自定义标记标记所有实例:tagged-by:boto3
  • 使用此标记筛选所有实例
  • 在实例中运行一个循环,看看这是否是唯一的avilable标记。
  • 如果是,请删除实例

我还在用代码写这篇文章,一旦做完就会更新答案。

票数 0
EN

Stack Overflow用户

发布于 2019-11-08 12:15:23

要指出的是,如果在屏幕中选择“(不是标记的)”选项,它就不会列出结果资源组中的任何内容。从这个角度来看,这与使用“(而不是标记)”作为AWS cli中的值之一是一样的。

代码语言:javascript
复制
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作为键、添加(空值)和(未标记)作为值完全相同。我所读到的一致意见是,服务器端查询将不支持搜索没有标记的情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35810077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档