4 распространенные проблемы без сервера, с которыми вы столкнетесь
Узнал после развертывания многочисленных бессерверных проектов в течение многих лет.
Бессерверность — это благо! В этом нет никаких сомнений. Он облегчил жизнь бесчисленному количеству профессионалов, взяв на себя нагрузку по инструментированию и оркестровке развертывания сервисов AWS.
Обычно я использую Serverless для развертывания большинства функций Lambda.
Например, при создании бота для маркировки Github PR Status: https://github.com/apache/incubator-mxnet-ci/pull/27
В процессе создания, тестирования и развертывания лямбда-функции я постоянно сталкиваюсь с несколькими «известными» препятствиями. Забавно, но я все время забываю, как это быстро исправить.
Вот 4 проблемы, с которыми я обычно сталкиваюсь:
Бессерверный
Чтобы предотвратить распространенные бессерверные ошибки
Решение:
`npm install -g serverless && npm install -g serverless-python-requirements`
Докер
Убедитесь, что ваш демон Docker запущен.
Чтобы предотвратить проблему с подключением к докеру
Библиотеки Python
При использовании бессерверного развертывания лямбда-выражения развертываемый лямбда-пакет должен содержать пакеты python [например, запросы, PyGithub].
Обязательно сделайте
pip freeze > requirements.txt
Перед бессерверным развертыванием [чтобы убедиться, что файл requirements.txt используется serverless-python-requirements
.
Это гарантирует, что требования Python будут выбраны и упакованы в пакет развертывания функции Lambda.
Размер в разархивированном виде меньше X байт
Эта проблема возникает из-за того, что размер пакета, загружаемого на S3, превышает установленный лимит. Он включает в себя node_modules, папку virtual_env [в моем случае my_env] среди других бессерверных и лямбда-файлов.
Решение состоит в том, чтобы исключить посторонние файлы [node_modules и my_env]
Надеюсь, если вы когда-нибудь столкнетесь с этими проблемами, вам не придется тратить время на поиск рабочего решения в StackOverflow или где-либо еще в Интернете.