UNPKG

awscdk-construct-ad-decision-server

Version:

AWS CDK Construct to upload local files to S3 and make them publicly available via CloudFront

38 lines 5.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Lambda = void 0; const fs = require("fs"); const path = require("path"); const aws_cdk_lib_1 = require("aws-cdk-lib"); const aws_iam_1 = require("aws-cdk-lib/aws-iam"); const aws_lambda_1 = require("aws-cdk-lib/aws-lambda"); const aws_lambda_nodejs_1 = require("aws-cdk-lib/aws-lambda-nodejs"); const constructs_1 = require("constructs"); class Lambda extends constructs_1.Construct { constructor(scope, id, props) { super(scope, id); const { creatives, clearanceRule, } = props; const TS_ENTRY = path.resolve(__dirname, 'code', 'index.ts'); const JS_ENTRY = path.resolve(__dirname, 'code', 'index.js'); this.func = new aws_lambda_nodejs_1.NodejsFunction(scope, 'ScheduleSCTE', { runtime: aws_lambda_1.Runtime.NODEJS_18_X, entry: fs.existsSync(TS_ENTRY) ? TS_ENTRY : JS_ENTRY, handler: 'handler', timeout: aws_cdk_lib_1.Duration.seconds(30), environment: { NODE_ENV: process.env.NODE_ENV, CREATIVES: JSON.stringify(creatives), CLEARANCE_RULE: clearanceRule, }, logRetention: aws_cdk_lib_1.aws_logs.RetentionDays.TWO_WEEKS, }); // Add a statement to call MediaLive schedule API this.func.addToRolePolicy(aws_iam_1.PolicyStatement.fromJson({ Effect: 'Allow', Action: 'medialive:*', Resource: '*', })); } } exports.Lambda = Lambda; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0xhbWJkYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZDQUF5RDtBQUN6RCxpREFBc0Q7QUFDdEQsdURBQWlEO0FBQ2pELHFFQUErRDtBQUMvRCwyQ0FBdUM7QUFnQnZDLE1BQWEsTUFBTyxTQUFRLHNCQUFTO0lBR25DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBa0I7UUFDMUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLEVBQ0osU0FBUyxFQUNULGFBQWEsR0FDZCxHQUFHLEtBQUssQ0FBQztRQUVWLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGtDQUFjLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRTtZQUNwRCxPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO1lBQzVCLEtBQUssRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVE7WUFDcEQsT0FBTyxFQUFFLFNBQVM7WUFDbEIsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixXQUFXLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBa0I7Z0JBQ3hDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztnQkFDcEMsY0FBYyxFQUFFLGFBQWE7YUFDOUI7WUFDRCxZQUFZLEVBQUUsc0JBQUksQ0FBQyxhQUFhLENBQUMsU0FBUztTQUMzQyxDQUFDLENBQUM7UUFDSCxpREFBaUQ7UUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQ3ZCLHlCQUFlLENBQUMsUUFBUSxDQUFDO1lBQ3ZCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsTUFBTSxFQUFFLGFBQWE7WUFDckIsUUFBUSxFQUFFLEdBQUc7U0FDZCxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQW5DRCx3QkFtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRHVyYXRpb24sIGF3c19sb2dzIGFzIGxvZ3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IFJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRpdmUge1xuICByZWFkb25seSBkdXJhdGlvbjogbnVtYmVyO1xuICByZWFkb25seSB1cmw6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVsaXZlcnk6IHN0cmluZztcbiAgcmVhZG9ubHkgbWltZVR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgd2lkdGg6IG51bWJlcjtcbiAgcmVhZG9ubHkgaGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhUHJvcHMge1xuICByZWFkb25seSBjcmVhdGl2ZXM6IENyZWF0aXZlW107XG4gIHJlYWRvbmx5IGNsZWFyYW5jZVJ1bGU6ICdMT05HRVNUX0ZJUlNUJyB8ICdTRVFVRU5DSUFMJztcbn1cblxuZXhwb3J0IGNsYXNzIExhbWJkYSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBmdW5jOiBOb2RlanNGdW5jdGlvbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTGFtYmRhUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3Qge1xuICAgICAgY3JlYXRpdmVzLFxuICAgICAgY2xlYXJhbmNlUnVsZSxcbiAgICB9ID0gcHJvcHM7XG5cbiAgICBjb25zdCBUU19FTlRSWSA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdjb2RlJywgJ2luZGV4LnRzJyk7XG4gICAgY29uc3QgSlNfRU5UUlkgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnY29kZScsICdpbmRleC5qcycpO1xuXG4gICAgdGhpcy5mdW5jID0gbmV3IE5vZGVqc0Z1bmN0aW9uKHNjb3BlLCAnU2NoZWR1bGVTQ1RFJywge1xuICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMThfWCxcbiAgICAgIGVudHJ5OiBmcy5leGlzdHNTeW5jKFRTX0VOVFJZKSA/IFRTX0VOVFJZIDogSlNfRU5UUlksXG4gICAgICBoYW5kbGVyOiAnaGFuZGxlcicsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIE5PREVfRU5WOiBwcm9jZXNzLmVudi5OT0RFX0VOViBhcyBzdHJpbmcsXG4gICAgICAgIENSRUFUSVZFUzogSlNPTi5zdHJpbmdpZnkoY3JlYXRpdmVzKSxcbiAgICAgICAgQ0xFQVJBTkNFX1JVTEU6IGNsZWFyYW5jZVJ1bGUsXG4gICAgICB9LFxuICAgICAgbG9nUmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuVFdPX1dFRUtTLFxuICAgIH0pO1xuICAgIC8vIEFkZCBhIHN0YXRlbWVudCB0byBjYWxsIE1lZGlhTGl2ZSBzY2hlZHVsZSBBUElcbiAgICB0aGlzLmZ1bmMuYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgUG9saWN5U3RhdGVtZW50LmZyb21Kc29uKHtcbiAgICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgICBBY3Rpb246ICdtZWRpYWxpdmU6KicsXG4gICAgICAgIFJlc291cmNlOiAnKicsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG59Il19