我是Python和编程的新手。我需要使用Python 3.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和标记值的组合或两个以后可以组合的变量结束。
答案 0 :(得分:0)
更改
print ("Tag has expired!!!!!!!!!!!")
到
# initialise array
expiredInstances=[]
.
.
.
.
.
print ("%s has expired" % instance.id)
expiredInstances.append({'instanceId':instance.id,'tag-value':tag['Value']})
这将为您提供带有标签值的instanceId数组