I'm learning how to create lambdas on aws. I'm following this official tutorial.
The commands I run:
sam init (default values for everything, I'm choosing template 8 - webapp backend)
cd sam-app
sam build
The output I'm getting is:
Building codeuri: /home/sam-app runtime: nodejs14.x metadata: {} functions: ['getAllItemsFunction', 'getByIdFunction', 'putItemFunction']
Running NodejsNpmBuilder:NpmPack
Build Failed
Error: NodejsNpmBuilder:NpmPack - NPM Failed: npm ERR! code Z_DATA_ERROR
npm ERR! errno -3
npm ERR! zlib: invalid distance too far back
npm ERR! A complete log of this run can be found in:
npm ERR! /home/username/.npm/_logs/2021-05-20T14_02_59_425Z-debug.log
node version: 16.2.0
npm version: 7.13.0
sam version: 1.23.0
zlib version: 1:1.2.11-4
I'm not modifying any files - they're all generated by sam.
Try building this in a container.
Use
sam build -u
This worked for me, but I am not sure why it wouldn't build without this.
I had the same problem in wsl2, I have solved it by installing a newer version of nodejs(v14.17.1) with nvm https://docs.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-wsl https://github.com/nvm-sh/nvm#git-install
Maybe in your template file, you might be using the below type
Type: AWS::Lambda::Function
If that's the case then change the type to below one
Type: AWS::Serverless::Function