首页 > 解决方案 > 将 SNS 主题添加到 python 脚本以发送电子邮件

问题描述

我有一个 python 脚本,它在 AWS 中提供了最后一次登录的 IAM 用户名。我得到了预期的结果。现在我添加了 SN​​S 主题以通过电子邮件发送结果。但我在电子邮件中收到的回复如下

回复:

User not logged into AWS: 

u

s

e

r

n

a

m

e

:

我需要在单行中作为用户名:“*****”

PhysicalString =''
for user in resource.users.all():
    if user.password_last_used is not None:
        delta = (today - user.password_last_used.replace(tzinfo=None)).days
            final_result=("username: ", [user.user_name][0]," - ",delta , "days")
            physicalString = 'User not logged into AWS: \n\n' + '\n'.join(str(final_result))
            response = sns.publish(
            TopicArn='*************',
            Message= physicalString,
            Subject='IAM USER',
            )
            return final_result

标签: pythonpython-3.xamazon-web-servicesaws-lambda

解决方案


这:

'\n'.join(str(final_result))

是说“把每个角色都放进去,在他们之间final_result放一个\n

问题在于它final_result被转换为字符串,因此连接是针对每个字符而不是每个元素进行操作的。

尝试:

'\n'.join(final_result)

但您需要先转换delta为.str(delta)final_result


推荐阅读