0

Apify を Google Cloud Functions として使用してコードをデプロイしています。トリガーされると、Cloud Function はサイレントに終了します。私は何を間違っていますか?

Apify 0.15.1 を使用した実用的なコードがいくつかあります。ローカルでは問題なく動作します。Google Cloud Function としてデプロイされると、明確なエラーなしでサイレントに失敗します。Puppeteer 1.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 Cloud Function (--trigger-http および --memory=2048 を使用) としてデプロイされると、Puppeteer バリアントは正常に動作しますが、Apify バリアントは結果なしでサイレントに終了します ('ok' / HTTP 200 戻り値を除く)。

4

1 に答える 1