Используя Python 3.7, с текстовым файлом: 'sample.txt', развернутым в лямбда-пакете и записывающим логи программы python в этот текстовый файл. Сейчас я пытаюсь прикрепить этот текстовый файл и отправить электронное письмо через aws -SES, используя mime libs. Примечание: выполнение всей этой программы в лямбда-функции. Вот мой код в лямбда-функции:
import json, boto3
import logging as logger
import pathlib
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import os
def lambda_handler(event, context):
#path = pathlib.Path().absolute()
filename = ‘/tmp/sample.txt'
logger.basicConfig(filename=filename, format='%(message)s',
level=logger.DEBUG, filemode='wt')
#write these logs to text file
logger.info(filename)
logger.warning('233')
logger.error('....')
from = "abc@sample.com"
to = "xyz@sample.com"
region = "sample region"
subject = "sample email"
body = """<html>
<head></head>
<body>
<h1>Test</h1>
<p>This email was sent for testing</p>
</body>
</html>
"""
ses = boto3.client('ses',region_name=region)
msg = MIMEMultipart()
msg["Subject"] = subject
msg["From"] = from
msg["To"] = to
body_txt = MIMEText(body, "html")
msg.attach(body_txt)
fo= open(filename, 'rb')
file_content =fo.read()
attachment = MIMEApplication(file_content)
fo.close()
attachment.add_header("Content-Disposition", "attachment", filename=filename)
msg.attach(attachment)
response = ses.send_raw_email(Source = from, Destinations = [to], RawMessage = {"Data": msg.as_string()})
"errorMessage": "[Errno 2] Нет такого файла или каталога: '/var/task/sample.txt'",
- Это потому, что / var / task будет удален после выполнения функции?
- сохранение текстового файла в S3, единственный вариант?