amazon-web-services - AWS API Gateway 能否将请求发送到 Elastic Beanstalk 工作线程环境
问题描述
有人知道是否可以将 AWS API Gateway 与 Elastic Beanstalk Worker Environment 一起使用以及如何配置它?
我想通过 AWS API Gateway 向 Elastic Beanstalk Worker Environment 发出带有 json 内容的 post 请求,该环境进行一些业务计算(持续时间约为 1-2 秒)并将响应发回。
我希望有人能给我一些意见。
谢谢。
解决方案
不幸的是,EB 工作环境不像常规的 HTTP API 那样工作。它不是一个 HTTP 端点,您可以在其中发布您的 JSON 内容并从其处理中获取结果作为响应,它公开了一个 SQS 队列。
因此,在您的用例中,API 网关必须与 SQS queue 集成。例如,这里描述了这种集成:
但是,处理结果不会返回给您。相反,SQS 队列将返回 200 条代码,表明它收到了消息。因此,作为客户端,您只会得到确认 json 有效负载已提交到 SQS 队列,而不是 json 有效负载已由工作人员处理。
原因是工作环境异步处理这些消息。工作环境必须将处理结果存储在某处(例如 DynamoDb),并且您必须有一种机制来查询结果。例如,第二个 API 调用来检查您的消息是否已经基于某些唯一的message_id
.
推荐阅读
- python - 使用循环在两个数组或列表中查找匹配值
- reactjs - 使用复选框使用 React 填充数组时,数组有重复的记录
- mysql - MYSQL 在两个相关表之间插入
- c - 用c编程语言将数据从文件读取到结构中
- docker - 当 Docker 中的 Jenkins 连接到 Docker Daemon 时,如何解决连接被拒绝的问题?
- android - 警告:链接器:警告:无法规范化“-rpath=/data/data/com.termux/files/usr/lib”
- node.js - pdf2htmlEX 的推荐替代品
- python - 我在 django 中重定向用户时遇到问题
- reactjs - reactjs,如何制作一个可以带道具和孩子的组件
- mysql - 节点mysql有什么问题?