A construct that creates an AWS Lambda function to publish S3 General Purpose buckets usage metrics to CloudWatch.
To use the S3BucketsUsageMetricPublisher
construct, simply import it into your AWS CDK stack and create a new instance of the construct:
import { Stack } from 'aws-cdk-lib';
import { S3BucketsUsageMetricPublisher } from './s3-buckets-usage-metric-publisher';
const stack = new Stack(app, 'MyStack');
new S3BucketsUsageMetricPublisher(stack, 'MyS3BucketsUsageMetricPublisher', {
publishFrequency: 5,
cwNamespace: 'MyNamespace',
});
This will create a new AWS Lambda function that publishes the number of S3 bucket to CloudWatch every 5 minutes for the us-east-1
and us-west-2
regions, using the MyNamespace
namespace.
S3BucketsUsageMetricPublisher(scope: Construct, id: string, props: S3BucketsUsageMetricPublisherProps)
Creates a new instance of the S3BucketsUsageMetricPublisher
construct.
scope
- The parent construct.id
- The ID of the construct.props
- The properties of the construct.
publishFrequency
- The time interval (in minutes) that the Lambda function will be triggered to publish metrics to CloudWatch.handler
- The AWS Lambda function that publishes usage metrics to CloudWatch.rule
- The CloudWatch Events rule that triggers the Lambda function to publish metrics to CloudWatch.cwNamespace
- The CloudWatch namespace to publish metrics to.
This library is licensed under the Apache 2.0 License. See the LICENSE file.
A construct that creates an AWS Lambda function to publish S3 general purpose usage metrics to CloudWatch.
import { S3BucketsUsageMetricPublisher } from '@time-loop/cdk-s3-buckets-usage-metric-publisher'
new S3BucketsUsageMetricPublisher(scope: Construct, id: Namer, props: S3BucketsUsageMetricPublisherProps)
Name | Type | Description |
---|---|---|
scope |
constructs.Construct |
The parent construct. |
id |
multi-convention-namer.Namer |
The ID of the construct. |
props |
S3BucketsUsageMetricPublisherProps |
The properties of the construct. |
- Type: constructs.Construct
The parent construct.
- Type: multi-convention-namer.Namer
The ID of the construct.
The properties of the construct.
Name | Description |
---|---|
toString |
Returns a string representation of this construct. |
public toString(): string
Returns a string representation of this construct.
Name | Description |
---|---|
isConstruct |
Checks if x is a construct. |
import { S3BucketsUsageMetricPublisher } from '@time-loop/cdk-s3-buckets-usage-metric-publisher'
S3BucketsUsageMetricPublisher.isConstruct(x: any)
Checks if x
is a construct.
- Type: any
Any object.
Name | Type | Description |
---|---|---|
node |
constructs.Node |
The tree node. |
cwNamespace |
string |
No description. |
handler |
aws-cdk-lib.aws_lambda_nodejs.NodejsFunction |
No description. |
publishFrequency |
number |
No description. |
rule |
aws-cdk-lib.aws_events.Rule |
No description. |
public readonly node: Node;
- Type: constructs.Node
The tree node.
public readonly cwNamespace: string;
- Type: string
public readonly handler: NodejsFunction;
- Type: aws-cdk-lib.aws_lambda_nodejs.NodejsFunction
public readonly publishFrequency: number;
- Type: number
public readonly rule: Rule;
- Type: aws-cdk-lib.aws_events.Rule
import { S3BucketsUsageMetricPublisherProps } from '@time-loop/cdk-s3-buckets-usage-metric-publisher'
const s3BucketsUsageMetricPublisherProps: S3BucketsUsageMetricPublisherProps = { ... }
Name | Type | Description |
---|---|---|
cloudwatchLogsRetention |
aws-cdk-lib.aws_logs.RetentionDays |
How long to retain logs published to CloudWatch logs. |
cwNamespace |
string |
The CloudWatch namespace to publish metrics to. |
publishFrequency |
number |
Time intervals that Lambda will be triggered to publish metric in CloudWatch. |
public readonly cloudwatchLogsRetention: RetentionDays;
- Type: aws-cdk-lib.aws_logs.RetentionDays
- Default: aws_logs.RetentionDays.THREE_MONTHS
How long to retain logs published to CloudWatch logs.
public readonly cwNamespace: string;
- Type: string
- Default: 'S3GeneralPurposeBucketsUsage'
The CloudWatch namespace to publish metrics to.
public readonly publishFrequency: number;
- Type: number
- Default: 1
Time intervals that Lambda will be triggered to publish metric in CloudWatch.