AWS Erfolgreich erstellt die Lambda-Funktion beim Hochladen der ZIP-Datei. Aber es gibt diesen Fehler, wenn ich es ausprobiere.Fehler beim Bereitstellen des Python-Pakets in AWS Lambda
{
"errorMessage": "Unable to import module 'amazonSNS'"
}
Im Folgenden sind die Inhalte der ZIP-Datei, die ich erstellt habe. Ich habe versucht, den Namen der Zip-Datei zu "AmazonSNS" zu ändern, um die amazonSNS.py
Datei, aber keine Hilfe, das gleiche Problem.
Der Lambda-Handler in der Konfiguration der Lambda-Funktion auf „amazonSNS.handler“, wo amazonSNS der Dateiname und Handler ist der Name der Funktion, die aufgerufen werden muss, da sie in die angewiesene haben Dokumentation.
Hier sind die Inhalte der Python-Datei
import boto3
import MySQLdb
client = boto3.client("sns")
rds = boto3.client("rds")
def handler(event, context):
conn = MySQLdb.connect("host", "username", "password", "database")
cur = conn.cursor(MySQLdb.cursors.DictCursor)
query = "select * from login.login limit 10"
cur.execute(query)
print cur.fetchall()
print conn
Was hier das Problem sein könnte? Hier
ist die Protokollausgabe
START RequestId: 76a61551-052a-11e6-b466-8fa0769ac309 Version: $LATEST Unable to import module 'amazonSNS': No module named _mysql
END RequestId: 76a61551-052a-11e6-b466-8fa0769ac309 REPORT RequestId: 76a61551-052a-11e6-b466-8fa0769ac309 Duration: 0.33 ms Billed Duration: 100 ms
UPDATE
Ich habe noch ein paar Dateien von „site-Paket“ Ordner, dachte ich Teil des MySQLdb Paket war, sind hier die aktuelle Inhalt der Zip-Datei.
Und danach das neue Protokoll des Fehlers ist.
START RequestId: c0715d9a-0531-11e6-9409-a3b194fd4afd Version: $LATEST Unable to import module 'amazonSNS': libmysqlclient.so.18: cannot open shared object file: No such file or directory
END RequestId: c0715d9a-0531-11e6-9409-a3b194fd4afd REPORT RequestId: c0715d9a-0531-11e6-9409-a3b194fd4afd Duration: 0.35 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 22 MB
kopiert Ja, ich installiert MySQLdb verwendet 'pip install MySQL-python'. Es gab eine weitere Abhängigkeit, die ich auf meinem Ubuntu-Rechner mit 'sudo apt-get install libmysqlclient-dev' installieren musste, nach der MySQLdb erfolgreich installiert wurde. Denkst du, dass die Abhängigkeit hier ein Problem sein könnte? Wenn ja, dann irgendeine Idee, wie man es löst? –
Haben Sie versucht, eine andere Bibliothek wie https://github.com/PyMySQL/PyMySQL zu verwenden? – cjwfuller
Nein, weil dies (MySQLdb) am beliebtesten und am schnellsten zu sein scheint. Aber lass mich eine andere Bibliothek ausprobieren. –