当前位置: 首页 > 知识库问答 >
问题:

如何将响应放在websocket api网关后面的单独lambda中?

韩祯
2023-03-14

我有一个带有websocket连接的AWS API网关。还有一个lambda(LA),它被这个API网关调用,并将一个请求连同websocket连接ID一起发送到另一个服务。在那之后它就存在了。还有另一个lambdalb,它正在监听某个后端数据存储。如果存在任何更新事件,数据存储服务将调用lb。事件包括websocket连接ID。我想让lb向API网关发送一个更新事件,API网关通过websocket连接将该事件转发给客户端。这是我心目中的一种沟通模式。我的问题是API网关是否支持这样的模式。如果是,lb如何将响应事件发送到API网关和客户端

通讯内容如下截图所示。问题是它是否管用?响应lambda如何将事件发送到API网关?

我添加了集成响应,如下所示。有集成请求集成响应。但我只能为他们俩设置一个lambda。如何为请求和响应制作不同的lambda?

共有1个答案

蔺劲
2023-03-14

是的。它起作用了。

API网关WebSocket API是双向。客户端可以向服务发送消息,而服务可以独立向客户端发送消息。

有两种方法可以将响应从lambda发送到API网关

1)集成可以发送一个响应,该响应通过您定义的路由响应返回给客户端。下面是详细信息

2)可以使用@connections API发送POST请求。有关详细信息,请参阅在后端服务中使用@connections命令。以下是详细信息

你的案子看起来像选项2。在您的lambda处使用连接API调用API网关

 类似资料:
  • 我已经搜索了整个网络,但没有找到一个解决方案,如何使这一功能得到成功。需要帮助。 我的要求是:如果我触发了一个用node.js编写的aws lambda函数,并且使用了一个aws-serverless-express模块,那么它必须快速地向API网关发送回响应,但仍然不应该退出,仍然在后端运行,并且我们可以看到云监视日志。它必须是异步的。 如果我理解或做错了什么,请纠正我。我用这个链接进行了检查:

  • 我有下面的CloudFormation堆栈。2个lambda(问候和Auth),API网关配置为使用Auth lambda进行授权。 我的lambdas的代码如下: 我尝试在GET请求的头中发送此输入。响应为“未经授权”,没有来自Auth lambda CloudWatch日志中的任何日志。 发生什么事了?

  • 问题内容: 已关闭 。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗? 更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 改善这个问题 我是一个刚开始从事大型项目的团队的新手,该项目具有许多组件和依赖项。对于每个组件,都有一个包装,用于放置该组件的暴露接口。这是一个好习惯吗? 我通常的做法一直是将接口和实现放在同一个程序包中。 问题答案: 放置接口和实现都是司空见惯的

  • 我正在使用API网关和AWS Lambda与另一个AWS Lambda函数进行交换。 我应该在初次请求插入数据后发送响应,无论是成功还是失败。我正在使用API网关的特定路由。 结构是这样的: 现在我不断得到502畸形Lambda代理响应,这在我的API测试日志中: 问题是我返回了一个真实的回应。如前所述,我将API网关与lambda API一起使用,这是一个处理API网关路由(如Express)的

  • 我想从我的响应中排除name和age,但是当我收到JSON有效载荷请求时,我需要name和age字段-在我的业务逻辑之后,我想发送状态和消息作为JSON响应的一部分。姓名和年龄应该排除在外。我如何在Java中实现这一点? 我的控制器类:

  • 我已经部署了带有Lambda函数和API网关的AWS堆栈。部署后,我独立测试了Lambda函数,它工作正常,但当我使用AWSAPI网关调用它时,它失败了` 内部错误:502 我看了一下cloudwatch的日志,上面写着 转换前的endpoint响应体:null 我以以下方式返回Lambda(Python 3.6)的响应-