如果我有两个服务,“用户”和“产品”,每个服务都有几个函数,每个函数都定义了端点(就像任何传统的 API 一样),它们是否可以在代码库中单独组织(为了清楚起见)但是一旦部署共享相同的 API 基本 URL?例如,考虑我有以下结构:
/src
-- /users
---- event.json
---- handler.js
---- serverless.yml
-- /products
---- event.json
---- handler.js
---- serverless.yml
我src/users/serverless.yml
的定义如下:
functions:
create:
handler: handler.create
events:
- http: POST user
read:
handler: handler.read
events:
- http: GET user
和我src/products/serverless.yml
的基本相同,只需将“用户”换成“产品”。
目前,这两种服务都将部署到截然不同的 API 端点,一个带有 URL https://fghijklmnop.execute-api...
,另一个带有 URLhttps://abcdevwxyz.execute-api....
我的问题是,是否可以部署这些服务但仍保留在具有单个 URL 的单个 API 下(因此两者都将在 URL 下提供https://abcdevwxyz.execute-api....
)?
我假设答案是“不,因为 Cloud Formation ...”,但我想我只是为了讨论和帮助我自己理解构建无服务器应用程序而在此处发布问题。
根据此处的答案,我知道使用自定义域,但是对于更快的开发周期,这并不是一个理想的解决方案。
到目前为止,我唯一的解决方案是简单地创建一个名为“api”的服务,该服务将包含我的 API 需要的所有端点,这些端点将直接调用我的其他服务的 Lambda 函数,而不是通过以前配置的端点。实际上,这将是一个抽象层,但会为我的应用程序添加可能不必要的层。再次,很好奇社区对此的感受。