AWS API 网关 + SQS + Lambda + 从 Lambda 获取响应返回到 API
AWS API gateway + SQS + Lambda + get response back from Lambda to API
我想使用 API 网关向 SQS 发送消息,然后需要触发 Lambda。在 Lambda 中完成计算后,我需要将结果传回 API Gateway。换句话说,像这样:
Get request --> Gateway API --> SQS --> Lambda --> (back to the same SQS?) --> Gateway API
我已经设置了所有必要的权限,这意味着我可以调用网关 API 并将消息发送到 SQS,然后再将其发送到 Lambda(我可以在 Cloudwatch 中看到 Lambda 收到了消息)。但是,我无法将 Lambda 响应返回给网关 API...
有人对此有一些 advice/tutorial/blog post 吗?我观看了各种 youtube 视频并在 SO 上搜索了 posts 但没有找到解决我的问题的方法。
AWS Lambda 可以处理大量并发调用。默认值为 1000(一千),可以通过支持票增加 to "Hundreds of thousands".
如果您想使用 SQS 来消除 间歇性请求峰值,那么 Lambda 函数调用将相对于调用者's/client 的 API网关调用,需要通过其他方式将Lambda调用结果反馈给API网关caller/client.
一种可能性是回调 URL,您的 Lambda 将在处理完调用后在调用方s/client 端调用。或者您可以将 lambda 调用结果存储在某个地方(例如 S3 或 DynamoDB)并且 caller/client 可以使用轮询定期询问调用结果(检查它是否准备好,如果准备好,则检索它)。
无论哪种方式,一旦您使用 SQS 解耦 API 网关调用与您的 Lambda 函数通过 SQS 消息对这些调用的处理,然后处理Lambda 调用将 异步 到 API 网关 caller/client 请求。所以,API 网关 caller/client 的 HTTP 请求会立即 return 而无需等待 Lambda 调用结果。
我想使用 API 网关向 SQS 发送消息,然后需要触发 Lambda。在 Lambda 中完成计算后,我需要将结果传回 API Gateway。换句话说,像这样:
Get request --> Gateway API --> SQS --> Lambda --> (back to the same SQS?) --> Gateway API
我已经设置了所有必要的权限,这意味着我可以调用网关 API 并将消息发送到 SQS,然后再将其发送到 Lambda(我可以在 Cloudwatch 中看到 Lambda 收到了消息)。但是,我无法将 Lambda 响应返回给网关 API...
有人对此有一些 advice/tutorial/blog post 吗?我观看了各种 youtube 视频并在 SO 上搜索了 posts 但没有找到解决我的问题的方法。
AWS Lambda 可以处理大量并发调用。默认值为 1000(一千),可以通过支持票增加 to "Hundreds of thousands".
如果您想使用 SQS 来消除 间歇性请求峰值,那么 Lambda 函数调用将相对于调用者's/client 的 API网关调用,需要通过其他方式将Lambda调用结果反馈给API网关caller/client.
一种可能性是回调 URL,您的 Lambda 将在处理完调用后在调用方s/client 端调用。或者您可以将 lambda 调用结果存储在某个地方(例如 S3 或 DynamoDB)并且 caller/client 可以使用轮询定期询问调用结果(检查它是否准备好,如果准备好,则检索它)。
无论哪种方式,一旦您使用 SQS 解耦 API 网关调用与您的 Lambda 函数通过 SQS 消息对这些调用的处理,然后处理Lambda 调用将 异步 到 API 网关 caller/client 请求。所以,API 网关 caller/client 的 HTTP 请求会立即 return 而无需等待 Lambda 调用结果。