Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Browser 木偶演员+;AWS Lambda-找不到浏览器版本_Browser_Aws Lambda_Puppeteer_Revision - Fatal编程技术网

Browser 木偶演员+;AWS Lambda-找不到浏览器版本

Browser 木偶演员+;AWS Lambda-找不到浏览器版本,browser,aws-lambda,puppeteer,revision,Browser,Aws Lambda,Puppeteer,Revision,我一直试图让木偶师在AWS Lambda上工作,但我遇到了一个错误。我收到的信息是: “错误”:“找不到浏览器版本782078。请运行“Puppeter\u PRODUCT=firefox npm安装”或“Puppeter\u PRODUCT=firefox安装”下载受支持的firefox浏览器二进制文件。” 我有足够的内存分配给这个特定的lambda来运行11秒左右的函数 该错误仅在冷启动时显示 该功能离线运行良好,100%成功。LOCAL=true是在脱机运行时设置的,因此这里有代码来区分这

我一直试图让木偶师在AWS Lambda上工作,但我遇到了一个错误。我收到的信息是:

“错误”:“找不到浏览器版本782078。请运行“Puppeter\u PRODUCT=firefox npm安装”或“Puppeter\u PRODUCT=firefox安装”下载受支持的firefox浏览器二进制文件。”

我有足够的内存分配给这个特定的lambda来运行11秒左右的函数

该错误仅在冷启动时显示

该功能离线运行良好,100%成功。LOCAL=true是在脱机运行时设置的,因此这里有代码来区分这两个参数

下面是我的代码中关于这个lambda的重要部分

import chromium from "chrome-aws-lambda";
import { inflate } from "lambdafs";
import path from "path";

const isLocal = !!process.env.LOCAL;

process.env.HOME = "/tmp";
if (process.env.FONTCONFIG_PATH === undefined) {
  process.env.FONTCONFIG_PATH = "/tmp/aws";
}

if (process.env.LD_LIBRARY_PATH === undefined) {
  process.env.LD_LIBRARY_PATH = "/tmp/aws/lib";
} else if (process.env.LD_LIBRARY_PATH.startsWith("/tmp/aws/lib") !== true) {
  process.env.LD_LIBRARY_PATH = [...new Set(["/tmp/aws/lib", ...process.env.LD_LIBRARY_PATH.split(":")])].join(":");
}

let input;
if (!isLocal) {
  input = "/opt/nodejs/node_modules/chrome-aws-lambda/bin";
} else {
  input = path.resolve(__dirname, "../node_modules/chrome-aws-lambda/bin");
}

const blockedResourceTypes = ["image", "media", "font", "texttrack", "object", "beacon", "csp_report", "imageset"];

const skippedResources = [
  "quantserve",
  "adzerk",
  "doubleclick",
  "adition",
  "exelator",
  "sharethrough",
  "cdn.api.twitter",
  "google-analytics",
  "googletagmanager",
  "fontawesome",
  "facebook",
  "analytics",
  "optimizely",
  "clicktale",
  "mixpanel",
  "zedo",
  "clicksor",
  "tiqcdn",
];

export async function handler(event) {
  const credentials = {
    userName: event.userName,
    password: event.password,
    site_login_id: event.site_login_id,
    user_id: event.juice_userid,
  };

  let chrome, aws, shader;

  (async () => {
    chrome = await inflate(`${input}/chromium.br`);
    shader = await inflate(`${input}/swiftshader.tar.br`);
    aws = await inflate(`${input}/aws.tar.br`);
  })();

  const chromePath = isLocal ? undefined : chrome;

  const puppeteer = chromium.puppeteer;

  const browser = await puppeteer.launch({
    args: chromium.args,
    defaultViewport: chromium.defaultViewport,
    executablePath: chromePath,
    ignoreDefaultArgs: ["--disable-extensions"],
    headless: true,
  });
}

您似乎自己在压缩chromium文件,这不是
chromeaws lambda
的使用方式

下面是一个非常简单的片段,展示了如何在lambda环境中启动Puppeter:

const chromium = require('chrome-aws-lambda');

const handler = async () => {
  let result = null;
  let browser = null;

  try {
    browser = await chromium.puppeteer.launch({
      args: chromium.args,
      defaultViewport: chromium.defaultViewport,
      executablePath: await chromium.executablePath,
      headless: chromium.headless,
      ignoreHTTPSErrors: true,
    });

    let page = await browser.newPage();

    await page.goto(event.url || 'https://example.com');

    result = await page.title();
  } catch (error) {
    // handle error
  } finally {
    if (browser !== null) {
      await browser.close();
    }
  }
};

module.exports = { handler };
chrome aws lambda
在等待chrome时处理必要资源的缩减。可执行路径,您可以