Этот сценарий кукловода прекрасно работает локально, однако не использует userDataDir при работе в облачных функциях. Я пробовал все комбинации инициализации userDataDir.
Обновление:
Структура папки:
Functions
├── index.js
│ ├── userDataDir
index.js:
const functions = require("firebase-functions");
const puppeteer = require("puppeteer");
const path = require("path");
exports.testPupFunction = functions
.region("us-west1")
.runWith({ memory: "1GB", timeoutSeconds: 60 })
.https.onRequest(async (req, res) => {
const browser = await puppeteer.launch({
headless: true,
ignoreHTTPSErrors: true,
args: [
`--user-data-dir=${path.resolve(__dirname, "./userDataDir")}`,
`--user-data-dir=${path.resolve(__dirname, "userDataDir")}`,
`--user-data-dir=./userDataDir`,
"--disable-setuid-sandbox",
"--no-sandbox"
],
userDataDir: "./userDataDir"
userDataDir: "userDataDir"
});
try {
const page = await browser.newPage();
await page.setViewport({ width: 800, height: 600 });
const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
await page.goto("stackoverflow.com", {
waitUntil: "networkidle0"
});
await delay(1000);
const buffer = await page.screenshot({ fullPage: true });
res.type("image/png").send(buffer);
} catch (e) {
await browser.close();
res.status(500).send(e.toString());
}
await browser.close();
});
Любойидеи как починить? Спасибо!