如何在每个无服务器功能之前运行一个通用功能,如快速中间件?

时间:2017-09-27 14:01:37

标签: lambda aws-lambda serverless-framework

我需要在运行每个无服务器功能之前运行一个函数来验证用户身份并清理数据。然后将该数据传递给实际功能,如ExpressJS中间件。我们可以用无服务器做类似的事吗?

2 个答案:

答案 0 :(得分:2)

我无法看到使用lambda函数实现“表达式”中间件的方式(一种很棒且干净的方式),这是一个不同的概念。

我想这将是一个更好的方法:

  1. 创建自定义API网关授权程序(仅在您需要时);
  2. 在API网关级别授权(每个用户的IAM策略)
  3. 清理每个Lambda中的数据
  4. 更多:http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html

答案 1 :(得分:0)

听起来像标准的VETO模式(验证,充实,转换,操作)

正如Tom Melo所提到的,如果您的设置有API网关,您可以将一个cusom授权程序挂钩到API网关。如果您想要一个地方来清理和转换请求,您可以在API网关中使用{proxy +}模式来更改消息,然后根据路径参数等路由到SNS的实际操作。

如果您没有API网关,则可以使用SNS将所有内容链接在一起。