Closed MrStiMu closed 6 years ago
Did you use yarn or npm?
yarn on macOs
This is the full output:
MacBook-Pro-van-Stijn:prerendercloud-lambda-edge sjdmulde$ make deploy
yarn run serverless -- deploy
yarn run v1.0.2
warning From Yarn 1.0 onwards, scripts don't require "--" for options to be forwarded. In a future version, any explicit "--" will be forwarded as-is to the scripts.
$ "/Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/.bin/serverless" "deploy"
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service .zip file to S3 (13.17 MB)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
........................
Serverless: Stack update finished...
Service Information
service: Lambda-Edge-Prerendercloud
stage: dev
region: us-east-1
api keys:
None
endpoints:
None
functions:
viewerRequest: Lambda-Edge-Prerendercloud-dev-viewerRequest
originRequest: Lambda-Edge-Prerendercloud-dev-originRequest
✨ Done in 51.93s.
node deploy.js
before []
after [ { EventType: 'viewer-request',
LambdaFunctionARN: 'arn:aws:lambda:us-east-1:934024889921:function:Lambda-Edge-Prerendercloud-dev-viewerRequest:1' },
{ EventType: 'origin-request',
LambdaFunctionARN: 'arn:aws:lambda:us-east-1:934024889921:function:Lambda-Edge-Prerendercloud-dev-originRequest:1' } ]
------Error while associating Lambda functions with CloudFront------
{ InvalidLambdaFunctionAssociation: The function code size is larger than the maximum allowed size for functions that are triggered by a CloudFront event: 13810013 Max allowed: 1048576 Function: arn:aws:lambda:us-east-1:934024889921:function:Lambda-Edge-Prerendercloud-dev-viewerRequest:1
at Request.extractError (/Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/aws-sdk/lib/protocol/rest_xml.js:53:29)
at Request.callListeners (/Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
at Request.emit (/Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/aws-sdk/lib/request.js:683:14)
at Request.transition (/Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/aws-sdk/lib/request.js:685:12)
at Request.callListeners (/Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
message: 'The function code size is larger than the maximum allowed size for functions that are triggered by a CloudFront event: 13810013 Max allowed: 1048576 Function: arn:aws:lambda:us-east-1:934024889921:function:Lambda-Edge-Prerendercloud-dev-viewerRequest:1',
code: 'InvalidLambdaFunctionAssociation',
time: 2017-09-23T17:50:19.646Z,
requestId: 'a7d93ab3-a087-11e7-b1ad-0b8d548a9b8a',
statusCode: 400,
retryable: false,
retryDelay: 17.514498835987812 }
Successfully associated Lambda functions with CloudFront
node create-invalidation.js
{ Location: 'https://cloudfront.amazonaws.com/2017-03-25/distribution/E3OI5WRANYZX2V/invalidation/I2ZLMMP6HUJ5V2',
Invalidation:
{ Id: 'I2ZLMMP6HUJ5V2',
Status: 'InProgress',
CreateTime: 2017-09-23T17:50:16.470Z,
InvalidationBatch: { Paths: [Object], CallerReference: '2017-09-23T17:50:19.857Z' } } }
Can you also verify whether you have a package-lock.json
in your dir?
No i don't
i have a yarn.lock
also print a listing of your node_modules
ls node_modules
MacBook-Pro-van-Stijn:prerendercloud-lambda-edge sjdmulde$ ls node_modules @types capture-stack-trace decompress-response filename-reserved-regex https-proxy-agent js-yaml minimatch pend sax tmp agent-base caw decompress-tar filenamify iconv-lite json-refs minimist pify seek-bzip trim-repeated ansi chai decompress-tarbz2 filesize ieee754 json-stringify-safe mkdirp pinkie semver tunnel-agent ansi-escapes chalk decompress-targz form-data imurmurhash jsonfile moment pinkie-promise semver-regex type-detect ansi-regex ci-info decompress-unzip formidable inflight jwt-decode ms prepend-http serverless typedarray ansi-styles cli-cursor deep-eql fs-extra inherits klaw mute-stream prerendercloud shelljs unbzip2-stream apollo-client cli-width deep-equal fs.realpath ini lazystream native-promise-only process-nextick-args slash unzip-response archiver code-point-at deep-extend gauge inquirer lodash nock propagate slide uri-js archiver-utils combined-stream delayed-stream get-proxy is-fullwidth-code-point lodash-es node-fetch proto-list spawn-sync url are-we-there-yet commander delegates get-stdin is-natural-number lodash.difference normalize-path pseudomap sprintf-js url-parse-lax argparse component-emitter download get-stream is-object lodash.pad npm-conf punycode stack-trace url-to-options array-union compress-commons duplexer3 glob is-plain-obj lodash.padend npmlog qs string-width util-deprecate array-uniq concat-map encoding globby is-promise lodash.padstart number-is-nan querystring string_decoder uuid assertion-error concat-stream end-of-stream got is-redirect lodash.uniq object-assign raven strip-ansi vary async config-chain escape-string-regexp graceful-fs is-retry-allowed loose-envify once rc strip-dirs walkdir asynckit cookie esprima graceful-readlink is-stream lowercase-keys onetime readable-stream strip-json-comments whatwg-fetch aws-sdk cookiejar events graphlib is-wsl lru-cache opn redux strip-outer wrappy balanced-match core-util-is exit graphql isarray lsmod os-shim remove-trailing-separator superagent write-file-atomic base64-js crc exit-hook graphql-anywhere isurl make-dir os-tmpdir replaceall supports-color xml2js bl crc32-stream extend graphql-tag iterall methods p-cancelable restore-cursor symbol-observable xmlbuilder bluebird create-error-class external-editor has-ansi jasmine mime p-finally rimraf tabtab xtend brace-expansion crypto-browserify fd-slicer has-symbol-support-x jasmine-core mime-db p-timeout run-async tar-stream yallist buffer debug figures has-to-string-tag-x jmespath mime-types path-is-absolute rx through yauzl buffer-crc32 decompress file-type has-unicode js-tokens mimic-response path-loader safe-buffer timed-out zip-stream MacBook-Pro-van-Stijn:prerendercloud-lambda-edge sjdmulde$
Should i do an npm install?
no, do not do npm install
, that will create the package-lock.json which I know causes problems for serverless.
Run this: grep version node_modules/serverless/package.json
"version": "1.19.0",
OK - I am finally able to reproduce this on my end, investigating now.
Ok thank you
The inital yarn command was with yarn version 0.23 and afterwards i did an upgrade before running the make deploy.
Full output:
MacBook-Pro-van-Stijn:prerendercloud-lambda-edge sjdmulde$ yarn yarn install v0.23.2 [1/4] 🔍 Resolving packages... [2/4] 🚚 Fetching packages... [3/4] 🔗 Linking dependencies... [4/4] 📃 Building fresh packages... success Saved lockfile. warning Your current version of Yarn is out of date. The latest version is "1.0.2" while you're on "0.23.2".
OK - looks like there might be an issue with the latest version of yarn and serverless for excluding dev dependencies in the production bundle.
So ignore my previous comment about package-lock.json
, apparently that's now required for serverless to work.
npm install
should solve the issue. I'll update the docs
Ok, i've executed npm install (had to re-install npm because of a homebrew problem) and now i get:
MacBook-Pro-van-Stijn:prerendercloud-lambda-edge sjdmulde$ make deploy yarn run serverless -- deploy yarn run v1.0.2 warning From Yarn 1.0 onwards, scripts don't require "--" for options to be forwarded. In a future version, any explicit "--" will be forwarded as-is to the scripts. $ "/Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/.bin/serverless" "deploy" Serverless: Packaging service... Serverless: Excluding development dependencies... Serverless: Uploading CloudFormation file to S3... Serverless: Uploading artifacts... Serverless: Uploading service .zip file to S3 (288.18 KB)... Serverless: Validating template... Serverless: Updating Stack... Serverless: Checking Stack update progress... ..... Serverless: Operation failed!
Serverless Error ---------------------------------------
An error occurred: ViewerRequestLambdaFunction - Function not found: arn:aws:lambda:us-east-1:934024889921:function:Lambda-Edge-Prerendercloud-dev-viewerRequest.
Get Support -------------------------------------------- Docs: docs.serverless.com Bugs: github.com/serverless/serverless/issues Forums: forum.serverless.com Chat: gitter.im/serverless/serverless
Your Environment Information ----------------------------- OS: darwin Node Version: 8.5.0 Serverless Version: 1.23.0
error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. make: *** [deploy] Error 1
git pull && rm -rf node_modules
git pull && rm -rf node_modules && npm install
After doing a git pull
MacBook-Pro-van-Stijn:prerendercloud-lambda-edge sjdmulde$ git pull Already up-to-date. MacBook-Pro-van-Stijn:prerendercloud-lambda-edge sjdmulde$ rm -rf node_modules MacBook-Pro-van-Stijn:prerendercloud-lambda-edge sjdmulde$ npm install
spawn-sync@1.0.15 postinstall /Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/spawn-sync node postinstall
serverless@1.23.0 postinstall /Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/serverless node ./scripts/postinstall.js
npm WARN prerendercloud-lambda-edge No repository field. npm WARN prerendercloud-lambda-edge No license field.
added 274 packages in 5.409s MacBook-Pro-van-Stijn:prerendercloud-lambda-edge sjdmulde$ make deploy ./node_modules/.bin/serverless deploy Serverless: Packaging service... Serverless: Excluding development dependencies... Serverless: Uploading CloudFormation file to S3... Serverless: Uploading artifacts... Serverless: Uploading service .zip file to S3 (257.11 KB)... Serverless: Validating template... Serverless: Updating Stack... Serverless: Checking Stack update progress... ..... Serverless: Operation failed!
Serverless Error ---------------------------------------
An error occurred: ViewerRequestLambdaFunction - Function not found: arn:aws:lambda:us-east-1:934024889921:function:Lambda-Edge-Prerendercloud-dev-viewerRequest.
Get Support -------------------------------------------- Docs: docs.serverless.com Bugs: github.com/serverless/serverless/issues Forums: forum.serverless.com Chat: gitter.im/serverless/serverless
Your Environment Information ----------------------------- OS: darwin Node Version: 8.5.0 Serverless Version: 1.23.0
make: *** [deploy] Error 1
Delete your .serverless dir and/or the function in lambda and do it again
On Sep 23, 2017, at 1:43 PM, Stijn De Mulder notifications@github.com wrote:
After doing a git pull
MacBook-Pro-van-Stijn:prerendercloud-lambda-edge sjdmulde$ git pull Already up-to-date. MacBook-Pro-van-Stijn:prerendercloud-lambda-edge sjdmulde$ rm -rf node_modules MacBook-Pro-van-Stijn:prerendercloud-lambda-edge sjdmulde$ npm install
spawn-sync@1.0.15 postinstall /Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/spawn-sync node postinstall
serverless@1.23.0 postinstall /Users/sjdmulde/Projects/prerendercloud-lambda-edge/node_modules/serverless node ./scripts/postinstall.js
npm WARN prerendercloud-lambda-edge No repository field. npm WARN prerendercloud-lambda-edge No license field.
added 274 packages in 5.409s MacBook-Pro-van-Stijn:prerendercloud-lambda-edge sjdmulde$ make deploy ./node_modules/.bin/serverless deploy Serverless: Packaging service... Serverless: Excluding development dependencies... Serverless: Uploading CloudFormation file to S3... Serverless: Uploading artifacts... Serverless: Uploading service .zip file to S3 (257.11 KB)... Serverless: Validating template... Serverless: Updating Stack... Serverless: Checking Stack update progress... ..... Serverless: Operation failed!
Serverless Error ---------------------------------------
An error occurred: ViewerRequestLambdaFunction - Function not found: arn:aws:lambda:us-east-1:934024889921:function:Lambda-Edge-Prerendercloud-dev-viewerRequest.
Get Support -------------------------------------------- Docs: docs.serverless.com Bugs: github.com/serverless/serverless/issues Forums: forum.serverless.com Chat: gitter.im/serverless/serverless
Your Environment Information ----------------------------- OS: darwin Node Version: 8.5.0 Serverless Version: 1.23.0
make: *** [deploy] Error 1
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.
I've deleted the AWS resources (S3 bucket, functions and cloudformation stack).
When i execute the code i get a deployment:
MacBook-Pro-van-Stijn:prerendercloud-lambda-edge sjdmulde$ make deploy ./node_modules/.bin/serverless deploy Serverless: Packaging service... Serverless: Excluding development dependencies... Serverless: Creating Stack... Serverless: Checking Stack create progress... ..... Serverless: Stack create finished... Serverless: Uploading CloudFormation file to S3... Serverless: Uploading artifacts... Serverless: Uploading service .zip file to S3 (256.3 KB)... Serverless: Validating template... Serverless: Updating Stack... Serverless: Checking Stack update progress... ........................ Serverless: Stack update finished... Service Information service: Lambda-Edge-Prerendercloud stage: dev region: us-east-1 stack: Lambda-Edge-Prerendercloud-dev api keys: None endpoints: None functions: viewerRequest: Lambda-Edge-Prerendercloud-dev-viewerRequest originRequest: Lambda-Edge-Prerendercloud-dev-originRequest
BUT when i goto the functions in AWS (Lambda functions), there is no associated trigger with cloudfront. I am now manually adding the trigger and see what happens
I haven't seen in the Lambda UI after running this deployment script (specifically the API calls for associating the Lambda function with the distribution) - I believe it's a bug somewhere in the AWS console. But I always see it at the bottom of the "Behaviors" tab for the CloudFront Distribution.
You should see requests after logging into prerender.cloud and more importantly, you should see logs in AWS CloudWatch in one of the regions you are closest to geographically. For example, I am in San Francisco and I see CloudWatch logs in us-west-2 Oregon (it should be in us-west-1 N California for me but it's not perfect).
I managed to get it working, but now i get errors in:
There is no explanation in cloudwatch why it's giving errros.
The issues here are resolved because:
For posterity, it seems as of Nov 2017 you can't delete Lambda@Edge functions, so if you ever attempt to delete them, it will time out or fail. If, at that point you want to re-use this project, you'll have to rename the functions (in about 2 places)
Hello,
This is the message i see after using make deploy:
------Error while associating Lambda functions with CloudFront------