Tips for writing Lambda functions
- Running and debugging AWS Lambda functions locally with the Serverless framework and VS Code
- Write recursive AWS Lambda functions the right way
- Using Protocol Buffers with API Gateway and AWS Lambda
context.getRemainingTimeInMillis()to adjust client-side request timeout based on actual invocation time left
- Should you have few monolithic functions or many single-purposed functions?
- How best to manage shared code and shared infrastructure
- Best practices for AWS Lambda timeouts
- Common Node8 mistakes in Lambda
- Considerations for the beginner serverless developer
- AWS Lambda Programming Language Comparisons
- Error handling in AWS Lambda with wrappers
- How to test Serverless apps
- Monorepo vs one repo per service
- Lambda deployment frameworks compared
- When to use Lambda Layers
- How should you organize your functions in production?
- How to log timed out Lambda invocations
- How to detect and stop accidental infinite recursions
- Canary deployment for AWS Lambda
- Canary deployment with LaunchDarkly and AWS Lambda
- How to share code in a monorepo
- How to include SNS and Kinesis in your e2e tests
- Should you pack the AWS SDK in your deployment artefact?
- 5 reasons why you should EventBridge instead of SNS
- Are Lambda-to-Lambda calls really that bad?
Yubl’s road to Serverless
- part 1 : overview
- part 2 : testing & continuous delivery strategies
- part 3 : ops
- part 4 : building a scalable push notification system
- part 5 : building a better recommendation system
Migration to Serverless
- You are wrong about serverless and vendor lock-in
- You are thinking about serverless costs all wrong
- Serverless vs Containers
- The 5 best use cases for the Serverless beginner
- Why your business needs Serverless
- How to go all in with Serverless adoption
- How to migrate existing monoliths to Serverless
- How to migrate existing microservices to Serverless
- SQS and Lambda: the missing guide on failure modes
- Checklist for going live with API Gateway and Lambda
- You need to use structured logging with AWS Lambda
- You should sample debug logs in production
- Centralised logging for AWS Lambda
- Centralised logging for AWS Lambda, REVISED (2018)
- Tips and tricks for logging and monitoring AWS Lambda functions
- Capture and forward correlation IDs through different event sources
- You should use the SSM Parameter Store over Lambda env variables
- Mind the 75GB limit AWS Lambda deployment packages
- The good and bad of X-Ray and Lambda
- Serverless observability brings new challenges to current practices
- Serverless observability, what can we use out of the box?
- How to auto-create CloudWatch alarms for API Gateway, using Lambda
- Debugging serverless applications with Dashbird
- Observability without breaking the bank
- How to monitor Lambda with CloudWatch Metrics
- Getting the most out of CloudWatch Logs
- Introducing an easier way to record custom metrics from Lambda
- How to debug Lambda performance issues
- Applying the pub-sub and push-pull messaging patterns with AWS Lambda
- How to use the Decoupled Invocation pattern with AWS Lambda
- Create IP-protected endpoints with API Gateway and Lambda
- DynamoDB TTL as an ad-hoc scheduling mechanism
- Using CloudWatch and Lambda to implement ad-hoc scheduling
- Scheduling ad-hoc tasks with Step Functions
- A simple event-sourcing example with snapshots using Lambda and DynamoDB
- Why you should use temporary CloudFormatoin stacks when you do serverless
- The why, when and how of API Gateway service proxies
- Hit the 6MB Lambda payload limit? Here’s what you can do.
- Hitchhiker’s guide to AWS Step Functions
- Step Functions: apply try-catch to a block of states
- Step Functions: how to implement semaphores for state machines
- How the Saga pattern manages failures with AWS Lambda and Step Functions
- ICYMI: five updates you’ve missed about Serverless Step Functions
- Serverless Step Functions: no more leaky abstractions
- How to do blue-green deployment for Step Functions
Performance & Cold Start
- Just how expensive is the full AWS SDK?
- Improve latency by enabling HTTP keep-alive
- How long does AWS Lambda keep your idle functions around before a cold start?
- How does language, memory and package size affect cold starts of AWS Lambda?
- Comparing AWS Lambda performance when using Node.js, Java, C# or Python
- All you need to know about caching for serverless applications
- How to: optimize Lambda memory size during CI/CD pipeline
- How can we apply principles of chaos engineering to AWS Lambda?
- Applying the principles of chaos engineering to AWS Lambda with latency injection
- How to choose the right API Gateway auth method
- Many-faced threats to Serverless security
- AWS Lambda and Secret management
- To VPC or not to VPC? Pros and cons in AWS Lambda
- The API Gateway security flaw you need to pay attention to
Serverless Application Repositories
- A serverless application to clean up old deployment packages
- Serverless apps to automate the chores around CloudWatch Logs
- Serverless apps to speed up all your Lambda functions
- A self-healing Kinesis function that adapts its throughput based on performance
- 3 Pro Tips for Developers using AWS Lambda with Kinesis Streams
- Auto-scaling Kinesis streams with AWS Lambda
- AWS Lambda — how to use SNS to retry failed Kinesis events
- Lambda and Kinesis — beware of hot streams
- How to connect SNS to Kinesis for cross-account delivery via API Gateway
- The best reason to use DynamoDB Streams is…
- Top 10 Serverless best practices
- Introducing… CloudFormation extrinsic functions
- CloudFormation protip: use !Sub instead of !Join
- How to include Serverless Repository apps in serverless.yml
- Making Terraform and the Serverless framework work together
- How to make serverless framework boilerplates customizable
- Where Serverless plugin stops and platform starts
- Five reasons you should consider AppSync over API Gateway
- AppSync: skipping nullable nested resolvers by returning early
- AppSync: how to error on DynamoDB conditional check failures
- AppSync: how to compare strings lexicographically in VTL
- AppSync: how to inject table names into DynamoDB batch & transact operations
- Not so FaaS
- Pricing pitfalls in AWS Lambda
- I’m afraid you’re thinking about AWS Lambda cold starts all wrong
- AWS Lambda — use the invocation context to better handle slow HTTP responses
- How to load test a real-time multiplayer mobile game with AWS Lambda and Akka
- AWS Lambda — build yourself a URL shortener in 2 hours
- My wish list for AWS Lambda in 2018
- My thoughts on the serverless announcements at re:invent 2018
- Comparing Nuclio and AWS Lambda
- AWS SAM + Cloudformation macros, a patch made in heaven
- Meet the Family: The “Other” AWS Serverless Services
- Using the power of CloudFormation custom resources for great good
- Provisioned Concurrency — the end of cold starts
- 24 open source tools for the serverless developer: part 1
- 24 open source tools for the serverless developer: part 2
- HTTP API goes GA!
- Unlocking new Serverless use cases with EFS and Lambda
Are you struggling with serverless or need guidance on best practices? Do you want someone to review your architecture and help you avoid costly mistakes down the line? Don’t worry, I’m here to help. Let’s talk!
If you enjoyed this article, why not follow me and get even more?
I would appreciate your support on Patreon too. And in return, you can get direct help from me via a private Slack channel and 1–2–1 mentoring.
Check out my new course, Learn you some Lambda best practice for great good! In this course, you will learn best practices for working with AWS Lambda in terms of performance, cost, security, scalability, resilience and observability.
Check out Complete Guide to AWS Step Functions. In this course, we’ll cover everything you need to know to use AWS Step Functions service effectively. Including basic concepts, HTTP and event triggers, activities, design patterns and best practices.
Get your copy here.
Come learn about operational BEST PRACTICES for AWS Lambda: CI/CD, testing & debugging functions locally, logging, monitoring, distributed tracing, canary deployments, config management, authentication & authorization, VPC, security, error handling, and more.
You can also get 40% off the face price with the code ytcui.