I have read that SAM cli now supports building layers and followed the directions mentioned [here](https://github.com/awslabs/aws-sam-cli/releases/tag/v0.50.0). However, the layer uploaded by aws-sam-deploy pipe is missing `node_modules` folder.
Here is my template file:
AWSTemplateFormatVersion: 2010-09-09
Description: >-
sam-deploy
Transform:
- AWS::Serverless-2016-10-31
Resources:
samDeploy:
Type: AWS::Serverless::Function
Properties:
CodeUri: src/sam-deploy
Handler: index.handler
Runtime: nodejs12.x
MemorySize: 128
Timeout: 100
Description: A Lambda function that returns a static string.
FunctionName: "sam-deploy"
Layers:
- !Ref samDeployLayer
Policies:
# Give Lambda basic execution Permission to the helloFromLambda
- AWSLambdaBasicExecutionRole
samDeployLayer:
Type: AWS::Serverless::LayerVersion
Properties:
LayerName: sam-deploy-layer
ContentUri: src/sam-deploy-layer
CompatibleRuntimes:
- nodejs12.x
Metadata:
BuildMethod: nodejs12.x
I have included both the `CompatibleRuntimes` and `Metadata` properties as per the requirement to build layers. `package.json` for this layer is located at `src/sam-deploy-layer/nodejs` as required for nodeJS runtimes.