New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RuntimeDependenciesLayer rebuilding on every API request #11
Comments
That's weird! I don't remember such nasty behavior. What is your SAM CLI version? It may be some SAM CLI bug… |
Hey @Envek sorry for the delay, I didn't see your reply come through. $ sam --version
SAM CLI, version 1.29.0 |
+1
Edit: No change after updating to 1.31.0 |
+1
|
+1 also. I'm kinda new to AWS SAM. Thank you sir @Envek for the ts template
|
+1 |
+1 |
One way I found that changes this behavior is to include the
From: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-local-start-api.html with some more relevant tidbits here: https://aws.amazon.com/blogs/compute/working-with-aws-lambda-and-lambda-layers-in-aws-sam/ |
Seems like the workaround for
Does stop the containers rebuilding the layer each time. This is interesting as the docs (cli ref) imply there would be no difference between EAGER and LAZY with regards to layer rebuilding. While this is helpful it's not great since a lot of times I am only testing a subset of lambdas and don't need the others to invoke at all (or build). Warming all of them still slows down dev process which is what This related ticket implies to solve this one would need to publish the lambda and then reference via ARN: aws/aws-sam-cli#1630 IMO this isn't really a great solution since i want SAM to build the layer for me. I use sam so i can have everything in one place and a reproducible build. I believe the reason to rebuild the layer is because sam needs to check if anything changed. However, i think practically speaking it would be a better solution to assume the layers do not change like the templates and in the event of a layer update I also get a lot of errors using the EAGER warm flag, once I start making changes to the code some of the containers don't seem to exit properly and it causes |
This is great research, @ahurlburt! Please open issue in https://github.com/aws/aws-sam-cli with this text so SAM CLI developers can be aware of it and hopefully will fix it some day. |
@Envek done: aws/aws-sam-cli#3725 Maybe people coming across this can upvote :) |
First of all, thank you @Envek and others for both the great writeup at https://evilmartians.com/chronicles/serverless-typescript-a-complete-setup-for-aws-sam-lambda and for this template repo.
This is my first time using AWS SAM in general, and it's been tricky with Typescript.
Problem
When running
sam local start-api
, every request I make to http://127.0.0.1:3000/ triggers a rebuild of the dependency layer.Steps to reproduce
sam local start-api
The first visit will build the image as expected.
When refreshing the browse, based on this comment, I would expect the image not to rebuild since no source code would have changed.
However, on each request, the image appears to be rebuilt with the following log line:
The time it takes to rebuild this image makes it difficult to develop my frontend.
The workaround I have right now is to just point my frontend at my
dev
environment in AWS, but I'd prefer to be able to run both front & backend locally.The text was updated successfully, but these errors were encountered: