【问题标题】:Serverless framework v1 - multiple resources in one service无服务器框架 v1 - 一个服务中的多个资源
【发布时间】:2016-11-19 09:28:42
【问题描述】:

我有两个资源,游戏和玩家,都有 crud 功能。 这些应该在同一个无服务器服务中吗?我想将它们分开,但是如何将它们放在同一个api网关中?

【问题讨论】:

  • 所以您希望它们成为 2 个独立的项目?为什么不直接将函数放在无服务器项目的不同目录中?

标签: aws-api-gateway serverless-framework


【解决方案1】:

无服务器框架项目部署单个 API 网关。因此,如果您希望它位于不同的 API 网关中,则需要单独的无服务器框架项目。

根据您正在制作的服务的规模,它可能有意义,也可能没有。

要合并两个更高级别的 API 网关,您可以使用 API 网关自定义域并根据不同 API 网关和阶段的路径代理请求,为它们保留一个域。

【讨论】:

    【解决方案2】:

    在您的示例中,您希望将它们保留在相同的无服务器框架中。我会在src/controllers 中创建两个文件player.jsgame.js 来分离逻辑。

    您可以使用以下 YAML 文件设置无服务器

    functions:
      player_info:
        handler: src/controllers/player.info
        events:
        - http:
            path: player # path in the url
            method: get
      player_create:
        handler: src/controllers/player.create
        events:
        - http:
            path: player # path in the url
            method: post
      player_delete:
        handler: src/controllers/player.delete
        events:
        - http:
            path: player # path in the url
            method: delete
      game_info:
        handler: src/controllers/game.info
        events:
        - http:
            path: player # path in the url
            method: get
      game_create:
        handler: src/controllers/game.create
        events:
        - http:
            path: player # path in the url
            method: post
      game_delete:
        handler: src/controllers/game.delete
        events:
        - http:
            path: player # path in the url
            method: delete
    

    【讨论】:

      【解决方案3】:

      一种方法是使用无服务器来部署 lambda,但手动设置 API Gateway 以将端点链接到 lambda。

      这里说明了无服务器的限制:https://serverless.com/framework/docs/providers/aws/guide/services/

      声明的地方:

      目前,每项服务都将在 AWS API Gateway 上创建一个单独的 REST API。由于 AWS API Gateway 的限制,每个 REST API 只能有一个自定义域。如果您计划制作大型 REST API,请注意此限制。此外,修复工作正在进行中,是当务之急。

      根据我们的经验,我们设法在客户端中使用具有不同 API 和路由对象的服务。

      要决定它们是否应该在同一个无服务器服务中,您需要进入建模。在我们的案例中,我们回答以下问题:

      1. 实体是否相关?
      2. 实体和方法会以同样的速度变化吗?
      3. 消费者是否会消费一组实体而不消费另一组?

      当你改变游戏时,你会改变玩家等吗?

      这个链接可以帮助你回答这个问题:https://martinfowler.com/articles/microservices.html

      【讨论】:

        猜你喜欢
        • 2018-05-29
        • 2019-02-16
        • 2017-01-19
        • 2018-03-05
        • 1970-01-01
        • 2022-01-20
        • 1970-01-01
        • 1970-01-01
        • 2020-07-06
        相关资源
        最近更新 更多