UNPKG

aws-logs-comptroller

Version:

Set Log Retention and prune orphaned LogGroups on a schedule using Step Functions service integrations and intrinsic functions.

33 lines 4.12 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.AwsLogsComptroller = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const aws_events_1 = require("aws-cdk-lib/aws-events"); const aws_events_targets_1 = require("aws-cdk-lib/aws-events-targets"); const constructs_1 = require("constructs"); const iterator_state_machine_1 = require("./iterator-state-machine"); const runner_state_machine_1 = require("./runner-state-machine"); class AwsLogsComptroller extends constructs_1.Construct { constructor(scope, id, props = {}) { super(scope, id); const { eventBus, retentionDays, schedule } = props; const runner = runner_state_machine_1.getRunner(scope, retentionDays); const iterator = iterator_state_machine_1.getIteratorStateMachine(scope, runner); if (schedule) { new aws_events_1.Rule(this, 'LogsComptrollerScheduler', { eventBus, schedule: schedule === true ? aws_events_1.Schedule.cron({ hour: '4', minute: '0', }) : schedule, targets: [new aws_events_targets_1.SfnStateMachine(iterator)], }); } } } exports.AwsLogsComptroller = AwsLogsComptroller; _a = JSII_RTTI_SYMBOL_1; AwsLogsComptroller[_a] = { fqn: "aws-logs-comptroller.AwsLogsComptroller", version: "0.1.5" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx1REFBa0U7QUFDbEUsdUVBQWlFO0FBRWpFLDJDQUF1QztBQUN2QyxxRUFBbUU7QUFFbkUsaUVBQW1EO0FBUW5ELE1BQWEsa0JBQW1CLFNBQVEsc0JBQVM7SUFDL0MsWUFBYSxLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUFpQyxFQUMzRTtRQUNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRXBELE1BQU0sTUFBTSxHQUFHLGdDQUFTLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sUUFBUSxHQUFHLGdEQUF1QixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV4RCxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksaUJBQUksQ0FBQyxJQUFJLEVBQUUsMEJBQTBCLEVBQUU7Z0JBQ3pDLFFBQVE7Z0JBQ1IsUUFBUSxFQUFFLFFBQVEsS0FBSyxJQUFJO29CQUN6QixDQUFDLENBQUMscUJBQVEsQ0FBQyxJQUFJLENBQUM7d0JBQ2QsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRztxQkFDdkIsQ0FBQztvQkFDRixDQUFDLENBQUMsUUFBUTtnQkFDWixPQUFPLEVBQUUsQ0FBQyxJQUFJLG9DQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDekMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztBQXJCSCxnREFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEJ1cywgUnVsZSwgU2NoZWR1bGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCB7IFNmblN0YXRlTWFjaGluZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cyc7XG5pbXBvcnQgeyBSZXRlbnRpb25EYXlzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBnZXRJdGVyYXRvclN0YXRlTWFjaGluZSB9IGZyb20gJy4vaXRlcmF0b3Itc3RhdGUtbWFjaGluZSc7XG5cbmltcG9ydCB7IGdldFJ1bm5lciB9IGZyb20gJy4vcnVubmVyLXN0YXRlLW1hY2hpbmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF3c0xvZ3NDb21wdHJvbGxlclByb3BzIHtcbiAgcmVhZG9ubHkgZXZlbnRCdXM/OiBFdmVudEJ1c1xuICByZWFkb25seSByZXRlbnRpb25EYXlzPzogUmV0ZW50aW9uRGF5c1xuICByZWFkb25seSBzY2hlZHVsZT86IGJvb2xlYW4gfCBTY2hlZHVsZVxufVxuXG5leHBvcnQgY2xhc3MgQXdzTG9nc0NvbXB0cm9sbGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3IgKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBd3NMb2dzQ29tcHRyb2xsZXJQcm9wcyA9IHtcbiAgfSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB7IGV2ZW50QnVzLCByZXRlbnRpb25EYXlzLCBzY2hlZHVsZSB9ID0gcHJvcHM7XG5cbiAgICBjb25zdCBydW5uZXIgPSBnZXRSdW5uZXIoc2NvcGUsIHJldGVudGlvbkRheXMpO1xuICAgIGNvbnN0IGl0ZXJhdG9yID0gZ2V0SXRlcmF0b3JTdGF0ZU1hY2hpbmUoc2NvcGUsIHJ1bm5lcik7XG5cbiAgICBpZiAoc2NoZWR1bGUpIHtcbiAgICAgIG5ldyBSdWxlKHRoaXMsICdMb2dzQ29tcHRyb2xsZXJTY2hlZHVsZXInLCB7XG4gICAgICAgIGV2ZW50QnVzLFxuICAgICAgICBzY2hlZHVsZTogc2NoZWR1bGUgPT09IHRydWVcbiAgICAgICAgICA/IFNjaGVkdWxlLmNyb24oe1xuICAgICAgICAgICAgaG91cjogJzQnLCBtaW51dGU6ICcwJyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIDogc2NoZWR1bGUsXG4gICAgICAgIHRhcmdldHM6IFtuZXcgU2ZuU3RhdGVNYWNoaW5lKGl0ZXJhdG9yKV0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==