[PYTHON] Ein unwahrscheinliches Missverständnis darüber, wie ein Handler für eine mit Lambda hochgeladene Zip angegeben wird

Fazit

Der Lambda-Handler wird also im Format "Dateiname.Funktionsname" angegeben

Arbeitsaufzeichnung

Was ich machen wollte

Für kleine Dienste wollte ich beim Erstellen der Funktion eine Zip-Version einer Reihe von Lambda-Funktionen angeben.

Ordnerstruktur

+ attakei/
  + __init__.py
  + models.py
  + handlers.py 

Inhalt der Datei (Teil)

attakei/handlers.py


def get_articles(event, context):
    return {}

def search_by_tags(event, context):
    return {"""something"""}

Ich möchte die Funktion als Set verwalten, indem ich verschiedene Handler wie attakei.handlers.get_articles beim Erstellen der Lambda-Funktion mit der Konfiguration wie angegeben habe.

Ich kann es aus irgendeinem Grund nicht tun

Erstellen Sie in diesem Zustand eine Zip-Datei gemäß den AWS-Regeln und laden Sie sie in S3 hoch. → Wenn Sie einen Handler im obigen Format angeben, funktioniert dieser bei der Ausführung von Test überhaupt nicht. Ein solches Protokoll wird immer wieder angezeigt.

Unable to import module 'attakei.handlers': No module named attakei.handlers

Try & Error

Eine Liste von Dingen, die ich versucht habe, zu der obigen Schlussfolgerung zu gelangen

Hier fühlte ich mich wie "Was ist das?" Dokument Geh und löse das Problem. Sie müssen das Dokument richtig lesen

Hündinnen

Beim Definieren eines Konsolenbefehls beim Erstellen eines Python-Pakets wird dieser als "Modulpfad: Funktionsname" beschrieben. Mein Gehirn scheint also zu stagnieren, da ich mich ganz darauf konzentriert habe. Ich persönlich schätze es jedoch, wenn ich es an dieses Format anpassen lassen würde ...

Recommended Posts

Ein unwahrscheinliches Missverständnis darüber, wie ein Handler für eine mit Lambda hochgeladene Zip angegeben wird
Eine Geschichte darüber, wie man einen relativen Pfad in Python angibt.
Eine Geschichte über den Umgang mit dem CORS-Problem
[Python 3.8 ~] Wie man rekursive Funktionen mit Lambda-Ausdrücken intelligent definiert
So erstellen Sie mit AWS Lambda eine serverlose API für maschinelles Lernen
Überlegen Sie, wie Sie einen Filter mit den Shotgun API-Contact-Versionen schreiben
So fügen Sie ein Paket mit PyCharm hinzu
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Lesen einer CSV-Datei mit Python 2/3
So tarnen Sie eine ZIP-Datei als PNG-Datei
Freigeben einer virtuellen Umgebung [Informationen zu den Anforderungen.txt]
So senden Sie eine Nachricht mit Curl an LINE
So zeichnen Sie ein 2-Achsen-Diagramm mit Pyplot
So entwickeln Sie eine Cart-App mit Django
So erstellen Sie ein Wörterbuch mit einer hierarchischen Struktur.
So legen Sie Attribute mit Mock of Python fest
So schreiben Sie einen ShellScript Bash für Anweisung
Verfahren zur Erstellung plattformübergreifender Apps mit kivy
[TF] So geben Sie Variablen an, die mit Optimizer aktualisiert werden sollen
Eine Geschichte darüber, wie Windows 10-Benutzer eine Umgebung für die Verwendung von OpenCV3 mit Python 3.5 erstellt haben
So konvertieren / wiederherstellen Sie einen String mit [] in Python
[Python] Wie zeichnet man mit Matplotlib ein Liniendiagramm?
So erstellen Sie ein Untermenü mit dem Plug-In [Blender]
So erhalten Sie einen angemeldeten Benutzer mit Djangos forms.py
So konvertieren Sie ein Klassenobjekt mit SQLAlchemy in ein Wörterbuch
[Python] So legen Sie den Download-Speicherort mit youtube-dl fest
[Go] So erstellen Sie einen benutzerdefinierten Fehler für Sentry
Ich dachte darüber nach, wie man kostenlos Programmieren lernt.
So erstellen Sie ein lokales Repository für Linux
Die Geschichte, wie theano mit TSUBAME 2.0 verwaltet wurde
So erstellen Sie eine Entwicklungsumgebung für TensorFlow (1.0.0) (Mac)
[Python] Wie zeichnet man mit Matplotlib ein Streudiagramm?
Ich möchte eine lokale Variable mit Lambda binden
[Django] Eine Geschichte über das Feststecken in einem Sumpf beim Versuch, einen Reißverschluss mit einem Formular zu validieren [TDD]