aws / aws/aws-cdk

(aws-logs): L2 constructs for CloudWatch log delivery

Open
#37,544 1 comment 0 reactions 0 assignees View on GitHub
@aws-cdk/aws-logs effort/medium feature-request p2
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.