@scloud/cdk-patterns
Version: 
Serverless CDK patterns for common infrastructure needs
25 lines • 3.04 kB
JavaScript
;
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=