在EC2实例中运行人偶的问题

时间:2018-08-21 12:46:47

标签: amazon-web-services amazon-ec2 amazon-cloudformation puppeteer google-chrome-headless

我正在使用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。

这些是我的日志:

  1. 启动前的木偶戏...
  2. 操纵up的人...

它不会打印其他任何东西。

更新: 这是使用 DEBUG 标志输出的日志 enter image description here

0 个答案:

没有答案