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 戻り値を除く)。