首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Google云功能上使用Apify

如何在Google云功能上使用Apify
EN

Stack Overflow用户
提问于 2019-07-10 19:55:59
回答 1查看 1.2K关注 0票数 0

我正在部署一些使用Apify作为Google函数的代码。当触发时,云函数将无声地终止。我做错了什么?

我有一些使用Apify 0.15.1的工作代码。它在当地运行很好。一旦部署为Google函数,它就会悄无声息地失败,没有任何明显的错误。使用Puppetor1.18.1的等效代码工作良好。

下面我用更简单的代码重现了这个问题。虽然本例并不严格要求Apify,但我希望能够使用Apify提供的额外功能。

使用Apify的代码:

代码语言:javascript
复制
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的代码:

代码语言:javascript
复制
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返回值)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-11 10:41:02

摆脱Apify.main()函数,它将调用调度到稍后的时间,在您的函数已经返回结果之后。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56977763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档