v1.29.1
Due to a problem with the release pipeline, we had to yank the v1.29.0 release from PyPI. To fix the problem we are releasing v1.29.1 with no additional changes.
Summary
This release adds a new major integration with Apache Kafka (both Amazon Managed Streaming for Apache Kafka (MSK) and self-managed clusters). We also extended the Event Source Data Classes to support CloudWatch dashboard custom widgets.
Apache Kafka
Powertools can now seamlessly consume events sourced from Apache Kafka (MSK, self-managed). Apache Kafka as an event source operates similarly to using Amazon Simple Queue Service (Amazon SQS) or Amazon Kinesis.
You can easily consume a Kafka event by using the KafkaEvent
Data Class:
If you want extra flexibility and validation, you can also use the Pydantic models KafkaMskEventModel
(for Apache MSK) and KafkaSelfManagedEventModel
(for self-managed clusters):
If your Kafka event payload has a known structure, you could also leverage the KafkaEnvelope
model.
Thank you @lyoung-confluent and @ran-isenberg for your contribution!
🌟 Would you like to see more integrations between Apache Kafka and Lambda Powertools? Drop us a line in the python channel of our Discord.
CloudWatch dashboards custom widgets
We also added support for handling events generated by CloudWatch dashboard custom widgets:
Big thanks to @sthuber90 for your contribution!
Changes
🌟New features and non-breaking changes
- feat(parser): add KafkaMskEventModel and KafkaSelfManagedEventModel (#1499) by @ran-isenberg
- feat(data-classes): add KafkaEvent and KafkaEventRecord (#1485) by @lyoung-confluent
- feat(event_sources): add CloudWatch dashboard custom widget event (#1474) by @sthuber90
- chore(ci): add workflow to suggest splitting large PRs (#1480) by @heitorlessa
📜 Documentation updates
- feat(parser): add KafkaMskEventModel and KafkaSelfManagedEventModel (#1499) by @ran-isenberg
- feat(data-classes): add KafkaEvent and KafkaEventRecord (#1485) by @lyoung-confluent
- feat(event_sources): add CloudWatch dashboard custom widget event (#1474) by @sthuber90
🔧 Maintenance
- chore(deps): bump flake8-bugbear from 22.8.23 to 22.9.11 (#1512) by @dependabot
- chore(deps): bump mkdocs-material from 8.4.3 to 8.4.4 (#1513) by @dependabot
- chore(deps): bump types-requests from 2.28.9 to 2.28.10 (#1508) by @dependabot
- chore(deps): bump aws-cdk-aws-apigatewayv2-integrations-alpha from 2.40.0a0 to 2.41.0a0 (#1510) by @dependabot
- chore(deps-dev): bump mypy-boto3-ssm from 1.24.39.post2 to 1.24.69 (#1509) by @dependabot
- chore(deps-dev): bump aws-cdk-lib from 2.40.0 to 2.41.0 (#1507) by @dependabot
- chore(deps-dev): bump aws-cdk-aws-apigatewayv2-integrations-alpha from 2.39.1a0 to 2.40.0a0 (#1496) by @dependabot
- chore(deps-dev): bump mkdocs-material from 8.4.2 to 8.4.3 (#1504) by @dependabot
- chore(deps): bump pydantic from 1.10.1 to 1.10.2 (#1502) by @dependabot
- chore(deps-dev): bump pytest from 7.1.2 to 7.1.3 (#1497) by @dependabot
- chore(deps-dev): bump black from 22.6.0 to 22.8.0 (#1494) by @dependabot
- chore(deps-dev): bump aws-cdk-lib from 2.39.1 to 2.40.0 (#1495) by @dependabot
- chore(maintenance): add discord link to first PR and first issue (#1493) by @rubenfonseca
- chore(deps): bump pydantic from 1.10.0 to 1.10.1 (#1491) by @dependabot
- chore(deps-dev): bump flake8-variables-names from 0.0.4 to 0.0.5 (#1490) by @dependabot
- chore(deps-dev): bump mkdocs-material from 8.4.1 to 8.4.2 (#1483) by @dependabot
- chore(ci): create reusable docs publishing workflow (#1482) by @heitorlessa
- chore(deps-dev): bump mypy-boto3-dynamodb from 1.24.55.post1 to 1.24.60 (#1481) by @dependabot
- chore(ci): add workflow to suggest splitting large PRs (#1480) by @heitorlessa
- chore(ci): add linter for GitHub Actions as pre-commit hook (#1479) by @heitorlessa
- chore(deps-dev): bump black from 21.12b0 to 22.8.0 (#1515) by @dependabot
- chore(deps-dev): bump mkdocs-material from 8.4.4 to 8.5.0 (#1514) by @dependabot
- chore(ci): add linter for GitHub Actions as pre-commit hook (#1479) by @heitorlessa
This release was made possible by the following contributors:
@dependabot, @dependabot[bot], @heitorlessa, @leandrodamascena, @lyoung-confluent, @ran-isenberg, @rubenfonseca, @sthuber90 and Release bot