【发布时间】:2020-11-26 01:24:02
【问题描述】:
我一直试图让 puppeteer 在 AWS Lambda 上工作,但遇到了错误。我收到的信息是:
“错误”:“找不到浏览器修订版 782078。运行“PUPPETEER_PRODUCT=firefox npm install”或“PUPPETEER_PRODUCT=firefox yarn install”以下载支持的 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,
});
}
【问题讨论】:
标签: browser aws-lambda puppeteer revision