AWS Lambda,Puppeteer,功能永不退出

时间:2018-10-17 14:43:44

标签: aws-lambda puppeteer

我有运行Puppeteer的Lambda函数。一切正常,并返回我想要的。但是在返回结果后,Lambda永远不会退出,并且会超时。我没有使用伪造的browser.close(),因为由于递归调用而导致无法打开1000个浏览器和页面。

这是我的处理程序:

import csv
import json

input_file = csv.DictReader(open("services.csv",'r'),delimiter=",")
payload = json.loads(bytearray(input_file))
print(payload["ServiceID"][0]["2665"])


>> TypeError: an integer is required

};

这是CloudWatch Log

CloudWatchLog

1 个答案:

答案 0 :(得分:0)

如果您不使用browser.close(),则需要通过设置context.callbackWaitsForEmptyEventLoop = false来启动功能。

这是因为默认情况下,lambda不会在callback上退出,而是实际上要等到节点运行完它的任务列表后再运行。在您的lambda中,任务列表涉及等待pupetteer退出,这就是为什么您的lambda不会在callback

之后立即停止的原因

此处有更多信息:(https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html#nodejs-prog-model-context-properties