我是Python和编程的新手。我需要使用Python3.7创建一个Lambda函数,它将查找特定的标记/值组合,并返回标记值和实例id。我可以用我当前的代码同时实现这两个功能,但我很难弄清楚如何将它们组合在一起。boto3.resource给我标记值,boto3.client给我实例id。
我有一个EC2实例(1000个),在这些实例中,我们需要监视标记'expenddate‘的标记值,并将该值(mm/dd/yy)与当前日期(mm/dd/yy)进行比较,并在'expenddate’值小于当前日期时发出警报。
import boto3
import collections
import datetime
import time
import sys
from datetime import date as dt
def lambda_handler(event, context):
today = datetime.date.today()
mdy = today_string = today.strftime('%m/%d/%y')
ec2 = boto3.resource('ec2')
for instance in ec2.instances.all():
if instance.tags is None:
continue
for tag in instance.tags:
if tag['Key'] == 'expenddate':
if (tag['Value']) <= mdy:
print ("Tag has expired!!!!!!!!!!!")
else:
print ("goodby")
client = boto3.client('ec2')
resp = client.describe_instances(Filters=[{
'Name': 'tag:expenddate',
'Values': ['*']
}])
for reservation in resp['Reservations']:
for instance in reservation['Instances']:
print("InstanceId is {} ".format(instance['InstanceId']))
我希望最终得到一个组合的实例id和标记值,或者两个稍后可以组合的变量。
发布于 2019-04-19 02:52:54
变化
print ("Tag has expired!!!!!!!!!!!")
至
# initialise array
expiredInstances=[]
.
.
.
.
.
print ("%s has expired" % instance.id)
expiredInstances.append({'instanceId':instance.id,'tag-value':tag['Value']})
这将为您提供一个带有标记值的instanceId数组
https://stackoverflow.com/questions/55751818
复制相似问题