我正在部署一些使用Apify作为Google函数的代码。当触发时,云函数将无声地终止。我做错了什么?
我有一些使用Apify 0.15.1的工作代码。它在当地运行很好。一旦部署为Google函数,它就会悄无声息地失败,没有任何明显的错误。使用Puppetor1.18.1的等效代码工作良好。
下面我用更简单的代码重现了这个问题。虽然本例并不严格要求Apify,但我希望能够使用Apify提供的额外功能。
使用Apify的代码:
const Apify = require("apify");
exports.screenshotApify = async (req, res) => {
let imageBuffer;
Apify.main(async () => {
const browser = await Apify.launchPuppeteer({ headless: true });
const page = await browser.newPage();
await page.goto("https://xenaccounting.com");
imageBuffer = await page.screenshot({ fullPage: true });
await browser.close();
});
if (res) {
res.set("Content-Type", "image/png");
res.send(imageBuffer);
}
return imageBuffer;
};使用Puppeteer的代码:
const puppeteer = require("puppeteer");
exports.screenshotPup = async (req, res) => {
const browser = await puppeteer.launch({ args: ["--no-sandbox"] });
const page = await browser.newPage();
await page.goto("https://xenaccounting.com");
const imageBuffer = await page.screenshot({ fullpage: true });
await browser.close();
if (res) {
res.set("Content-Type", "image/png");
res.send(imageBuffer);
}
return imageBuffer;
};一旦部署为Google函数(带有--触发器- HTTP和--memory=2048),Puppeteer变体工作得很好,而Apify变体无声地终止,没有结果(除了'ok‘/HTTP 200返回值)。
发布于 2019-07-11 10:41:02
摆脱Apify.main()函数,它将调用调度到稍后的时间,在您的函数已经返回结果之后。
https://stackoverflow.com/questions/56977763
复制相似问题