AWS Lambda is a serverless computing platform that lets users run code without provisioning or managing servers. With Lambda, users can run code for virtually any type of app or backend service—all with zero administration. It takes of requirements to run and scale code with high availability.
$NaN
Per 1 ms
Azure API Management
Score 8.7 out of 10
N/A
Microsoft's Azure API Management supports creation of API.
$0.04
per 10,000 calls
Pricing
AWS Lambda
Azure API Management
Editions & Modules
128 MB
$0.0000000021
Per 1 ms
1024 MB
$0.0000000167
Per 1 ms
10240 MB
$0.0000001667
Per 1 ms
Consumption
0.042 per 10,000 calls
Lightweight and serverless version of API Management service, billed per execution
Developer
$48.04
per month Non-production use cases and evaluations
Basic
$147.17
per month Entry-level production use cases
Standard
$686.72
per month Medium-volume production use cases
Premium
$2,795.17
per month High-volume or enterprise production use cases
Isolated
TBA
per month Enterprise production use cases requiring high degree of isolation
Offerings
Pricing Offerings
AWS Lambda
Azure API Management
Free Trial
No
No
Free/Freemium Version
No
No
Premium Consulting/Integration Services
No
No
Entry-level Setup Fee
No setup fee
No setup fee
Additional Details
—
—
More Pricing Information
Community Pulse
AWS Lambda
Azure API Management
Considered Both Products
AWS Lambda
Verified User
Engineer
Chose AWS Lambda
AWS is great product and a close match our expectations. It is close to Azure in function but more feature rich with API and support documents. From my experience, it is cheaper compared with our competitors and provides better interface. Overall our dev engineers prefer AWS …
I don't know nor have used any other product that really competes with AWS Lambda. I would think Microsoft would have a product that completes with AWS Lambda but I have never used it.
Lambda excels at event-driven, short-lived tasks, such as processing files or building simple APIs. However, it's less ideal for long-running, computationally intensive, or applications that rely on carrying the state between jobs. Cold starts and constant load can easily balloon the costs.
1) Securing your back-end APIs - If you have a legacy back-end web service that has a basic authentication scheme, you can add some additional security by placing APIM in front, and requiring subscription keys. Leverage your existing firewall to ensure only your APIM instance can communicate with your back-end API, and you've basically added a layer of protection.
2) Lift and shift - there are always going to be clients that don't want to update their clients to use a newer API; in some cases you can make a newer API look like an older one by implementing some complex policies in APIM. You can also do the opposite, making older APIs look new, such as making an XML back-end accept both JSON and XML.
3) Centralizing your APIs - if you've acquired another company and want to make their API set look as if it's a part of the larger whole, APIM is an easy way to provide a consistent front-end interface for developers.
Developing test cases for Lambda functions can be difficult. For functions that require some sort of input it can be tough to develop the proper payload and event for a test.
For the uninitiated, deploying functions with Infrastructure as Code tools can be a challenging undertaking.
Logging the output of a function feels disjointed from running the function in the console. A tighter integration with operational logging would be appreciated, perhaps being able to view function logs from the Lambda console instead of having to navigate over to CloudWatch.
Sometimes its difficult to determine the correct permissions needed for Lambda execution from other AWS services.
Lack of robustness is a bit of an issue. Several other providers offer more options and capabilities, but then, they are lacking in interface ease.
As with anything Azure, pricing is really hard to stay on top of. I always find that you really don’t know what you’re paying for until you get the bill. Having an excellent Azure Administrator can help resolve that.
Integrating with app services outside of Azure can be a challenge, or at least much more challenging than just using Azure App Services.
I give it a seven is usability because it's AWS. Their UI's are always clunkier than the competition and their documentation is rather cumbersome. There's SO MUCH to dig through and it's a gamble if you actually end up finding the corresponding info if it will actually help. Like I said before, going to google with a specific problem is likely a better route because AWS is quite ubiquitous and chances are you're not the first to encounter the problem. That being said, using SAM (Serverless application model) and it's SAM Local environment makes running local instances of your Lambdas in dev environments painless and quite fun. Using Nodejs + Lambda + SAM Local + VS Code debugger = AWESOME.
Amazon consistently provides comprehensive and easy-to-parse documentation of all AWS features and services. Most development team members find what they need with a quick internet search of the AWS documentation available online. If you need advanced support, though, you might need to engage an AWS engineer, and that could be an unexpected (or unwelcome) expense.
AWS Lambda is good for short running functions, and ideally in response to events within AWS. Google App Engine is a more robust environment which can have complex code running for long periods of time, and across more than one instance of hardware. Google App Engine allows for both front-end and back-end infrastructure, while AWS Lambda is only for small back-end functions
Positive - Only paying for when code is run, unlike virtual machines where you pay always regardless of processing power usage.
Positive - Scalability and accommodating larger amounts of demand is much cheaper. Instead of scaling up virtual machines and increasing the prices you pay for that, you are just increasing the number of times your lambda function is run.
Negative - Debugging/troubleshooting, and developing for lambda functions take a bit more time to get used to, and migrating code from virtual machines and normal processes to Lambda functions can take a bit of time.