UNPKG

aws-logs-comptroller

Version:

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

29 lines 3.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AwsLogsComptroller = void 0; 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 = (0, runner_state_machine_1.getRunner)(scope, retentionDays); const iterator = (0, 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; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBa0U7QUFDbEUsdUVBQWlFO0FBRWpFLDJDQUF1QztBQUN2QyxxRUFBbUU7QUFFbkUsaUVBQW1EO0FBUW5ELE1BQWEsa0JBQW1CLFNBQVEsc0JBQVM7SUFDL0MsWUFBYSxLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUFpQyxFQUMzRTtRQUNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRXBELE1BQU0sTUFBTSxHQUFHLElBQUEsZ0NBQVMsRUFBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDL0MsTUFBTSxRQUFRLEdBQUcsSUFBQSxnREFBdUIsRUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFeEQsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJLGlCQUFJLENBQUMsSUFBSSxFQUFFLDBCQUEwQixFQUFFO2dCQUN6QyxRQUFRO2dCQUNSLFFBQVEsRUFBRSxRQUFRLEtBQUssSUFBSTtvQkFDekIsQ0FBQyxDQUFDLHFCQUFRLENBQUMsSUFBSSxDQUFDO3dCQUNkLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUc7cUJBQ3ZCLENBQUM7b0JBQ0YsQ0FBQyxDQUFDLFFBQVE7Z0JBQ1osT0FBTyxFQUFFLENBQUMsSUFBSSxvQ0FBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3pDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztDQUNGO0FBdEJELGdEQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50QnVzLCBSdWxlLCBTY2hlZHVsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0IHsgU2ZuU3RhdGVNYWNoaW5lIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzJztcbmltcG9ydCB7IFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IGdldEl0ZXJhdG9yU3RhdGVNYWNoaW5lIH0gZnJvbSAnLi9pdGVyYXRvci1zdGF0ZS1tYWNoaW5lJztcblxuaW1wb3J0IHsgZ2V0UnVubmVyIH0gZnJvbSAnLi9ydW5uZXItc3RhdGUtbWFjaGluZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXdzTG9nc0NvbXB0cm9sbGVyUHJvcHMge1xuICByZWFkb25seSBldmVudEJ1cz86IEV2ZW50QnVzXG4gIHJlYWRvbmx5IHJldGVudGlvbkRheXM/OiBSZXRlbnRpb25EYXlzXG4gIHJlYWRvbmx5IHNjaGVkdWxlPzogYm9vbGVhbiB8IFNjaGVkdWxlXG59XG5cbmV4cG9ydCBjbGFzcyBBd3NMb2dzQ29tcHRyb2xsZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvciAoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEF3c0xvZ3NDb21wdHJvbGxlclByb3BzID0ge1xuICB9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHsgZXZlbnRCdXMsIHJldGVudGlvbkRheXMsIHNjaGVkdWxlIH0gPSBwcm9wcztcblxuICAgIGNvbnN0IHJ1bm5lciA9IGdldFJ1bm5lcihzY29wZSwgcmV0ZW50aW9uRGF5cyk7XG4gICAgY29uc3QgaXRlcmF0b3IgPSBnZXRJdGVyYXRvclN0YXRlTWFjaGluZShzY29wZSwgcnVubmVyKTtcblxuICAgIGlmIChzY2hlZHVsZSkge1xuICAgICAgbmV3IFJ1bGUodGhpcywgJ0xvZ3NDb21wdHJvbGxlclNjaGVkdWxlcicsIHtcbiAgICAgICAgZXZlbnRCdXMsXG4gICAgICAgIHNjaGVkdWxlOiBzY2hlZHVsZSA9PT0gdHJ1ZVxuICAgICAgICAgID8gU2NoZWR1bGUuY3Jvbih7XG4gICAgICAgICAgICBob3VyOiAnNCcsIG1pbnV0ZTogJzAnLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgOiBzY2hlZHVsZSxcbiAgICAgICAgdGFyZ2V0czogW25ldyBTZm5TdGF0ZU1hY2hpbmUoaXRlcmF0b3IpXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19