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
JavaScript
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==
;