Я пытаюсь создать функцию Guppeteer в GCP, которая может быть вызвана сообщениями Pub / Sub.Функция вызывается, но не работает должным образом и выдает ошибку времени ожидания, когда браузер пытается инициализироваться.Может ли триггер использовать среду NodeJS, отличную от HTTP-триггера?
Я также очень плохо знаком с NodeJS, поэтому заранее прошу прощения, если проблема очевидна.
I 'Мы создали HTTP-триггер для функции, которая ведет себя как ожидалось.Я копирую / вставляю нижеприведенную функцию Puppeteer в index.js при создании облачной функции, но в качестве примера выделю ее, чтобы оба триггера выполняли одинаковую функцию.
Функция Puppeteer
const puppeteer = require('puppeteer');
scrapeUglyWebsite = () => {
return new Promise(async(resolve, reject) => {
await puppeteer.launch({
headless: true,
args: ['--no-sandbox']
})
.then(async (browser) => {
const page = await browser.newPage();
await page.goto('http://suzannecollinsbooks.com/', {waitUntil: 'load', timeout: 0})
.then(async () => {
//Wait for content to load
await page.waitForFunction('document.body !== null && document.body.innerText.includes(\'Jon Scieszka\')');
//Evaluate page contents
const dom_eval = await page.evaluate(() => document.body.innerText.includes("Here’s a picture of me with a rat"));
await browser.close();
resolve(dom_eval);
});
}).catch((err) => {
reject(err);
});
});
};
HTTP Trigger - index.js
exports.cloudFunctionTest = (req, res) => {
scrapeUglyWebsite()
.then((results) => {
if(results) {
res.send('Suzanne Collins takes pictures with rats.');
} else {
res.send("Suzzane Collins doesn't take pictures with rats.");
};
})
.catch((err) => {
res.send(err.toString());
});
Pub / Sub Trgger - index.js
exports.cloudFunctionTest = (data, context) => {
scrapeUglyWebsite()
.then((results) => {
if(results) {
console.log('Suzanne Collins takes pictures with rats.');
} else {
console.log("Suzzane Collins doesn't take pictures with rats.");
};
})
.catch((err) => {
console.log(err.toString());
});
};
package.json
{
"name": "test",
"version": "0.0.1",
"engines": {
"node": "8"
},
"dependencies": {
"puppeteer": "^1.6.0"
}
}
HTTP Trigger работает правильно сожидаемый результат
Suzanne Collins takes pictures with rats.
Pub / Sub Trigger выдает следующую ошибку без вывода
TimeoutError: Timed out after 30000 ms while trying to connect to Chrome! The only Chrome revision guaranteed to work is r662092