【问题标题】:AWS API Gateway & Lambda Function for SOAP / REST Conversion用于 SOAP/REST 转换的 AWS API Gateway 和 Lambda 函数
【发布时间】:2018-07-09 10:53:51
【问题描述】:

我有一个遗留应用程序,它目前使用 SOAP 接口来调用函数。

我希望将此接口提供给网站,优先使用带有 JSON 方案的 REST。

我希望得到反馈并验证我对解决此问题的想法,如下所述:

为了从 SOAP (XML) REST (JSON) 进行转换,我计划使用以下组件:

  • Amazon API Gateway:从我的网站接收包含基本负载数据的 POST 请求。

  • Lambda 函数:API Gateway 调用一个 AWS lambda 函数,该函数包含一个 soap 客户端包。该函数处理任何必要的转换和映射,它是向我的旧 SOAP 服务发出请求的 Lambda 函数。

  • SOAP 服务:接收请求,执行所需函数并返回 XML 响应

  • Lambda 函数:接收响应、解析任何所需数据/处理任何错误并将响应调用返回给 API 网关。

  • API 网关:返回 lamdba 函数调用的结果。

几个问题:

  1. 我不确定是否是 Lambda 函数直接向我的 SOAP 服务执行请求,我假设这只是一个封装函数。这是正确的吗?

  2. Lambda 函数是否将响应返回给网关请求?我相信这是正确的,因为函数可以同步执行,所以仍然会有上下文返回响应。

  3. 您通常会在 API 网关中为初始入站请求处理任何身份验证检查,还是整个请求被传递到 Lambda 函数,然后我将在其中执行和执行任何身份验证策略/检查?

【问题讨论】:

    标签: rest amazon-web-services soap lambda


    【解决方案1】:

    对于问题 1 和 2: 是的,在 Lambda 函数中做 SOAP 请求和转换是正确的。

    对于问题 3: 要在 API Gateway 处处理身份验证,您可以使用名为 Custom Authorizer 的单独 Lambda 函数。您还可以在 Custom Authorizer Lambda 函数中对 API Gateway 端点进行授权。

    【讨论】:

    • 感谢您的反馈。我可以将整个请求交给我的“转换”函数并在那里处理自定义授权,而不是运行 2 个 Lambda 函数吗?我将在 API 网关中提供生成的 API 密钥作为基本检查,但我还想检查添加到我的请求标头中的几个项目。这就是 Lambda 代理集成的目的吗?
    • 自定义授权函数有一个优势,您可以说对于给定的令牌,将 Lambda 执行的输出缓存指定数量的 TTL。这将允许不为后续请求为同一用户(具有相同令牌)运行自定义授权器中的代码。
    猜你喜欢
    • 1970-01-01
    • 2017-12-11
    • 2023-02-14
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    相关资源
    最近更新 更多