Closed imikemiller closed 2 years ago
might be related to https://github.com/alixaxel/chrome-aws-lambda/issues/154
@chanthafef I moved to version 10 of the Lambda layer (arn:aws:lambda:eu-west-2:764866452798:layer:chrome-aws-lambda:10
) and it works fine.
I have the same issue.
I first tryied the last ARN available (arn:aws:lambda:us-east-1:764866452798:layer:chrome-aws-lambda:22) with chrome-aws-lambda@8.0.2 and puppeteer-core@8.0 but it gave me the error quoted in this issue.
I then noticed from the readme.md that that ARN (which should bundle chrome binary v86.0.4240.0) was supposed to work with chrome-aws-lambda@5.3.0, and so puppeteer-core@5.3.*
So I downgraded those 2 packages but nothing changed.
Reading this issue I gave a shot to the ARN layers v. 22, 20, 10.
Nothing changed, I keep on getting:
Cannot find module '/var/task/puppeteer/lib/Browser'
Anyone can point me to the right direction to fix this?
Thanks.
same error. any solution?
+1 same error
Are there any solutions? I have the same error with
const layerArn = "arn:aws:lambda:us-east-1:764866452798:layer:chrome-aws-lambda:25";
"chrome-aws-lambda": "^10.1.0", "puppeteer-core": "13.4.1",
I was building the project with aws-cdk and solved the problem by adding this part in the lambda build conf:
bundling: { externalModules: ['chrome-aws-lambda'], sourceMap: true }
If you do not define chrome-aws-lambda as external modules, it does not work.
One way to prove this is to manually copy and paste code in aws console UI. It will work there. The problem at least in my case was how the lambda was packaged.
Are there any solutions? I have the same error with
const layerArn = "arn:aws:lambda:us-east-1:764866452798:layer:chrome-aws-lambda:25";
"chrome-aws-lambda": "^10.1.0", "puppeteer-core": "13.4.1",
I had the same error with these versions. Upgrading to puppeteer@13.7.0 and puppeteer-core@13.7.0 works.
I'm having this problem on the current version 27 but if I switch to 25 it works.
so use "arn:aws:lambda:us-east-1:764866452798:layer:chrome-aws-lambda:25";
@DavidVanDrei could you please try v28 that I've just published?
I Just tried the last few that have been updated. Everything past 26 does not work with my setup. My runtime is Node14 and Architecture is x86_64 if that matters. The error I'm getting is Error: Cannot find module 'chrome-aws-lambda'
too so not exactly this issue
@DavidVanDrei Try v29 and instead of chrome-aws-lambda
you should now require in your code @sparticuz/chrome-aws-lambda
As chrome-aws-lambda
was abandoned by the author, and this is the living fork for now
@vladgolubev that works! Thanks for the help and for maintaining this
@DavidVanDrei Try v29 and instead of
chrome-aws-lambda
you should now require in your code@sparticuz/chrome-aws-lambda
As
chrome-aws-lambda
was abandoned by the author, and this is the living fork for now
give this man a medal
Hi, I've tried every combination of @sparticuz/chrome-aws-lambda
package version, puppeteer-core
package version, with or without the latest layer chrome-aws-lambda:31
, dev dependency vs. prod dependency, etc., and yet I keep getting this error no matter what I try.
Example:
"@sparticuz/chrome-aws-lambda": "^14.3.0",
"puppeteer-core": "^14.3.0"
layer: arn:aws:lambda:us-west-1:764866452798:layer:chrome-aws-lambda:31
Is there a correct combination of package/layer versions that will get this working? or is it some other problem?
I'm doing this in serverless with typescript using esbuild
plugins:
- serverless-esbuild
I've tried marking packages as "external" but it seems to make no difference - I just get this same error no matter what I try
custom:
esbuild:
bundle: true
minify: false
sourcemap: true
external:
- pg-native
# - chrome-aws-lambda
Any ideas?
Error:
Error: Cannot find module '/var/task/src/cron/catelog/puppeteer/lib/Browser'
Require stack:
- /var/task/src/cron/catelog/testScript.js
- /var/runtime/UserFunction.js
- /var/runtime/Runtime.js
- /var/runtime/index.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
at Function.Module._load (internal/modules/cjs/loader.js:746:27)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:101:18)
at Function.get puppeteer (/node_modules/@sparticuz/chrome-aws-lambda/source/index.ts:200:7)
at Runtime.handler (/src/cron/catelog/testScript.ts:83:36)
at processTicksAndRejections (internal/process/task_queues.js:95:5) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/var/task/src/cron/catelog/testScript.js',
'/var/runtime/UserFunction.js',
'/var/runtime/Runtime.js',
'/var/runtime/index.js'
]
}
@hankconn I had the same issue as you, also using esbuild. Manage to resolve this with the following config:
Serverless config:
package: {
individually: true,
patterns: ['!@sparticuz/**']
},
custom: {
esbuild: {
bundle: true,
minify: false,
sourcemap: true,
define: {'require.resolve': undefined},
platform: 'node',
concurrency: 10,
exclude: [
"puppeteer-core", '@sparticuz/chrome-aws-lambda', "aws-sdk"
]
},
},
Package.json:
"dependencies": {
"@sparticuz/chrome-aws-lambda": "^16.0.0",
"puppeteer-core": "^16.1.0"
}
Usage:
const chromium = require("@sparticuz/chrome-aws-lambda");
Hope this works for you as well.
EDIT: I managed to fix it by configuring esbuild following @hessenh to add to Externals!
"build": "esbuild index.ts --bundle --minify --sourcemap --platform=node --target=es2020 --outfile=dist/index.js --external:@sparticuz/chrome-aws-lambda --external:puppeteer-core --external:aws-sdk",
"@sparticuz/chrome-aws-lambda": "~16.1.0",
"puppeteer-core": "16.1.0"
ARN v31
Hello, I am also getting this issue. I hope someone can advise me. I followed the official AWS cli doc for TS: https://docs.aws.amazon.com/lambda/latest/dg/typescript-package.html#aws-cli-ts and usage for the upstream package: https://github.com/Sparticuz/chrome-aws-lambda#usage
I have tried setting Node version between 14 and 16, with varying version of this layer v26-v31, but still get same error.
import chromium from "@sparticuz/chrome-aws-lambda";
export const handler = async (
event: APIGatewayEvent,
context: Context
): Promise<APIGatewayProxyResult> => {
const browser = await chromium.puppeteer.launch({
args: chromium.args,
executablePath: await chromium.executablePath,
headless: chromium.headless,
});
// ...
}
Building it with:
"scripts": {
"prebuild": "rm -rf dist",
"build": "esbuild index.ts --bundle --minify --sourcemap --platform=node --target=es2020 --outfile=dist/index.js",
"postbuild": "cd dist && 7z a -r index.zip index.js*",
"update": "yarn build && aws lambda update-function-code --function-name functionName --zip-file fileb://dist/index.zip"
},
"devDependencies": {
"@types/aws-lambda": "^8.10.102",
"@types/node": "^18.7.14",
"esbuild": "^0.15.7",
"puppeteer-core": "^17.1.0"
},
"dependencies": {
"@sparticuz/chrome-aws-lambda": "14.3.0"
}
which gives me the below error
START RequestId: e559e8a8-b3b7-4128-b7fb-1d534035ed28 Version: $LATEST
2022-09-05T07:44:24.798Z e559e8a8-b3b7-4128-b7fb-1d534035ed28 ERROR Error: Cannot find module '/var/task/puppeteer/lib/Browser'
Require stack:
- /var/task/index.js
- /var/runtime/UserFunction.js
- /var/runtime/Runtime.js
- /var/runtime/index.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
at Function.Module._load (internal/modules/cjs/loader.js:746:27)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:101:18)
at Function.get puppeteer [as puppeteer] (/var/task/index.js:49:11144)
at Runtime.zC [as handler] (/var/task/index.js:49:11611)
at Runtime.handleOnceNonStreaming (/var/runtime/Runtime.js:73:25) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/var/task/index.js',
'/var/runtime/UserFunction.js',
'/var/runtime/Runtime.js',
'/var/runtime/index.js'
]
}
2022-09-05T07:44:24.855Z e559e8a8-b3b7-4128-b7fb-1d534035ed28 ERROR Invoke Error {"errorType":"Error","errorMessage":"An error occured","stack":["Error: An error occured"," at Runtime.zC [as handler] (/var/task/index.js:49:12103)"," at Runtime.handleOnceNonStreaming (/var/runtime/Runtime.js:73:25)"]}
END RequestId: e559e8a8-b3b7-4128-b7fb-1d534035ed28
REPORT RequestId: e559e8a8-b3b7-4128-b7fb-1d534035ed28 Duration: 97.39 ms Billed Duration: 98 ms Memory Size: 128 MB Max Memory Used: 63 MB Init Duration: 180.84 ms
I also tried the versions from the comment above mine, but it didn't help.
"puppeteer-core": "16.1.0"
"@sparticuz/chrome-aws-lambda": "~16.1.0"
When running my code in the Lambda context I am getting the following error. Could anyone point me in the right direction to resolve this?
My code runs as expected when I execute it with jest with the full version of
puppeteer
installed.Many thanks in advance!