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

demandé il y a 2 ans2415 vues
2 réponses
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
EXPERT
répondu il y a 2 ans
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
  
répondu il y a 2 ans

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions