AWS Lambda 和 API Gateway 以及 SOAP 客户端

Posted

技术标签:

【中文标题】AWS Lambda 和 API Gateway 以及 SOAP 客户端【英文标题】:AWS Lambda and API Gateway plus SOAP Client 【发布时间】:2017-12-11 07:29:46 【问题描述】:

我是 AWS Lambda 世界的新手,我正在尝试弄清楚我想要做的事情是否可以使用 AWS Web 服务来实现。

我遇到的情况是 SaaS 站点将在事件发生时发送 JSON 数据,所以我需要做的是有一个 Restful API(我假设使用 AWS API Gateway)可以处理 CRUD 事件(例如,在 SaaS 站点中添加/更新/删除新员工,然后 AWS API 网关将在 AWS 中路由事件,例如:example.com/employee/create 或 example.com/employee/update)。我假设 AWS API Gateway 将事件路由到其相应的 Lambda 函数?这是否意味着每个 CRUD 事件必须有多个 lambda 函数?还是这是标准?

如果我的假设是正确的,并且事件被发送到其对应的 lambda 函数,那么接下来需要发生的事情是 Lambda 函数基本上转换数据,或准备数据,并与另一个最终站点 (站点 B) 通过 SOAP 客户端。所以回想起来,在这一步中,lambda 函数最终将通过 SOAP 客户端发送转换后的数据。

功能总结:SaaS ---> [AWS-API-Gateway ---> AWS Lambda ---> Soap Client] --> 站点B

这整个场景甚至可能吗?除此之外,有时带有 SOAP API 的站点还需要将信息发送回 SaaS 站点。

我选择的语言是使用 Eclipse AWS 工具包的 Java。在开发我的 lambda 函数时,我还可以使用任何 Java SOAP 客户端吗?有没有我可以参考的例子?

【问题讨论】:

【参考方案1】:

SaaS ---> [AWS-API-Gateway ---> AWS Lambda ---> Soap Client] --> 站点 B

这种架构应该可以工作。您必须想办法将 SaaS 站点验证到 api 网关(使用 api 密钥/自定义授权方)。

您可以使用单个 lambda 函数通过客户端将事件推送到站点 b 并返回响应。任何公共 java soap 客户端都可以工作。你需要把整个程序编译成一个jar,然后作为一个lambda函数上传。

您可能想要查看的一件事是仅使用 API Gateway 与站点 B 通信,因为 API Gateway 可以转换请求/响应 - http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html

【讨论】:

感谢您花时间回答我的问题 @user1370897 你最后选择了哪种方法?我现在正在做一个类似的项目,我需要将我的休息请求与 SOAP 服务集成。我在想 API Gateway --> Lambda --> Soap Client --> 服务

以上是关于AWS Lambda 和 API Gateway 以及 SOAP 客户端的主要内容,如果未能解决你的问题,请参考以下文章

如何调试 AWS Api Gateway 和 Lambda 的“AWS/ApiGateway 5XXError”

从 AWS API Gateway Web 界面配置 AWS Lambda 时无法选择/查看 Lambda 函数

从AWS API-Gateway中找出lambda名称

如何将特定 AWS API Gateway 阶段连接到特定 AWS lambda 别名

使用 AWS Lambda 和 API Gateway NodeJs 的格式错误的 Lambda 代理响应

使用代理通过 AWS API Gateway 的 Lambda 错误