Weil ich eine lokale Entwicklungsumgebung für AWS Lambda unter Windows erstellen musste Ich werde mein eigenes Bauverfahren als Memorandum beschreiben. ** Ich möchte mit Bezug auf den wunderbaren Artikel ** fortfahren, der einfach dadurch konstruiert werden kann.
Windows10 Pro(1909)
WSL(Ubuntu 18.* LTS)
bash
Docker
Python3.6
Übrigens wird der Inhalt des Artikels unter der Annahme von Bash geschrieben. Da es sich bei meiner Umgebung um Fisch handelt, ist die Anzeige möglicherweise falsch. Wenn etwas nicht stimmt, Es tut mir leid, Sie zu belästigen, aber ich würde mich freuen, wenn Sie mich in den Kommentaren darüber informieren könnten.
Mit Ausnahme von "Bonus" und "Deinstallieren" unter Bezugnahme auf den wunderbaren Artikel unten
Installieren / Deinstallieren von WSL
Mit Ausnahme von "Bonus" und "Deinstallieren" unter Bezugnahme auf den wunderbaren Artikel unten ** Wenn der Docker-Desktop für Windows Docker-Daemon über die WSL verfügbar gemacht wird ** Überprüfen Sie unter ** Freigegebene Laufwerke ** das Laufwerk mit Ihrem lokalen Arbeitsverzeichnis.
Docker-Desktop für Windows + Docker-Umgebung mit WSL
Wir haben eine Vorlage für die in diesem Artikel auf GitHub verwendete Quelle vorbereitet. Es wird unter der MIT-Lizenz über den unten stehenden Link veröffentlicht. Fühlen Sie sich frei, es zu benutzen.
Quellcode-Vorlage herunterladen
Da die neue Lambda-Funktion basierend auf der Vorlagenquelle erstellt wird, Es wird davon ausgegangen, dass die Befehle beim Ausführen von Docker immer konstant sind. Es ist schwierig, es jedes Mal einzugeben. Registrieren Sie den Alias daher im Voraus in der WSL.
Öffnen Sie .bash_aliases mit vim (erstellen Sie eine neue, wenn nicht)
~$ sudo vim ~/.bash_aliases && source ~/.bash_aliases
Fügen Sie .bash_aliases den folgenden Befehl hinzu
.bash_aliases
alias docrun='docker run -v $(wslpath -m $PWD):/var/task --env-file .env lambci/lambda:python3.6 lambda_function.lambda_handler $(printf "%s" $(cat event.json))'
Es ist einfach, aber ich werde den Inhalt von "docrun" erklären.
docker run
Erstellen Sie einen Container und führen Sie ihn aus einem Docker-Image aus
-v $(wslpath -m $PWD):/var/task
:
** Host-Betriebssystemverzeichnis: Das Volume wird im Containerverzeichnis zugewiesen **.
/ var / task
im Container sehen Sie das links angegebene Verzeichnis des Host-Betriebssystems.
Wenn Sie sich jedoch in einem lokalen Verzeichnis der WSL befinden/mnt/d/Program/Python/AWS/docker-lambda $ echo $PWD
/mnt/d/Program/Python/AWS/docker-lambda
Um dies in den Pfad der lokalen Umgebung umzuwandeln
/mnt/d/Program/Python/AWS/docker-lambda $ echo $(wslpath -m $PWD)
D:/Program/Python/AWS/docker-lambda
Es wird gesagt.
--env-file .env
Lesen Sie die Umgebungsvariablendatei.
lambci/lambda:python3.6
Ein Docker-Image wird angegeben.
lambda_function.lambda_handler
Ich versuche, lambda_handler in lambda_function.py auszuführen.
$(printf "%s" $(cat event.json))
Wir übergeben den Inhalt von event.json an das Ereignisargument von lambda_handler.
Windows
Kopieren Sie die Vorlagenquelldatei in Ihr Arbeitsverzeichnis. (Hier ist es D: \ Program \ Python \ AWS \ docker-lambda
.)
WSL
Wechseln Sie in das Arbeitsverzeichnis
~$ cd /mnt/d/Program/Python/AWS/docker-lambda/
Führen Sie die Lambda-Funktion aus
/mnt/d/Program/Python/AWS/docker-lambda $ docrun
START RequestId: c02ba91d-7783-1719-3b5e-269dfb11c807 Version: $LATEST
event:{'Hello': 'World'}
ENV:LOCAL
END RequestId: c02ba91d-7783-1719-3b5e-269dfb11c807
REPORT RequestId: c02ba91d-7783-1719-3b5e-269dfb11c807 Init Duration: 439.63 ms Duration: 4.32 ms Billed Duration: 100 ms Memory Size: 1536 MB Max Memory Used: 39 MB
"{\"message\": \"success\"}"
Wenn Sie es zum ersten Mal ausführen, beginnt es mit dem Ziehen des Docker-Images. Die Funktion wird ausgeführt, nachdem das Ziehen abgeschlossen ist. Wenn die obige Anzeige angezeigt wird, ist die Umgebungskonstruktion abgeschlossen.
Installieren / Deinstallieren von WSL Docker-Desktop für Windows + Docker-Umgebung mit WSL Einfache Ausführung der AWS Lambda-Umgebung mit Docker-Lambda Ich habe gerade Docker gestartet und es daher leicht verständlich zusammengefasst
Ich werde es erklären, damit auch Anfänger es so gut wie möglich verstehen können. Wenn es etwas gibt, das schwer zu verstehen ist oder etwas nicht stimmt Ich würde mich freuen, wenn Sie einen Kommentar abgeben könnten.