Невозможно импортировать модуль 'lambda_function': нет модуля с именем 'sendgrid' - PullRequest
0 голосов
/ 29 марта 2019

Я использую AWS Lambda, Python 3.7 и SendGrid API и хочу отправить электронное письмо, но получаю сообщение об ошибке:

"Unable to import module 'lambda_function': No module named 'sendgrid'"

Есть ли способ решить эту проблему? Я вижу, что в некоторых подобных вопросах модуль может быть импортирован откуда-то, но не может работать откуда.

Мой лямбда-код - это просто пример кода с веб-сайта 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 голосов
/ 29 марта 2019

В лямбда-среде нет модуля sendgrid, доступного для вызова вашего кода. Чтобы использовать зависимости, не относящиеся к aws sdk или языку (например, к библиотеке sendgrid), вы должны предварительно собрать код с пакетами локально и загрузить zip-файл. Пример можно найти здесь: aws python lambda . Существует еще одно переполнение стека, связанное с тем же вопросом здесь . Второй содержит несколько инструментов, которые упрощают загрузку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...