Ein Memo beim Erstellen einer lokalen Entwicklungsumgebung für Lambda + Python mit Serverless Framework unter Windows. Erstellen Sie eine Umgebung, in der Sie Unit-Tests lokal durchführen können, ohne sie tatsächlich in AWS bereitzustellen.
Die neueste Version von Original Windows Download Site (zum Zeitpunkt des Schreibens von 3.8.1 Laden Sie /3.8.1/python-3.8.1-amd64.exe)) herunter und führen Sie es aus.
Aktivieren Sie im ersten Bildschirm "Python 3.8 zu PATH hinzufügen" und klicken Sie auf "Jetzt installieren", um eine Standardinstallation durchzuführen. Klicken Sie im letzten Bildschirm auf "Pfadlängenbegrenzung deaktivieren", um die Pfadlängenbeschränkung zu entfernen.
>python --version
Python 3.8.1
OK, wenn die Version korrekt angezeigt wird.
Installation mit Pythons Paketverwaltungssystem pip.
>pip install pipenv
(Abkürzung)
Successfully installed appdirs-1.4.3 certifi-2019.11.28 distlib-0.3.0 filelock-3.0.12 pipenv-2018.11.26 six-1.14.0 virtualenv-20.0.1 virtualenv-clone-0.5.3
>pipenv --version
pipenv, version 2018.11.26
Da Serverless Framework mit Node.js erstellt wird, installieren Sie Node.js.
Die neueste Version des Installationsprogramms für Windows von Home Download Site (zum Zeitpunkt des Schreibens von 12.15.0 Laden Sie /node-v12.15.0-x64.msi)) herunter und führen Sie es aus. Installieren Sie mit den Standardeinstellungen, ohne die Optionen zu ändern.
>node --version
v12.15.0
Installation mit dem Node.js-Paketverwaltungssystem npm.
>npm install -g serverless
(Abkürzung)
+ [email protected]
added 527 packages from 335 contributors in 21.542s
>sls --version
Framework Core: 1.63.0
Plugin: 3.3.0
SDK: 2.3.0
Components Core: 1.1.2
Components CLI: 1.4.0
Erstellen Sie ein Serverless Framework-Projekt. Die Vorlage ist für AWS Python3.
>sls create -t aws-python3 -p helloworld
(Abkürzung)
Serverless: Successfully generated boilerplate for template: "aws-python3"
-t
ist die Spezifikation der zu verwendenden Vorlage. Da wir Python3 mit Lambda unter AWS verwenden, geben Sie "aws-python3" an.
-p
ist der Pfad des Projektverzeichnisses (wenn Sie -n nicht angeben, wird der Projektname so wie er ist)
Unter dem aktuellen Pfad wird ein Projektverzeichnis mit dem Namen helloworld erstellt. Handler.py und .gitignore, die die Serverless Framework-Konfigurationsdatei serverless.yml und die Implementierung der Lambda-Funktion enthalten, werden erstellt.
Um die Python-Bibliothek für jedes Projekt zu verwalten, gehen Sie in das Projektverzeichnis und erstellen Sie eine virtuelle Umgebung für dieses Projekt.
>cd helloworld
>pipenv install
Creating a virtualenv for this project…
(Abkürzung)
Successfully created virtual environment!
(Abkürzung)
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
Versuchen Sie, die Lambda-Funktion mit dem Namen Hallo auszuführen, die in der Vorlage von Anfang an lokal definiert ist.
>sls invoke local -f hello
{
"statusCode": 200,
"body": "{\"message\": \"Go Serverless v1.0! Your function executed successfully!\", \"input\": {}}"
}
Die in handler.py beschriebene Hallo-Funktion wurde ausgeführt und eine Antwort zurückgegeben.
Da es mit invoke local
ausgeführt wird, wird es lokal ausgeführt.
Dies vervollständigt die Umgebung für die lokale Entwicklung mit Lambda + Python.