使用AWS API以便异步调用Lambda函数[GOLANG]

时间:2019-06-30 21:16:29

标签: amazon-web-services go aws-lambda

我一直在研究如何调用lambda函数的AWS文档,并且遇到了不同的实现方法。通常,通过调用Invoke()函数来完成Lambda调用,该函数可用于同步或异步调用lambda函数。

当前,我正在通过HTTP请求(作为REST API)调用Lambda函数,但是,HTTP请求在30秒后超时,而据我所知,异步调用在15分钟后超时。

除了我已经提到的时间之外,与使用HTTP Request调用lambda相比,异步lambda调用还有什么优势。此外,在生产中调用lambda的最佳(推荐)方法是什么?在AWS文档(Go的SDK-https://docs.aws.amazon.com/sdk-for-go/api/service/lambda/#InvokeAsyncInput)上,我看到InvokeAsyncInputInvokeAsyncOutput已被描述。因此,我想知道异步实现的实际效果如何。

1 个答案:

答案 0 :(得分:2)

Lambda实际上与事件驱动的计算有关。这意味着Lambda总是会响应事件而触发。此事件可以源自广泛的range of AWS Services以及AWS CLI和SDK。

所有这些事件都调用Lambda函数并以eventcontext对象的形式传递某种信息。此事件的外观取决于触发lambda的服务。您可以在this documentation中找到有关上下文的更多信息。

没有真正的“最佳”方法来调用Lambda-这主要取决于您的用例-如果您要构建Web服务,请让API Gateway为您调用Lambda。如果要在S3上处理新文件-让S3触发Lambda。如果您只是测试Lambda函数,则可以通过CLI调用它。如果您有需要触发Lambda函数的自定义软件,则可以使用SDK。如果要按计划运行Lambda,请配置CloudWatch事件...

如果您需要对可用选项进行更详细的评估,请提供有关您的用例的更多信息-现在这非常广泛。