首页 > 解决方案 > AWS API Gateway 能否将请求发送到 Elastic Beanstalk 工作线程环境

问题描述

有人知道是否可以将 AWS API Gateway 与 Elastic Beanstalk Worker Environment 一起使用以及如何配置它?

我想通过 AWS API Gateway 向 Elastic Beanstalk Worker Environment 发出带有 json 内容的 post 请求,该环境进行一些业务计算(持续时间约为 1-2 秒)并将响应发回。

我希望有人能给我一些意见。

谢谢。

标签: amazon-web-servicesamazon-elastic-beanstalkaws-api-gateway

解决方案


不幸的是,EB 工作环境不像常规的 HTTP API 那样工作。它不是一个 HTTP 端点,您可以在其中发布您的 JSON 内容并从其处理中获取结果作为响应,它公开了一个 SQS 队列

因此,在您的用例中,API 网关必须与 SQS queue 集成。例如,这里描述了这种集成:

但是,处理结果不会返回给您。相反,SQS 队列将返回 200 条代码,表明它收到了消息。因此,作为客户端,您只会得到确认 json 有效负载已提交到 SQS 队列,而不是 json 有效负载已由工作人员处理。

原因是工作环境异步处理这些消息。工作环境必须将处理结果存储在某处(例如 DynamoDb),并且您必须有一种机制来查询结果。例如,第二个 API 调用来检查您的消息是否已经基于某些唯一的message_id.


推荐阅读