Lambda functions can have cold starts that introduce latency. How do you manage that?
(From my small amount of experience - please prove me wrong.)
That still sucks, so then you can (hopefully) cache some things so that _some_ data begins to stream in. Or you can make it so your very high priority stuff has minimal dependencies - you can get a Lambda cold start in < 1s if your app only uses the standard library.
But still, in my experience, cold starts are a thing. If you have a high-traffic app or use Lambda warming, you decrease the # of people who experience a cold start, but at the end of the day, your p99 is going to be worse than a vanilla VM solution, because _some_ people will get cold starts. For some apps, that's OK - think line of business app where the first few pages can be served from static materials or cached materials, and you trigger the requests in the background.
Second, minimizing the function's code size. Both by making small functions and then optimizing them (there are plugins for the serverless framework to do that)
Third, using a language with a minimized cold start. Some can have cold start latences lower than 1 second [^1]
But then again, I did already know the other fiddly bits of AWS.
I also work for a company that pays for the business support plan, they will help you to an extent with any weirdness in their own platform - but not with third party utilities.
Another advantage with using SAM, is that you can create and configure your lambda/API Gateway from the web console and then export your SAM/CloudFormation template.
All that being said, for APIs, I don’t use either. I would recommend using standard frameworks like C#/WebAPI, JS/Node, Python/Flask/Django instead and using the proxy integration libraries that AWS provides. It lets you develop/debug locally like you are accustom to and it gives you the optionality to move your APIs to Fargate (Serverless Docker) or EC2 instances without any code changes:
C#/Web API
https://aws.amazon.com/blogs/developer/deploy-an-existing-as...
Node:
https://github.com/awslabs/aws-serverless-express
Python/Flask
https://dev.to/apcelent/deploying-flask-on-aws-lambda-4k42
I’ve been told that there are similar frameworks for other languages but those are the three that I use.
If you have any other questions, feel free to email me. My address is in my profile. I’m not a consultant trying to sell anything....