我正在使用AWS Lambda,Python 3.7和SendGrid API,想要发送电子邮件但收到错误:
"Unable to import module 'lambda_function': No module named 'sendgrid'"
有没有办法解决这个问题?我看到在一些类似的问题中,该模块将从某个位置导入,但无法从该位置导入。
我的lambda代码只是SendGrid网站上的示例代码,其值已更新为我要使用的值:
import json
import sendgrid
import os
from sendgrid.helpers.mail import *
def lambda_handler(event, context):
sg = sendgrid.SendGridAPIClient(apikey=os.environ.get('SENDGRID_API_KEY'))
from_email = Email("test@example.com")
to_email = Email("****")
subject = "Sending with SendGrid is Fun"
content = Content("text/plain", "and easy to do anywhere, even with Python")
mail = Mail(from_email, subject, to_email, content)
response = sg.client.mail.send.post(request_body=mail.get())
print(response.status_code)
print(response.body)
print(response.headers)
谢谢
答案 0 :(得分:0)
lambda环境没有可用于您的代码调用的sendgrid模块。为了使用aws sdk或语言(例如sendgrid库)中不存在的依赖项,您必须在本地使用软件包预先构建代码并上传zip文件。可以在此处找到示例:aws python lambda。还有另一个堆栈溢出正在解决相同的问题here。第二个包含一些工具,使上传更容易。