1

我目前有一个设置,我的移动前端执行图像的AWS s3上载。 s3上传触发AWS lambda函数,该函数启动执行各种作业和操作的AWS步骤函数(状态机)。如何接收来自AWS S3的响应,触发了lambda函数?

我正在寻找最好的(也是最省时的)方法,以便将输出功能返回到移动设备。

一种方法是监视状态机的executionARN,并在完成时提取数据。这似乎是awslabs lambda-refarch-imagerecognition实现here的情况。但是,我的前端是移动设备,我不想发送和接收很多请求来检查状态机是否完成。

另一个可能的解决方案是重构该过程,以便s3上传是独立事件,一旦成功,向AWS API网关发出API请求,以触发该步骤功能。 API POST请求将返回响应。这里的问题是,应用程序必须等待s3响应才能继续启动状态机。

是否有更好的方法来执行这个序列并接收响应。理想情况下,s3上传将返回状态机的完整响应。这样就有一个请求(图片上传)和一个响应。

+0

您可以尝试设置您的前端将要侦听的回调URL,并且一旦该lambda完成后,将响应发送到回调URL并让移动设备知道它已完成。 –

+1

你看过亚马逊SNS移动推送通知吗? – jarmod

回答

0

我会使用Amazon SNS - >推送通知。你说你想避免提出“很多请求”(并等待响应 - 或轮询)。

Amazon SNS允许您发布到特定主题。

任何被“订阅”到主题的东西,只要有一个(无状态更新)发布到主题,就会(接收通知/消息)。

AWS SNS

“移动前端”(设备 - 你提到)“将接收到消息” /从SNS端点/主题接收推送通知。

这可以在“状态机”完成时触发,允许移动设备通过推送通知“及时更新”。

这将避免轮询响应。

相关问题