Amazon web services 在EC2实例中运行Puppeter时出现问题

Amazon web services 在EC2实例中运行Puppeter时出现问题,amazon-web-services,amazon-ec2,amazon-cloudformation,puppeteer,google-chrome-headless,Amazon Web Services,Amazon Ec2,Amazon Cloudformation,Puppeteer,Google Chrome Headless,我正在使用AWS CloudFormation在AWS内部部署我的应用程序。 我正在ECS集群中使用一个负载平衡的t2.2xlargeEC2实例 我有一个用nodejs编写的微服务,它处理一些HTML,将其转换为PDF,并将输出上传到S3。那是我使用木偶演员的地方 问题是,每当我在ec2实例中执行应用程序时,代码都会到达一个点,在这个点上它会打开一个新页面并停止,而不是解析,或者永远不会结束。老实说,我不知道发生了什么事 这是它执行的代码段的一部分: const browser = await

我正在使用AWS CloudFormation在AWS内部部署我的应用程序。 我正在ECS集群中使用一个负载平衡的
t2.2xlarge
EC2实例

我有一个用nodejs编写的微服务,它处理一些HTML,将其转换为PDF,并将输出上传到S3。那是我使用木偶演员的地方

问题是,每当我在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

这些是我的日志:

  • 发射前的木偶演员
  • 木偶演员发射
  • 它不打印任何其他内容

    更新: 这是使用调试标志打印日志

    您的实例是否有足够的RAM?我尝试了以下实例类型:“t2.micro”、“t2.small”、“m4.large”、“m4.2xlarge”、“c4.large”、“i2.xlarge”、“i2.8xlarge”。我不认为是拉姆。我目前正在测试,没有在集群内运行它,看看它是否有效。这是有道理的。你能试试极端的吗?删除
    获取内容
    日志后的所有内容,将该行和
    新建页面
    行包装在
    try
    /
    catch
    中,然后查看是否捕获到任何错误。当然,我已将所有内容包装在try/catch中。这是主要问题,实际上它不会触发任何错误。它只是停止记录。我在没有集群的情况下运行它,它运行得非常好。问题是,当我在集群中使用应用程序负载平衡器运行它时,这真的很奇怪,听起来问题可能出在AWS方面,但不幸的是,我真的不知道。对不起,我帮不上忙了!