调用AWS Lambda - API Gateway与直接调用

时间:2017-07-11 11:07:01

标签: amazon-web-services lambda aws-api-gateway

我们是一个由10名开发人员组成的团队,他们试图将流程密集型工作从Heroku上的Rails应用程序迁移到AWS Lambda(Java)。我们在决定是通过API网关还是通过AWS Ruby SDK直接调用lambda函数时被阻止。根据用例,我们可能也必须异步调用lambda。我们的有效载荷非常小(<1-2 KB)。我们正在考虑直接调用主要是为了最大化执行时间。我们正在寻找指点:

  1. API网关是否容易(并且更快)验证调用lambda所需的IAM角色?
  2. 延迟b / w lambda和API网关是否有显着减少?

2 个答案:

答案 0 :(得分:5)

正如其他人所说,添加API网关不会提高性能,但会增加额外的开销。如果它提供的任何附加功能对您有用,请使用API​​网关。如果您控制客户端,可以在客户端上获得具有直接调用Lambda函数的权限的凭据,并且不需要/想要任何其他API网关功能,那么请使用Lambda直接调用。

答案 1 :(得分:4)

直接lambda调用b / c越快,网络跳跃越少。我怀疑你可以直接比较lambdas / APIG关于IAM验证的延迟,但是我们已经对lambda-lambda调用和lambda-APIG-lambda调用进行了基准测试,其中lambda不起作用,即简单地返回事件对象。平均时间如下:

  • lambda-lambda:27ms

  • lambda-APIG:47ms

因此额外跳的税是20毫秒。我们在可行的情况下使用lambda-lambda调用,特别是对于我们不希望暴露给世界的lambdas。