【问题标题】:Benefit to running separate endpoints in separate lambdas, if they do the same thing?如果它们做同样的事情,是否有利于在单独的 lambda 中运行单独的端点?
【发布时间】:2016-06-13 20:52:32
【问题描述】:

我正在设计一个具有四个端点的 API。

/shop/{shop}/payment/{env}/endpoint

{shops} 可以是:

  • alpha-one(生产)
  • alpha-two(开发)
  • alpha-three(暂存)

{env} 可以是:

  • test(按键)
  • live(按键)

端点如下:

  1. /shop/alpha-one/payment/live/endpoint
  2. /shop/alpha-two/payment/test/endpoint
  3. /shop/alpha-three/payment/live/endpoint
  4. /shop/alpha-three/payment/test/endpoint

在 AWS API Gateway 中使用这些端点时,我有两种选择。

选项 1。我可以像这样显式设置 api 链中的每个函数:

  • /shop
    • /alpha-one
      • /payment
        • /live
          • /endpoint
            • POST > my-func-one
    • /alpha-two
      • /payment
        • /live
          • /endpoint
            • POST > my-func-two
    • /alpha-three
      • /payment
        • /live
          • /endpoint
            • POST > my-func-three
        • /test
          • /endpoint
            • POST > my-func-four

选项 2。或者,我可以这样做并让代码解决所有问题。

  • /shop
    • /{shop}
      • /payment
        • /{env}
          • /endpoint
            • POST > my-func

问题:

  • 在单独的 lambda 中运行单独的端点有什么好处?鉴于/shop/alpha-one/payment/live/endpoint 的性能和可用性是最重要的?

【问题讨论】:

  • 我能想到至少 12 个后续问题,但老实说,我不确定要先回答 5 个问题中的哪一个。为获得最佳结果,我会考虑您重写或简化问题?
  • @RodrigoM gotcha,它实际上只归结为每个端点的环境变量和不同的 lambdas,但即使这两件事也相互影响。
  • 好的,谢谢您的帮助 - 如果您愿意,我很乐意开始聊天。我有一些问题/想法。你可以设置一个聊天室并邀请吗?不知道它是如何工作的。
  • @RodrigoM 是的,当然!

标签: amazon-web-services environment-variables versioning api-design aws-api-gateway


【解决方案1】:

作为单独的端点运行有很多好处。您可以分别设置单个资源(alpha-one、alpha-two)和实时/测试环境的节流限制。您还可以先部署到测试端点中的 lambda 函数,然后再部署到实时端点,从而进行分阶段部署(蓝/绿部署)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    相关资源
    最近更新 更多