java - AWS Lambda 和 API 网关以及 SOAP 客户端

标签 java amazon-web-services soap aws-lambda aws-api-gateway

我是 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 客户端吗?有没有什么例子可以供我引用?

最佳答案

SaaS ---> [AWS-API-Gateway ---> AWS Lambda ---> Soap 客户端] --> 站点 B

这个架构应该可以工作。您必须找到一种方法来向 api 网关验证 SaaS 站点的身份(使用 api key /自定义授权方)。

您可以使用单个 lambda 函数通过客户端将事件推送到站点 b 并返回响应。任何公共(public) Java Soap 客户端都可以工作。您需要将整个程序编译成 jar 并将其作为 lambda 函数上传。

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

关于java - AWS Lambda 和 API 网关以及 SOAP 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44963329/

相关文章:

amazon-web-services - Amazon SQS,是否可以根据发件人 ID 从 SQS 获取消息

python - spyne rpc装饰方法如何消耗soap信封

soap - javax.xml.soap.SOAPException : InputStream does not represent a valid SOAP 1. 1 消息

java - 反射 - 使用未知数量的构造函数参数获取未知类的新实例

java - 元空间和垃圾收集

amazon-web-services - 在 cloudformation 中使用 S3 目标进行 codepipeline 部署

web-services - 从soap正文消息中删除出站未使用的命名空间

java - Web应用的具体缓存场景

java - 时间 毫秒 到 hh :mm:ss format in java

ruby-on-rails - 有没有办法将 Redis 层设置为 OpsWorks 中现有的 Rails 应用程序?