Overview of new capabilities in AWS Lambda
AWS continues to innovate in serverless compute. Around re:Invent 2024 time-frame, AWS Lambda announced enhancements across various aspects of the service. We covered the specifics of several launches in re:Invent sessions, which are now available on YouTube. In this post, we dive into the key Lambda launches that enable developers to build, monitor, and optimize their serverless applications, with a bigger smile on their face. Let us know how you use them!
Developer Experience
Building applications that end-users love is hard. To simplify the process of building, Lambda is doubling down on improving the developer experience:
Building functions in VS Code: The AWS Toolkit for VS Code now supports building Lambda applications directly within the IDE. This integration streamlines the development workflow, allowing developers to create, test, and deploy Lambda functions without leaving their preferred coding environment.
Code Editor Based on Code-OSS: AWS has introduced a new code editor for Lambda based on Code-OSS, the open-source core of Visual Studio Code. The new code editor on console offers a similar layout to the desktop version of the editor and includes features such as the command palette and quick search. Developers can apply preferred themes and personalize their settings, mirroring their local development environment setup. Additionally, this new editor allows customers to enable an Amazon Q Developer extension for real-time code suggestions and insights to help boost productivity. Developers can also view their function code and test results simultaneously, streamlining the development and debugging workflow. This familiar interface brings powerful editing capabilities directly to the Lambda console, enhancing productivity for developers who prefer working in the AWS environment.
Custom Serializer for Java Runtimes: Java developers can now implement custom serializers for their Lambda functions. This feature provides greater control over how objects are serialized and deserialized to simplify cases where the incoming event format is not compatible with the default Lambda serializer, while improving performance for Java-based Lambda functions.
CMK Encryption for ZIP Function Code Artifacts: Lambda now supports Customer Managed Keys (CMK) for encrypting ZIP function code artifacts. This additional layer of security gives organizations more control over their sensitive code, meeting stringent compliance requirements.
Observability and Monitoring
Our launches in this space are designed to empower developers to monitor, troubleshoot, and optimize their Lambda functions effectively, both while building and in production environments.
Application Performance Monitoring with CloudWatch Application Signals: This new feature allows developers to gain deeper insights into their Lambda function performance. Application Signals provides pre-built, standardized dashboards for critical application metrics (such as throughput, availability, latency, faults, and errors), correlated traces, and interactions between the Lambda function and its dependencies (such as other AWS services), without requiring any manual instrumentation or code changes from developers. By leveraging CloudWatch Application Signals for Lambda functions, developers identify and troubleshoot issues more effectively, leading to improved application reliability.
Real-Time Analytics with Amazon CloudWatch Logs Live Tail: The Lambda console now offers real-time analytics powered by CloudWatch. With Live Tail in Lambda console, you can view and analyze Lambda logs in real time as they become available. This makes it easier for developers to quickly test and validate code or configuration changes in real time, accelerating the author-test-deploy cycle (also known as the “inner dev loop”) when building applications using Lambda. The Live Tail experience also makes it easier and faster for operators and DevOps teams to detect and debug failures and critical errors in Lambda function code, reducing the mean time to recovery (MTTR) when troubleshooting Lambda function errors.
Key Function Insights on CloudWatch Dashboard: The Lambda console now features a new built-in dashboard, which leverages CloudWatch Metrics Insights capability and provides you with instant visibility into the following critical insights — most-invoked Lambda functions, functions with highest number of errors, and functions taking the longest to run. This reduces friction due to context switching and enables your operator teams to easily identify and fix the source of errors or performance anomalies without leaving the Lambda console.
领英推荐
Test resilience by injecting faults into Applications: Lambda is designed to meet the needs of high availability applications, providing 99.95% availability. With the AWS Fault Injection Service (FIS) actions for Lambda, developers and operators can now verify the response of their application to Lambda errors for all language runtimes without code modification. By reproducing behaviors that may cause applications to fail, the actions enable customers to identify gaps in their application configurations, monitoring, alarms, and operational response.?
CloudWatch Metrics for Lambda Event Source Mappings (ESMs): With this launch, AWS provides more granular metrics for Lambda ESMs, offering deeper insights into event processing and helping optimize event-driven architectures. Developers?can now use the following CloudWatch metrics to monitor the processing state of events ingested by ESMs — PolledEventCount, InvokedEventCount, FilteredOutEventCount, FailedInvokeEventCount, DeletedEventCount, DroppedEventCount, and OnFailureDestinationDeliveredEventCount. PolledEventCount counts the events read by an ESM, and InvokedEventCount counts the events that invoked a Lambda function. FilteredOutEventCount counts the events filtered out by an ESM. FailedInvokeEventCount counts the events that attempted to invoke a Lambda function, but encountered failure. DeletedEventCount counts the events that have been deleted from the SQS queue by Lambda upon successful processing. DroppedEventCount counts the events dropped due to event expiry or exhaustion of retry attempts. OnFailureDestinationDeliveredEventCount counts the events successfully sent to an on-failure destination.
Event-Driven Architectures
Developers have been building event-driven architectures on Lambda for the last 10 years. As applications mature to process ever increasing volumes of data, developers need help to manage the increasing scale, throughput, without compromising resilience.
Provisioned Mode for Kafka ESMs: For event-driven Kafka applications that need to handle unpredictable bursts of traffic, lack of control over the throughput of ESM can lead to delays in your users’ experience. Provisioned Mode for Kafka ESM allows developers to fine-tune the throughput of the ESM by provisioning and auto-scaling between a minimum and maximum number of polling resources called event pollers, and is ideal for real-time applications with stringent performance requirements.
S3 Failed Event Destination for Stream Event Sources: Lambda functions can now specify an S3 bucket as a destination for failed events from stream sources like Kinesis and DynamoDB Streams. This feature improves error handling and enables better debugging of stream processing applications.
Recursive Loop Detection for Lambda-S3 Integrations: AWS has introduced an intelligent feature that detects and stops recursive loops between Lambda and S3. This safeguard prevents unintended infinite loops, protecting against runaway costs and improving application stability.
Managed Runtime Updates
To unblock developers from leveraging the latest language versions, Lambda announced:
SnapStart for Python and .NET Functions: AWS has extended SnapStart support to Python and .NET functions, reducing cold start times for these runtimes to sub-second levels. SnapStart improves startup times by initializing the function’s code ahead of time, taking a snapshot of the initialized execution environment, and caching it. When the function is invoked and subsequently scales up, Lambda resumes new execution environments from the cached snapshot instead of initializing them from scratch, significantly improving startup latency. SnapStart is ideal for applications such as synchronous APIs, interactive microservices, data processing, and ML inference.
Support for Node.js 22: Lambda now supports Node.js 22, allowing developers to leverage the latest features and improvements in the Node.js ecosystem.? Node.js 22 is the latest long-term support (LTS) release of Node.js and is expected to be supported for security and bug fixes until April 2027. It provides access to the latest Node.js language features, such as the ‘fetch’ API.?
Support for Python 3.13: With Python 3.13 support, Lambda users can take advantage of the newest Python features and optimizations in their serverless applications.? Python 3.13 is the latest long-term support (LTS) release of Python and is expected to be supported for security and bug fixes until October 2029.
AWS Lambda
1 个月What an impressive and innovative list of accomplishments for 2024! Thank you Janak Agarwal for supporting mine and rest of Lambda's engineering teams across all these launches!
CEO @ AMPAworks - A.I. cameras for healthcare inventory
1 个月Thanks for all the great new features Janak Agarwal and Lambda team!???? Every AWS resource should have a lambda-ish interface (like CloudFront Functions) for test and deploy. And more memory added to Lambda Layers so we can have more room for entire libraries on the layers. I will file my lambda feature requests today :)
Sr. Software Developer | JAVA | Spring Boot | Golang | NodeJS | Python | AWS | Azure
1 个月Insightful
LP/Advisor (ex-AWS)
1 个月SnapStart for custom runtime and OCI!
Technical Project Manager | AWS | E-commerce & Tech Business Solutions
1 个月Very informative