上下文
我想运行一个AWS Lambda,调用一个端点(开火然后忘记),然后停止Lambda-始终让端点自己开心地旋转。
尝试
1。
使用超时,例如
try:
requests.get(url, timeout=0.001)
except requests.exceptions.ReadTimeout:
...
2。
在grequest中使用异步调用:
import grequests
...
def handler(event, context):
try:
...
req = grequests.get(url)
grequests.send(req, grequests.Pool(1))
return {
'statusCode': 200,
'body': "Lambda done"
}
except Exception:
logger.exception('Error while running lambda')
raise
这些请求似乎未到达API,几乎就像是该请求已被取消。
有什么想法吗?
问题
Lambda如何调用需要很长时间才能完成的URL?谢谢。
答案 0 :(得分:0)
您必须增加功能的超时时间。根据您对函数的定义方式,可以在函数页面或cloudformation脚本内部将默认超时增加300秒。
函数内部定义的超时对lambda功能没有影响。无论脚本中定义了什么超时,AWS Lambda都会在300秒后终止您的功能。参见:https://docs.aws.amazon.com/lambda/latest/dg/limits.html
答案 1 :(得分:0)
对于阅读本文的任何人:我使用AWS Batch解决了问题。