无法导入模块“ lambda_function”:没有名为“ sendgrid”的模块

时间:2019-03-29 18:34:14

标签: python-3.x aws-lambda sendgrid sendgrid-api-v3

我正在使用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)

谢谢

1 个答案:

答案 0 :(得分:0)

lambda环境没有可用于您的代码调用的sendgrid模块。为了使用aws sdk或语言(例如sendgrid库)中不存在的依赖项,您必须在本地使用软件包预先构建代码并上传zip文件。可以在此处找到示例:aws python lambda。还有另一个堆栈溢出正在解决相同的问题here。第二个包含一些工具,使上传更容易。