有谁知道异步而不是同步调用Amazon AWS Lambda函数的当前正确方法?
AWS Java SDK中的InvokeAsync API仍然可用,但已标记为已弃用,它们建议您使用Invoke API。我不知道为什么他们会强迫我们使用同步。我有一个Web前端,可以调度一些批处理作业。我不能指望前端在等待响应的同时将连接保持打开状态几分钟(实际上是在处理大约4-5分钟后通过电子邮件发送给他们)。
理想情况下,我想弄清楚如何使用其API端点而不是Java SDK来执行此操作,因为我在后端运行的环境(GAE)不支持AWS对HttpClient的使用。
我看最新的API文档在这里,它看起来像只AWSLambdaAsyncClient.invokeAsyncAsync()
被弃用。该AWSLambdaAsyncClient.invokeAsync()
方法未标记为不推荐使用。看起来他们只是通过消除对InvokeAsyncRequest
和InvokeAsyncResult
类以及其他invokeAsyncAsync()
方法的需要来进行代码清理。
您应该能够使用AWSLambdaAsyncClient.invokeAsync()
usingInvokeRequest
和return的方法InvokeResult
。您可能需要设定InvocationType
上InvokeRequest
要InvocationType.Event
。如果您使用的是异步客户端,目前尚不清楚是否需要这样做。
关于不使用SDK异步调用Lambda函数的第二个问题,我将研究使用API Gateway作为服务代理。建议使用此方法公开Lambda函数以进行异步调用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句