Какова наилучшая структура папок для бессерверного проекта?

Я начинаю работать над новым бессерверным проектом, используя AWS Lambda и шлюз API.

Как лучше всего организовать мой проект, не замыкаясь на одной структуре, такой как безсерверная среда или чаша?

Вот что я использую до сих пор.

  • project-dir/
    • serverless.yaml (config file)
    • functions/
      • function1.py
      • function2.py
    • lib/
      • common_helper_functions.py
    • tests/
      • unit/
        • test1.py
        • test2.py
      • functional/
        • test1.py
        • test2.py
    • миграции
    • resources
      • cloudformation.templates.json

Кто-нибудь из вас порекомендует лучший способ организовать мой проект? Получает ли каждый микросервис отдельный репозиторий git? Я пропустил другие важные папки?


person Murali Allada    schedule 22.11.2016    source источник


Ответы (1)


Ваша структура выглядит хорошо, если она немного плоская. Мне нравится объединять потоки кода. Обычно есть несколько функций, чтобы получить результат. Их следует сгруппировать. Общие функции, которые пересекаются между потоками, но не пересекаются с проектами, помещаются в общую папку в проекте. Я основываю свою организацию репо на общих идеях. Если лямбда-выражения пересекают проекты, они помещаются в общий репозиторий. Конкретный проект остается в их репо.

Часто самой сложной частью использования бессерверной архитектуры является поиск вызываемого кода. С хорошей логической группировкой вы избавите себя от многих головных болей в дальнейшем.

person Lockless    schedule 22.11.2016