使用 Python 在 AWS Lambda 中进行反向搜索
Inverse search in AWS Lambda using Python
我正在尝试获取所有未附加到自动缩放组的实例。自动缩放组中的所有实例都有一个标签 aws:autoscaling:groupName。我可以用这个得到那些实例:
reservations = ec.describe_instances(
Filters=[
# Instances in autoscaling group
{'Name': 'tag-key', 'Values': ['aws:autoscaling:groupName']},
# Instances should be in running mode
{'Name': 'instance-state-name', 'Values': ['running']}
]
).get(
'Reservations', []
)
instances = sum(
[
[i for i in r['Instances']]
for r in reservations
], [])
print "Number of the instances in autoscaling: %d" % len(instances)
但我真正需要的是不在自动缩放中的实例。由于 AWS 控制台中有一个 inverse search,我希望 Python 中也有。
以下代码可以为您完成。到目前为止,boto 中没有直接的反向搜索选项。希望有一天,有人会添加该选项:)
https://github.com/boto/boto3/issues/173
reservations = ec.describe_instances(
Filters=[
# Instances should be in running mode
{'Name': 'instance-state-name', 'Values': ['running']}
]
)
Count=0
for Instances in reservations['Reservations']:
for Instance in Instances['Instances']:
if "aws:autoscaling:groupName" not in str(Instance):
# your logic on servers without AutoScaling Group goes here
Count=Count+1
print "Number of the instances Without autoscaling: ", Count
我正在尝试获取所有未附加到自动缩放组的实例。自动缩放组中的所有实例都有一个标签 aws:autoscaling:groupName。我可以用这个得到那些实例:
reservations = ec.describe_instances(
Filters=[
# Instances in autoscaling group
{'Name': 'tag-key', 'Values': ['aws:autoscaling:groupName']},
# Instances should be in running mode
{'Name': 'instance-state-name', 'Values': ['running']}
]
).get(
'Reservations', []
)
instances = sum(
[
[i for i in r['Instances']]
for r in reservations
], [])
print "Number of the instances in autoscaling: %d" % len(instances)
但我真正需要的是不在自动缩放中的实例。由于 AWS 控制台中有一个 inverse search,我希望 Python 中也有。
以下代码可以为您完成。到目前为止,boto 中没有直接的反向搜索选项。希望有一天,有人会添加该选项:)
https://github.com/boto/boto3/issues/173
reservations = ec.describe_instances(
Filters=[
# Instances should be in running mode
{'Name': 'instance-state-name', 'Values': ['running']}
]
)
Count=0
for Instances in reservations['Reservations']:
for Instance in Instances['Instances']:
if "aws:autoscaling:groupName" not in str(Instance):
# your logic on servers without AutoScaling Group goes here
Count=Count+1
print "Number of the instances Without autoscaling: ", Count