(aws-logs): L2 constructs for CloudWatch log delivery
- Dominant language
- TypeScript
- Stars
- 12.9k
- Forks
- 4.6k
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 74
Description
### Describe the feature
Higher-level (L2) constructs that wrap the L1 constructs for CloudWatch logs delivery:
- [`CfnDelivery`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.CfnDelivery.html)
- [`CfnDeliveryDestination`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.CfnDeliveryDestination.html)
- [`CfnDeliverySource`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.CfnDeliverySource.html)
It may also be helpful to add a "pipeline" construct which (a) creates a delivery source + destination and (b) wires them together
### Use Case
In particular, our team wants to use the newly released [CloudWatch access logging for NLBs](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-cloudwatch-logs.html), which requires CDK integration with CloudWatch log delivery.
However, this benefits all log delivery use-cases, which only appear to be growing as more AWS services onboard to log delivery.
### Proposed Solution
At a high level, the solution should include:
* Wrapper constructs for the L1 `Cfn*` constructs
* Enums for various type parameters which are exposed as `string` types in the API, e.g. `logType`, `outputFormat`
### Other Information
_No response_
### Acknowledgements
- [x] I may be able to implement this feature request
- [ ] This feature might incur a breaking change
### AWS CDK Library version (aws-cdk-lib)
aws-cdk-lib@2.213.0
### AWS CDK CLI version
2.1113.0 (build bb3ff6f)
### Environment details (OS name and version, etc.)
Amazon Linux 2
Contributor guide
Research direction
Start with the linked CfnDelivery, CfnDeliveryDestination, and CfnDeliverySource API documentation and inspect the existing aws-logs L2 construct entry points. Determine the wrapper APIs, enum values for logType and outputFormat, and whether a pipeline construct is needed. Done means the requested L2 constructs and documented type-safe parameters are covered by the project's tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, typescript
- Domain
- cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100