我有一个AWS
我用 Java 编写的 Lambda 函数(实际上是用 Clojure 编写的),每次运行它时它似乎都会被调用 3 次。
我的函数在超时(设置为最长 5 分钟)内成功运行。它返回一个字符串,当我在控制台中测试该函数时,我可以看到输出。
我在网上看到过一些关于必须调用某些 Context success/done 函数的内容,但在 Java SDK 中看不到(似乎仅适用于 Node?)。
我错过了什么吗?
当我在控制台中单击“测试”时,不会发生这种情况(它只运行一次),但当通过 CloudWatch 触发器触发或通过 AWS 开发工具包运行时,就会发生这种情况。
Thanks,
Donovan
更新:抱歉,通过触发器运行时不会发生这种情况,仅通过 SDK 和 CLI 运行时,因此我正在进行的调用可能会出现一些超时。
为了供其他人将来参考,问题是 SDK 和 CLI 达到一分钟的读取超时,然后重试请求。我手动将其设置为 5 分钟以匹配我的 AWS Lambda 超时。
这可以通过在 CLI 中添加来完成--cli-read-timeout int
where int
是你想要的超时(或者只是--cli-read-timeout 0
这完全禁用了超时)。
在Java SDK中,可以通过调用来完成setSocketTimeout(int socketTimeout)
on the ClientConfiguration
object
在 Clojure 中使用 Amazonica,添加:client-config {:socket-timeout xxx}
到您的凭据映射。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)