UNPKG

@scloud/cdk-patterns

Version:

Serverless CDK patterns for common infrastructure needs

25 lines 3.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LogGroupRetention = void 0; const aws_cdk_lib_1 = require("aws-cdk-lib"); const aws_logs_1 = require("aws-cdk-lib/aws-logs"); /** * Builds a LogGroup with a default two year . * @param stack Parent CDK stack * @param category Used to build up the logGroupName: /stackName/categpry/name * @param name Name (and base for an ID) for the logGroup * @param retention Defaults to RetentionDays.TWO_YEARS */ class LogGroupRetention extends aws_logs_1.LogGroup { constructor(scope, id, category, retention = aws_logs_1.RetentionDays.TWO_YEARS) { super(scope, `${id}LogGroup`, { // Ensure the log group is deleted when the stack is deleted // and that logs aren't retained indefinitely logGroupName: `/${aws_cdk_lib_1.Stack.of(scope).stackName}/${category}/${id}`, removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY, retention, }); } } exports.LogGroupRetention = LogGroupRetention; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nR3JvdXBSZXRlbnRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvTG9nR3JvdXBSZXRlbnRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQW1EO0FBQ25ELG1EQUErRDtBQUcvRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLGlCQUFrQixTQUFRLG1CQUFRO0lBQzdDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBZ0IsRUFBRSxZQUEyQix3QkFBYSxDQUFDLFNBQVM7UUFDNUcsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1lBQzVCLDREQUE0RDtZQUM1RCw2Q0FBNkM7WUFDN0MsWUFBWSxFQUFFLElBQUksbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxJQUFJLFFBQVEsSUFBSSxFQUFFLEVBQUU7WUFDL0QsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztZQUNwQyxTQUFTO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBVkQsOENBVUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5LCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IExvZ0dyb3VwLCBSZXRlbnRpb25EYXlzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogQnVpbGRzIGEgTG9nR3JvdXAgd2l0aCBhIGRlZmF1bHQgdHdvIHllYXIgLlxuICogQHBhcmFtIHN0YWNrIFBhcmVudCBDREsgc3RhY2tcbiAqIEBwYXJhbSBjYXRlZ29yeSBVc2VkIHRvIGJ1aWxkIHVwIHRoZSBsb2dHcm91cE5hbWU6IC9zdGFja05hbWUvY2F0ZWdwcnkvbmFtZVxuICogQHBhcmFtIG5hbWUgTmFtZSAoYW5kIGJhc2UgZm9yIGFuIElEKSBmb3IgdGhlIGxvZ0dyb3VwXG4gKiBAcGFyYW0gcmV0ZW50aW9uIERlZmF1bHRzIHRvIFJldGVudGlvbkRheXMuVFdPX1lFQVJTXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2dHcm91cFJldGVudGlvbiBleHRlbmRzIExvZ0dyb3VwIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgY2F0ZWdvcnk6IHN0cmluZywgcmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzID0gUmV0ZW50aW9uRGF5cy5UV09fWUVBUlMpIHtcbiAgICBzdXBlcihzY29wZSwgYCR7aWR9TG9nR3JvdXBgLCB7XG4gICAgICAvLyBFbnN1cmUgdGhlIGxvZyBncm91cCBpcyBkZWxldGVkIHdoZW4gdGhlIHN0YWNrIGlzIGRlbGV0ZWRcbiAgICAgIC8vIGFuZCB0aGF0IGxvZ3MgYXJlbid0IHJldGFpbmVkIGluZGVmaW5pdGVseVxuICAgICAgbG9nR3JvdXBOYW1lOiBgLyR7U3RhY2sub2Yoc2NvcGUpLnN0YWNrTmFtZX0vJHtjYXRlZ29yeX0vJHtpZH1gLFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgcmV0ZW50aW9uLFxuICAgIH0pO1xuICB9XG59XG4iXX0=