【问题标题】:integration lambda function or split lambda per api gateway http codes每个 api 网关 http 代码集成 lambda 函数或拆分 lambda
【发布时间】:2019-01-21 05:12:49
【问题描述】:

我正在设置 aws-apigateway-lambda,我是该服务的新手。

我想知道如何使用 lambda 获取单个方法(POST、GET...)?

例如,

  1. 为每个 http 方法创建单独的 lambda 函数。

获取 api.com -> lambda.api.get

POST api.com -> lambda.api.post

  1. 一个 lambda 函数和接受所有方法
  1. GET,POST,DELETE... api.com -> lambda.api
def lambda_function(event,context):
    method = event["http-method"]
    if method == 'GET': return receive_get()
    elif method == 'POST': return receive_post()

哪种方式有效??

【问题讨论】:

    标签: python design-patterns aws-lambda aws-api-gateway


    【解决方案1】:

    如果您考虑相同流量的两个 lambda 函数,并且加热的容器数量大致相同,则这两个 lambda 将花费大约相同的时间来处理。因此,它实际上取决于您的 lambda 服务的流量模式。例如,我们考虑两种情况:

    1. 如果您的服务没有正常流量,您将不得不启动容器以保持 lambda 温暖。但是在这种情况下,如果您有不同的 lambda,那么您将负担加热两个 lambda 函数的负担。

    2. 您的服务有正常流量,那么 lambda 中没有太多冷启动问题,并且单个或两个 lambda 在处理上不会有太大差异,除非同时包含这两种方法会使您的代码过于广泛和繁重lambda 容器更耗时。但在正常的 get 和 post 方法情况下,情况并非如此。

    因此,基本上您必须决定是否在同一个 lambda 中同时包含 get 和 post 方法会使您的代码变得繁重。如果这样做,这可以增加启动新 lambda 容器的时间。当您使用 python 时,它对冷启动时间的增加非常少,最好将两种方法放在同一个 lambda 中。

    对于 lambda 冷启动相关问题,您可以查看以下内容:

    【讨论】:

      猜你喜欢
      • 2021-04-22
      • 2019-11-10
      • 2020-08-18
      • 2017-04-27
      • 2020-07-22
      • 2022-06-29
      • 2020-07-26
      • 2019-02-21
      • 2021-09-12
      相关资源
      最近更新 更多