【发布时间】:2019-03-23 21:49:54
【问题描述】:
我正在使用:
Puppeteer version: 1.13.0
Platform / OS version: Google Cloud
Node.js version: 8
await.page.goto("https://somewebsite.com") 在我将其部署到 Google Cloud 功能时冻结。
我收到超时错误。
Navigation Timeout Exceeded
const browser = await puppeteer.launch({
headless: true,
ignoreHTTPSErrors: true,
args: [
'--disable-gpu',
'--disable-dev-shm-usage',
'--disable-setuid-sandbox',
'--no-first-run',
'--no-sandbox',
'--no-zygote',
'--single-process', // <- this one doesn't works in Windows
]
});
const page = await browser.newPage();
try {
await page.goto('https://somewebsite.com',
{ waitUntil: 'networkidle2' });
} catch (error) {
console.log('page.goto ERROR: ', error);
}
我可以看到它在不同的环境中工作:
- AWS
- 本地
它适用于除 Google Cloud Functions 之外的所有功能。但是,如果我尝试google.com,它会起作用。
问题是错误根本没有帮助,page.goto 只是超时。
我想知道是否有适当的方法来调试它?
可能是操作系统问题? 但话说回来,AWS 和 Google 云都是基于 Linux 的?
【问题讨论】:
-
您的 Google Cloud 项目是否有付款计划?
-
是的,我将它用于多个项目。它的付费计划。
-
无论如何,我建议您分享MCVE,即使您认为没有意义。你仍然可能在某个地方犯了一个没有出现在其他地方的错误。没有代码,我们永远不会知道。
-
同样的问题,我们这边的超时似乎完全是随机的(同一个网站有时有效,有时无效,发生在谷歌网站和随机网站上)。
-
您可以通过设置环境变量
DEBUG="puppeteer:*"来启用详细日志记录。查看debugging tips 了解更多信息。
标签: firebase google-cloud-functions chromium puppeteer