SAM CLI- Using "sam build" - Build includes non required folders

0

How can you force 'sam build' commands to not include sub directories such as /node_modules and tests. These get added to each function and take an incredible amount of time to 'build' and 'deploy'. Am I missing a step to stop these folders being included? using SAM CLI v1.55.0

已提問 2 年前檢視次數 2956 次
2 個答案
0

Have you tried .npmignore as mentioned on this Github thread - https://github.com/aws/serverless-application-model/issues/308 - "sam build command uses npm to package up the build folder (for nodejs projects), so you can use .npmignore to tell it which files should be excluded from the build"

profile pictureAWS
專家
已回答 2 年前
0

I have found in my template.yaml file under each resource you can declare a CodeUri - it appears to only build files from this directory. This works well for my use case as I have a seperate lambda layer I use which holds all dependencies needed. I will now just structure my lambdas under seperate directories and share code where needed. Snippet of tamplate.yaml:

  listProvisioningTemplates:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: src/provisioning/listProvisioningTemplates/
      Handler: index.handler
      Layers:
        - !Ref awsCommandsLayer
      Runtime: nodejs16.x
      Architectures:
        - x86_64
      MemorySize: 128
      Timeout: 100
      Description: A Lambda function that returns a static string.
      Policies:
        # Give Lambda basic execution Permission to the helloFromLambda
        - AWSLambdaBasicExecutionRole
    #Metadata:
    #  BuildMethod: makefile

Folder Structure

AWS-SAM-DIR:
  -src:
    -provisioning:
      -listProvisioningTemplates:
        index.js
  -template.yaml
  
已回答 2 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南