Lambda松弛文件上传被多次触发

问题描述 投票:0回答:1

我的应用程序体系结构是松弛事件-> API网关-> Lambda->进行一些操作,并返回一个使用numpy和matplotlib生成的.png文件。

[当我只处理lambda中的文本输出时,它工作正常,但是当我处理文件上载时,它就很奇怪,

[使用[files.upload]方法将文件上传到松弛状态,然后在一分钟后再次触发我的lambda,最终导致上传另一个文件。

是因为松弛为file.upload方法返回HTTP响应,但我的应用程序以某种方式捕获了该消息,并且运行了agian吗?

这将非常有帮助,因为即使在延迟事件中,事件也是一样,没有任何区别,但是我真的不确定为什么我的lambda再次被调用,并且我验证了请求ID,并且它是不同的,甚至在API getway上也有两个不同的请求ID,但我只请求了一次...这让我发疯了...

file upload slack
1个回答
0
投票

我找到了执行此操作的方法。借助本文https://aws.amazon.com/premiumsupport/knowledge-center/custom-headers-api-gateway-lambda/,我在API网关中添加了HTTP标头[客户端标头信息],并将其传递给lambda。因此,在Lambda中,我借助包含重试事件的X-Slack-Retry-Num的标头捕获了来自松弛的重试事件,并立即将其返回为return 200。

if 'X-Slack-Retry-Num' in output['headers']:
    slk_retry = output['headers']['X-Slack-Retry-Num']
    return 200
else:
    "Consider this as first event and provide your actual code and logic"
© www.soinside.com 2019 - 2024. All rights reserved.