【问题标题】:Using Serverless framework on monorepo of multiple services with shared code在具有共享代码的多个服务的 monorepo 上使用无服务器框架
【发布时间】:2018-07-01 08:43:09
【问题描述】:

我在 AWS 上有一个 Pythonic 无服务器项目,其中多个服务包含在一个存储库(一个 monorepo)中,如下所示:

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

'general' 是一个在不同服务之间共享的包,因此我们必须在根目录下使用单个 'serverless.yml' 文件(否则不会部署)。

我们有两个困难:

  1. 单个 'serverless.yml' 可能过于混乱且难以维护,它会阻止我们使用全局配置(这可能非常有用)。

  2. 部署单个服务很复杂。我想“包”功能可能会有所帮助,但我不太确定如何正确使用它。

对于这种情况有什么建议或最佳做法吗?

【问题讨论】:

    标签: amazon-web-services aws-lambda serverless-framework serverless monorepo


    【解决方案1】:

    最好为每个服务使用单独的 serverless.yml 文件。要使用共享代码,

    1. 您可以将代码转换为库并将其用作依赖项,并通过包管理器为每个单独的服务安装,类似于库。 (这很有用,因为更新一个通用代码版本不会影响其他服务)

    2. 将共享代码保存在不同的存储库中,并将git submodule 用于单个服务。

    有关更多信息,请参阅我最初编写的考虑无服务器的文章Can we share code between microservices

    【讨论】:

    • 感谢您的回复。单个/多个 repos 之间的决定并非易事,但我们认为 mono 在我们的情况下更好。在这种情况下,将共享代码库与包管理器一起使用的正确方法是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-22
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多