Un mémo lors de la création d'un environnement de développement local pour Lambda + Python à l'aide de Serverless Framework sous Windows. Créez un environnement qui vous permet d'effectuer des tests unitaires localement sans déployer réellement sur AWS.
La dernière version du Site de téléchargement Windows d'origine (au moment de la rédaction 3.8.1 Téléchargez /3.8.1/python-3.8.1-amd64.exe)) et exécutez-le.
Sur le premier écran, cochez "Ajouter Python 3.8 à PATH" et cliquez sur "Installer maintenant" pour effectuer une installation standard. Cliquez sur "Désactiver la limite de longueur de chemin" sur le dernier écran pour supprimer la limite de longueur de chaîne de chemin.
>python --version
Python 3.8.1
OK si la version s'affiche correctement.
Installez à l'aide du système de gestion de paquets Python pip.
>pip install pipenv
(Abréviation)
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
Étant donné que Serverless Framework est créé avec Node.js, installez Node.js.
Depuis Site de téléchargement d'origine, la dernière version du programme d'installation pour Windows (au moment de la rédaction de cet article 12.15.0 Téléchargez /node-v12.15.0-x64.msi)) et exécutez-le. Installez avec les paramètres par défaut sans modifier aucune option.
>node --version
v12.15.0
Installez à l'aide du système de gestion de paquets Node.js npm.
>npm install -g serverless
(Abréviation)
+ [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
Créez un projet Serverless Framework. Le modèle est pour AWS Python3.
>sls create -t aws-python3 -p helloworld
(Abréviation)
Serverless: Successfully generated boilerplate for template: "aws-python3"
«-t» est la spécification du modèle à utiliser. Comme il est développé à l'aide de Python3 avec Lambda sur AWS, spécifiez ʻaws-python3.
-p` est le chemin du répertoire du projet (si vous ne spécifiez pas -n, ce sera le nom du projet tel quel)
Un répertoire de projet appelé helloworld est créé sous le chemin actuel, et handler.py et .gitignore, qui contiennent le fichier de configuration Serverless Framework serverless.yml et l'implémentation de la fonction Lambda, sont créés.
Pour gérer la bibliothèque Python pour chaque projet, allez dans le répertoire du projet et créez un environnement virtuel pour ce projet.
>cd helloworld
>pipenv install
Creating a virtualenv for this project…
(Abréviation)
Successfully created virtual environment!
(Abréviation)
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
Essayez d'exécuter la fonction Lambda nommée hello qui est définie dans le modèle depuis le début localement.
>sls invoke local -f hello
{
"statusCode": 200,
"body": "{\"message\": \"Go Serverless v1.0! Your function executed successfully!\", \"input\": {}}"
}
La fonction hello décrite dans handler.py a été exécutée et une réponse a été renvoyée. Puisqu'il est exécuté avec ʻinvoke local`, il sera exécuté localement.
Cela complète l'environnement de développement local avec Lambda + Python.