我正在使用AWS CloudFormation在AWS中部署我的应用程序。
我在具有负载平衡功能的ECS群集中使用t2.2xlarge
EC2实例。
我有一个用nodejs编写的微服务,该微服务处理一些HTML,将其转换为PDF,然后将输出上传到S3。那是我使用p的地方。
问题是,每当我在ec2实例中执行应用程序时,代码就会到达一个位置,在该位置打开新页面并停止,无法解析或永不结束。真诚的,我不知道发生了什么。
这是它执行的代码片段的一部分:
const browser = await puppeteer.launch({
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-web-security'
]
});
console.log('Puppeteer before launch ...');
console.log(await browser.version());
console.log('Puppeteer launched ...');
const page = await browser.newPage();
console.log('Fetching contents ...');
const URL = `http://${FRONTEND_ENDPOINT}/Invoice/${invoiceData.id}`;
await page.goto(URL, {
waitUntil: ['networkidle0']
});
await page.content();
const bodyHandle = await page.$('body');
await page.evaluate(body => body.innerHTML, bodyHandle);
await bodyHandle.dispose();
console.log('Saving pdf file ...');
await page.emulateMedia('screen');
await page.pdf({
path: path.join(__dirname, '../tmp/page1.pdf'),
format: 'A4',
printBackground: true
});
await browser.close();
我基本上是在爬行一个页面,获取其HTML内容并将其转换为PDF。
这些是我的日志:
它不会打印其他任何东西。