我正在编写通过HTTP调用的AWS Lambda(即API网关集成)。
我希望将该API用作GitHub webhook。当调用webhook / lambda时,我希望立即发送HTTP响应并继续执行lambda(因为它可能需要一些时间)。
这与调用lambda时的Event
invocation type类似:
是否可以将该调用类型与HTTP集成一起使用?
注意:我使用的是serverless.com框架。
答案 0 :(得分:3)
正如@michael-sqlbot指出的那样,您可以使用X-Amz-Invocation-Type:Event标头来获取此行为。获得此设置有点棘手,链接的文档是准确的,但有点过时(在我看来)。
/2015-03-31/functions/<ARN TO YOUR LAMBDA>/invocations
'Event'
放在Mapped from
字段中来硬编码X-Amz-Invocation-Type到事件(如下图所示)或者......你也可以通过将连接到API网关的lambda(我们称之为lambda A)使用Event
调用类型调用另一个lambda(lambda B)来实现这一点。这样A不关心B的响应,并且可以在几百毫秒内向API网关返回成功的响应(假设您没有做太多其他事情)。然后Lambda B可以继续运行,无论多长时间都是必要的(只要它在5分钟的lambda限制或你配置的超时之下)。