gpt4 book ai didi

javascript - AWS Lambda puppeteer 师

转载 作者:行者123 更新时间:2023-11-30 14:25:41 24 4
gpt4 key购买 nike

由于浪费了 2 周的时间,我尝试在 AWS Lambda 上安装 Puppeteer 但没有成功。

我试过: https://github.com/sambaiz/puppeteer-lambda-starter-kithttps://github.com/deathemperor/puppeteer-lambda-starter-kit

我的最终代码是: https://github.com/sambaiz/puppeteer-lambda-starter-kit

替换 index.js: https://github.com/sambaiz/puppeteer-lambda-starter-kit/blob/master/src/index.js

通过: https://github.com/deathemperor/puppeteer-lambda-starter-kit/blob/master/src/index.js

此外,我使用的是 Windows 7,因此为了构建程序包,我删除/更改了 package.json 中脚本部分的很多内容。我创建了包含和不包含 babel 和 lint 的包。另外,我尝试了不同版本的 puppeteer 和 chronium。

有人建议我修复 puppeteer 的版本到 1.1.1 但没有成功。参见(TheCat 和 cirdes):https://github.com/GoogleChrome/puppeteer/issues/323

我总是在 aws 上遇到这个错误:

{
"errorMessage": "Failed to launch chrome! spawn /tmp/headless_shell ENOENT\n\n\nTROUBLESHOOTING: [...]",
"errorType": "Error",
"stackTrace": [
"",
"",
"TROUBLESHOOTING:[..]",
"",
"onClose (/var/task/node_modules/puppeteer/lib/Launcher.js:299:14)",
"ChildProcess.helper.addEventListener.error (/var/task/node_modules/puppeteer/lib/Launcher.js:290:64)",
"emitOne (events.js:116:13)",
"ChildProcess.emit (events.js:211:7)",
"Process.ChildProcess._handle.onexit (internal/child_process.js:196:12)",
"onErrorNT (internal/child_process.js:372:16)",
"_combinedTickCallback (internal/process/next_tick.js:138:11)",
"process._tickDomainCallback (internal/process/next_tick.js:218:9)"
]
}

配置 AWS:我使用“从 Amazon S3 上传文件”选项,因为它总是在 UI 超时时完成,CLI 命令也是如此。

运行时:Node.js 8.10

处理程序:index.handler

可执行 Angular 色:lambda_basic_execution。为了以防万一,我还尝试了一个自定义 Angular 色,该 Angular 色对 lambda 和 S3 具有完全访问权限。

超时:30 秒

内存:3008 MB。

如果有人能指导我一点。

最佳答案

我终于设法部署了 sambaiz 包。此外,我将 chronium 更新为最新的稳定版本 ( HeadlessChrome/68.0.3440.106 ) 和最新版本的 puppeteer ( 1.7.0 )。

https://www.dropbox.com/s/p4t7zod2nf97cwn/sambaiz-puppeteer.zip?dl=0

如果你想构建自己的包并且你在 Windows 上,你可以:

  1. 下载:https://github.com/sambaiz/puppeteer-lambda-starter-kit
  2. 由我更改 package.json:
    {      "name": "puppeteer-lambda-starter-kit",      "version": "1.1.2",      "description": "Starter Kit for running Headless-Chrome by Puppeteer on AWS Lambda",      "scripts": {        "package": "npm run package-prepare",        "package-prepare": "npm run babel && copy package.json dist && cd dist && npm config set puppeteer_skip_chromium_download true -g && npm install --production",        "babel": "mkdir dist && \"./node_modules/.bin/babel\" src --out-dir dist",        "local": "npm run babel && copy node_modules dist && node dist/starter-kit/local.js",        "package-nochrome": "npm run package-prepare && cd dist && zip -rq ../package.zip ."      },      "dependencies": {        "babel": "^6.23.0",        "puppeteer": "^1.1.1",        "tar": "^4.0.1"      },      "devDependencies": {        "aws-sdk": "^2.111.0",        "babel-cli": "^6.26.0",        "babel-preset-env": "^1.6.0"      }    }
  1. 将.babelrc中的node版本修改为8.10
  2. npm install babel(如果尚未安装)
  3. npm 运行包
  4. 复制 chrome/headless_shell-67.0.3361.0.tar.gz 到 dist
  5. 将 dist/headless_shell-67.0.3361.0.tar.gz 重命名为 headless_shell.tar.gz
  6. 压缩 dist 的内容,您的包已准备好部署

关于javascript - AWS Lambda puppeteer 师,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51978011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com