即使配置了过滤器,AWS Lambda 函数也会停止所有实例
Posted
技术标签:
【中文标题】即使配置了过滤器,AWS Lambda 函数也会停止所有实例【英文标题】:AWS Lambda function stops all instances even the filter is configured 【发布时间】:2017-04-01 00:31:07 【问题描述】:通过运行此代码,我只想停止带有标签 Class:ClassB 的实例。 测试功能后,关闭所有实例:
import boto3
ec2 = boto3.resource('ec2')
def lambda_handler(event, context):
filters = ['Name': 'tag:Class', 'Values':['ClassB'],'Name': 'instance-state-name', 'Values': ['running']]
instances=ec2.instances.filter(Filters=filters)
for instance in instances:
ec2.instances.stop()
print 'stop your instances: ' + str(instances)
问题出在哪里?
【问题讨论】:
您的所有实例都有该标签吗?代码看起来不错。 @helloV 不,我只有两个带有这个标签的实例!是的,这很令人惊讶 【参考方案1】:应该是:
instance.stop()
您的代码不正确:
ec2.instances.stop()
【讨论】:
以上是关于即使配置了过滤器,AWS Lambda 函数也会停止所有实例的主要内容,如果未能解决你的问题,请参考以下文章
AWS Lambda:即使在STS:AssumeRole成功之后,lambda函数仍然使用旧的IAM角色
aws lambda list-functions 只过滤掉函数名称?