Я скопировал код из Google, который должен получить возраст ключей доступа от AWS, который работает с lambda, и отправить список пользователей, которые превысили ключи доступа более чем на 90 дней, и сценарий отправит нам письмо через SNS.,Но в сценарии, когда он печатает и отправляет выходные данные, он не отправляет весь список пользователей сразу в одном письме, а отправляет почту каждому пользователю, чей возраст ключа доступа превышен.Примечание: я очень и очень плохо разбираюсь в написании сценариев на Python, я базовый ученик.
Мое требование: когда лямбда-функция запускается, сценарий должен отправить список пользователей через SNS, чьи ключи доступа превышены более чем на 90 дней, в одном письме вместо каждого пользователя.
Этодля устаревания ключа доступа aws, и я попытался реализовать его в, и это работало, но мне нужен правильный вывод
импорт boto3, json, время, дата и время, sys
client = boto3.client ('iam') sns = boto3.client (' sns ')
usernames = []
def lambda_handler (событие, контекст):
users = client.list_users()
for key in users['Users']:
a = str(key['UserName'])
usernames.append(a)
for username in usernames:
try:
res = client.list_access_keys(UserName=username)
accesskeydate = res['AccessKeyMetadata'][0]['CreateDate']
accesskeydate = accesskeydate.strftime("%Y-%m-%d %H:%M:%S")
currentdate = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())
accesskeyd = time.mktime(datetime.datetime.strptime(accesskeydate, "%Y-%m-%d %H:%M:%S").timetuple())
currentd = time.mktime(datetime.datetime.strptime(currentdate, "%Y-%m-%d %H:%M:%S").timetuple())
active_days = (currentd - accesskeyd) / 60 / 60 / 24 ### We get the data in seconds. converting it to days
if 90 < active_days:
a = str(username) + ' has access keys that are ' + str(int(active_days)) + ' days old! '
print(a)
a.append(e)
except:
e = str(username) + (' does not have an accesskey assigned ')
f = str('')
finallist = ''.join(str(a))
finallist = finallist.replace('"', '').replace("'", '').replace(",", '')
sns_message = (finallist)
topic_arn = ' ' # replace with your ARN
response = sns.publish(TopicArn=topic_arn, Message=sns_message)
Я ожидаю вывод водно письмо вместо того, чтобы отправлять каждого пользователя в нескольких письмах.