Releases: aws-powertools/powertools-lambda-java
v1.0.1
Changes
This release adds some performance improvement to parameters utility when fetching params using default SSM/Secret manager client.
Docs are also updated with official blog link and also fixes broken links to github.
- docs: fix broken links and add blog link (#197) by @pankajagrawal16
- chore: upgrade AspectjGradlePlugin to latest and example project to java 11 (#189) by @pankajagrawal16
- perf: Make UrlConnectionHttpClient default client for params fetch (#185) by @pankajagrawal16
This release was made possible by the following contributors:
v1.0.0
Changes
With this release, we move from beta to General Availability 🎉🎉🎉!
Quick links: 📜Documentation | Maven | Feature request | Bug Report | Detailed blog post
Tracing
Provides a simple way to send traces from functions to AWS X-Ray. It provides visibility into function calls, interactions with other AWS services, or external HTTP requests. You can add annotations to traces to allow filtering based on key information. For example, when using @Tracing, it creates a ColdStart annotation for you. You can easily group and analyze traces where there was an initialization overhead.
Logging
Based on log4j2, outputs structured JSON. It allows you to pass in strings, or more complex objects, and takes care of serializing the log output. Common use cases—such as logging the Lambda event payload and capturing cold start information—are handled for you. You can also include your own custom keys to the logger at any time.
Metrics
Makes collecting custom metrics from your application simple, without the need to make synchronous requests to external systems. This functionality, which is powered by Amazon CloudWatch Embedded Metric Format (EMF), allows for capturing metrics asynchronously. Again, convenient functionality provides for common cases, such as validating metrics against CloudWatch EMF specification and tracking cold starts.
Helper utilities
Utilities removes most of the heavy lifting that customers have to do across a wide range of use cases. New utilities get added based on community feedback. If you have an idea, feel free to open an RFC. Some of the utilities already made available as part of GA:
Sample projects using Powertools Java
🧐What's New for Beta customers
If you've been following the Beta, GA version is released with all the functionalities in our latest beta release v0.6.0-beta
Breaking changes from v0.6.0-beta to GA:
We have renamed some of the annotations to make it more concise and consistent in usage. Refer this issue for more details.
Beta | GA |
---|---|
PowertoolsTracing | Tracing |
PowertoolsLogging | Logging |
PowertoolsMetrics | Metrics |
LargeMessageHandler | SqsLargeMessage |
SqsBatchProcessor | SqsBatch |
All the functionality remains the same. So for beta customers, it should be just about fixing to correct imports.
Preview release v0.6.0-beta
Changes
Validation utility
This utility provides JSON Schema validation for payloads held within events and response used in AWS Lambda.
Key features include:
- Validate incoming events and responses
- Native support for the most common AWS Lambda event sources (API Gateway, SNS, SQS, ...)
- JMESPath support validate only a sub part of the event
Use our annotation to get started straight away.
For more control, use the utility directly.
- module validation (#138) by @jeromevdl
🐛 Bug and hot fixes
- chore: gradle example (#147) by @pankajagrawal16
- feat: log aws request id (#133) by @pankajagrawal16
- docs: Update all the environment variables used (#127) by @pankajagrawal16
- improv: tweak README.md (#128) by @bmicklea
This release was made possible by the following contributors:
@bmicklea, @dependabot, @dependabot[bot], @jeromevdl, @msailes and @pankajagrawal16
Preview release v0.5.0-beta
Changes
SQS batch processing utility
Add a new utility to handle partial failures when processing batches of SQS messages in Lambda. The default behavior with Lambda - SQS is to return all messages to the queue when there is a failure during processing. This utility provides functionality to handle failures individually at the message level, and avoid re-processing messages.
🐛 Bug and hot fixes
- fix: Make slf4j work along with log4j2 (#123) by @pankajagrawal16
This release was made possible by the following contributors:
Preview release v0.4.0-beta
Changes
Add a new utility to fetch and cache parameter values from AWS Systems Manager Parameter Store, AWS Secrets Manager. It also provides a base class to create your parameter provider implementation.
Retrieve values from Systems Manager Parameter Store:
public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent input,
Context context) {
SSMProvider ssmProvider = ParamManager.getSsmProvider();
// Retrieve a single parameter
String value = ssmProvider.getValue("/my/parameter");
// Retrieve multiple parameters from a path prefix recursively
// This returns a map with the parameter name as key
Map<String, String> multipleValue = ssmProvider.getMultiple("/my/path/prefix");
}
Retrieve secrets from AWS Secrets Managers:
public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent input,
Context context) {
SecretsProvider secretsProvider = ParamManager.getSecretsProvider();
// Retrieve a single secret
String secretValue = secretsProvider.get("my-secret");
}
🌟 Minor Changes
- feat: integration with CloudWatch ServiceLens #88 (#111) by @rb2010
- fix: Log event via object mapper and not depend on toString (#113) by @pankajagrawal16
This release was made possible by the following contributors:
Preview release v0.3.1-beta
Changes
This release fixes import of unused dependencies for tracing utility.
- fix: Removing Log4J dependencies from the tracing module. (#106) by @msailes
- fix: Removing v1 Java SDK dependencies for X-Ray (#105) by @msailes
- docs: fixes to the documentation (#102) by @msailes
This release was made possible by the following contributors:
@dependabot, and @msailes
Preview release v0.3.0-beta
Changes
Lambda Powertools for Java now supports the creation of CloudWatch metrics asynchronously. We follow a convention over configuration approach to simplify the developer experience.
- feat: Metrics utility (#91) by @pankajagrawal16
This release was made possible by the following contributors:
Preview release v0.2.0-beta
Changes
- docs: Readme update (#72) by @pankajagrawal16
- ci: Change in root pom should also trigger build (#71) by @pankajagrawal16
- docs: Update docs to reflect about metrics coming soon (#70) by @pankajagrawal16
- fix(general): clean up typos and code (#62) by @michaelbrewer
- feat: Utility without annotation (#61) by @pankajagrawal16
- ci: Build docs action update (#65) by @pankajagrawal16
- docs: Update SQS large payload docs (#60) by @pankajagrawal16
- docs: fixing documentation (#59) by @stevehouel
- feat: SQS Large message handling (#55) by @msailes
🌟New features and non-breaking changes
- feat: Utility without annotation (#61) by @pankajagrawal16
- feat: SQS Large message handling (#55) by @msailes
📜 Documentation updates
- docs: Readme update (#72) by @pankajagrawal16
- docs: Update docs to reflect about metrics coming soon (#70) by @pankajagrawal16
- docs: Update SQS large payload docs (#60) by @pankajagrawal16
- docs: fixing documentation (#59) by @stevehouel
🐛 Bug and hot fixes
- fix(general): clean up typos and code (#62) by @michaelbrewer
This release was made possible by the following contributors:
@michaelbrewer, @msailes, @pankajagrawal16, @stevehouel and Pankaj Agrawal
Preview release v0.1.0-beta
Changes
- feat: Structured JSON logging
- feat: Additional tracing support for X-Ray