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 или где-либо еще в Интернете.