1

我在 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. 部署单个服务很复杂。我想“包”功能可能会有所帮助,但我不太确定如何正确使用它。

对于这种情况,有什么建议或最佳实践吗?

4

1 回答 1

2

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

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

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

有关更多信息,请参阅我最初编写的考虑无服务器的文章我们可以在微服务之间共享代码吗。

于 2018-07-01T00:43:09.563 回答