Использование Serverless Framework на monorepo нескольких сервисов с общим кодом - PullRequest
0 голосов
/ 01 июля 2018

У меня есть питонный проект без сервера на AWS, в котором несколько сервисов содержатся в одном репозитории (monorepo), который выглядит следующим образом:

/
serverless.yml
/service1
  lambda_handler.py
/service2
  lambda_handler.py
/general
  __init__.py
  utils.py

'general' - это пакет, который используется разными службами, поэтому мы должны использовать один файл 'serverless.yml' в корневом каталоге (в противном случае он не будет развернут).

У нас есть две трудности:

  1. Один 'serverless.yml' может быть слишком запутанным и сложным в обслуживании, и это мешает нам использовать глобальную конфигурацию (что может быть весьма полезно).

  2. Развертывание одной службы является сложным. Я думаю, что функция «пакета» может помочь, но я не совсем уверен, как правильно ее использовать.

Какой совет или лучшие практики использовать для этого случая?

1 Ответ

0 голосов
/ 01 июля 2018

Лучше использовать отдельные файлы serverless.yml для каждой службы. Чтобы использовать общий код,

  1. Вы можете преобразовать код в библиотеку и использовать его в качестве зависимости и установить через менеджер пакетов для каждой отдельной службы, аналогичной библиотеке. (Это полезно, поскольку обновление версии общего кода не повлияет на другие службы)

  2. Сохраните общий код в другом хранилище и используйте подмодуль git для индивидуального обслуживания.

Для получения дополнительной информации см. Статью Можем ли мы делиться кодом между микросервисами , который я изначально написал, учитывая отсутствие сервера.

...