【问题标题】:How to run a common function before every serverless function like an express middleware?如何在每个无服务器功能(如快速中间件)之前运行一个通用功能?
【发布时间】:2018-03-09 01:28:48
【问题描述】:

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

【问题讨论】:

    标签: lambda aws-lambda serverless-framework


    【解决方案1】:

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

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

    1. 创建您的自定义 API 网关授权器(仅在需要时);
    2. 在 API 网关级别授权(每个用户的 IAM 策略)
    3. 在每个单独的 Lambda 中清理您的数据

    更多:http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html

    【讨论】:

      【解决方案2】:

      听起来像是标准的 VETO 模式(验证、丰富、转换、操作)

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

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

      【讨论】:

        猜你喜欢
        • 2014-07-10
        • 2021-06-26
        • 2023-01-24
        • 2010-12-28
        • 1970-01-01
        • 1970-01-01
        • 2021-06-10
        • 2015-02-18
        • 2022-01-26
        相关资源
        最近更新 更多