UNPKG

awscdk-construct-hls-session-runner

Version:

AWS CDK construct for deploying a Lambda function and SFN state machines to fetch an HLS manifest

39 lines 6.47 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.FetchLambda = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const fs = require("fs"); const path = require("path"); const aws_cdk_lib_1 = require("aws-cdk-lib"); 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 FetchLambda extends constructs_1.Construct { constructor(scope, id, props) { super(scope, id); const { hlsEndpointUrl, requestHeaders, indexOfRenditions, sessionRequirements, eventStartTime, requestSegments = false, timeoutInSeconds = 30, } = props; const TS_ENTRY = path.resolve(__dirname, 'lambda', 'index.ts'); const JS_ENTRY = path.resolve(__dirname, 'lambda', 'index.js'); this.func = new aws_lambda_nodejs_1.NodejsFunction(scope, `NodejsFunction${id}`, { 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(timeoutInSeconds), environment: { NODE_ENV: process.env.NODE_ENV, HLS_ENDPOINT_URL: hlsEndpointUrl, REQUEST_HEADERS: JSON.stringify(requestHeaders), INDEX_OF_RENDITIONS: indexOfRenditions.toString(10), SESSION_REQUIREMENTS: JSON.stringify(sessionRequirements), EVENT_START_TIME: eventStartTime.toISOString(), SEGMENT_REQUEST: requestSegments.toString(), }, logRetention: aws_cdk_lib_1.aws_logs.RetentionDays.TWO_WEEKS, }); } } exports.FetchLambda = FetchLambda; _a = JSII_RTTI_SYMBOL_1; FetchLambda[_a] = { fqn: "awscdk-construct-hls-session-runner.FetchLambda", version: "0.0.6" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmV0Y2hMYW1iZGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvRmV0Y2hMYW1iZGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZDQUF5RDtBQUN6RCx1REFBaUQ7QUFDakQscUVBQStEO0FBQy9ELDJDQUF1QztBQWF2QyxNQUFhLFdBQVksU0FBUSxzQkFBUztJQUd4QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxFQUNKLGNBQWMsRUFDZCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsZUFBZSxHQUFHLEtBQUssRUFDdkIsZ0JBQWdCLEdBQUcsRUFBRSxHQUN0QixHQUFHLEtBQUssQ0FBQztRQUVWLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFL0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGtDQUFjLENBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEVBQUUsRUFBRTtZQUMzRCxPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO1lBQzVCLEtBQUssRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVE7WUFDcEQsT0FBTyxFQUFFLFNBQVM7WUFDbEIsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1lBQzNDLFdBQVcsRUFBRTtnQkFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFrQjtnQkFDeEMsZ0JBQWdCLEVBQUUsY0FBYztnQkFDaEMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO2dCQUMvQyxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNuRCxvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDO2dCQUN6RCxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsV0FBVyxFQUFFO2dCQUM5QyxlQUFlLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRTthQUM1QztZQUNELFlBQVksRUFBRSxzQkFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBbkNILGtDQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBEdXJhdGlvbiwgYXdzX2xvZ3MgYXMgbG9ncyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBTZXNzaW9uUmVxdWlyZW1lbnRzIH0gZnJvbSAnLi9TZXNzaW9uUnVubmVyJztcblxuZXhwb3J0IGludGVyZmFjZSBGZXRjaExhbWJkYVByb3BzIHtcbiAgcmVhZG9ubHkgaGxzRW5kcG9pbnRVcmw6IHN0cmluZzsgLy8gU2Vzc3VpYiBJbml0aWFsaXphdGlvbiBVUkxcbiAgcmVhZG9ubHkgcmVxdWVzdEhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47IC8vIEhvc3QgbmFtZSBvZiB0aGUgTWVkaWFUYWlsb3IgZW5kcG9pbnRcbiAgcmVhZG9ubHkgaW5kZXhPZlJlbmRpdGlvbnM6IG51bWJlcjsgLy8gTi10aCByZW5kaXRpb24gdG8gZmV0Y2hcbiAgcmVhZG9ubHkgc2Vzc2lvblJlcXVpcmVtZW50czogU2Vzc2lvblJlcXVpcmVtZW50cztcbiAgcmVhZG9ubHkgZXZlbnRTdGFydFRpbWU6IERhdGU7IC8vIFN0YXJ0IHRpbWUgb2YgdGhlIGV2ZW50XG4gIHJlYWRvbmx5IHJlcXVlc3RTZWdtZW50cz86IGJvb2xlYW47IC8vIFdoZXRoZXIgdG8gcmVxdWVzdCBzZWdtZW50c1xuICByZWFkb25seSB0aW1lb3V0SW5TZWNvbmRzPzogbnVtYmVyOyAvLyBUaW1lb3V0IHZhbHVlIGluIHNlY29uZHNcbn1cblxuZXhwb3J0IGNsYXNzIEZldGNoTGFtYmRhIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGZ1bmM6IE5vZGVqc0Z1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBGZXRjaExhbWJkYVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIGhsc0VuZHBvaW50VXJsLFxuICAgICAgcmVxdWVzdEhlYWRlcnMsXG4gICAgICBpbmRleE9mUmVuZGl0aW9ucyxcbiAgICAgIHNlc3Npb25SZXF1aXJlbWVudHMsXG4gICAgICBldmVudFN0YXJ0VGltZSxcbiAgICAgIHJlcXVlc3RTZWdtZW50cyA9IGZhbHNlLFxuICAgICAgdGltZW91dEluU2Vjb25kcyA9IDMwLFxuICAgIH0gPSBwcm9wcztcblxuICAgIGNvbnN0IFRTX0VOVFJZID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2xhbWJkYScsICdpbmRleC50cycpO1xuICAgIGNvbnN0IEpTX0VOVFJZID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2xhbWJkYScsICdpbmRleC5qcycpO1xuXG4gICAgdGhpcy5mdW5jID0gbmV3IE5vZGVqc0Z1bmN0aW9uKHNjb3BlLCBgTm9kZWpzRnVuY3Rpb24ke2lkfWAsIHtcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgICBlbnRyeTogZnMuZXhpc3RzU3luYyhUU19FTlRSWSkgPyBUU19FTlRSWSA6IEpTX0VOVFJZLFxuICAgICAgaGFuZGxlcjogJ2hhbmRsZXInLFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcyh0aW1lb3V0SW5TZWNvbmRzKSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIE5PREVfRU5WOiBwcm9jZXNzLmVudi5OT0RFX0VOViBhcyBzdHJpbmcsXG4gICAgICAgIEhMU19FTkRQT0lOVF9VUkw6IGhsc0VuZHBvaW50VXJsLFxuICAgICAgICBSRVFVRVNUX0hFQURFUlM6IEpTT04uc3RyaW5naWZ5KHJlcXVlc3RIZWFkZXJzKSxcbiAgICAgICAgSU5ERVhfT0ZfUkVORElUSU9OUzogaW5kZXhPZlJlbmRpdGlvbnMudG9TdHJpbmcoMTApLFxuICAgICAgICBTRVNTSU9OX1JFUVVJUkVNRU5UUzogSlNPTi5zdHJpbmdpZnkoc2Vzc2lvblJlcXVpcmVtZW50cyksXG4gICAgICAgIEVWRU5UX1NUQVJUX1RJTUU6IGV2ZW50U3RhcnRUaW1lLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIFNFR01FTlRfUkVRVUVTVDogcmVxdWVzdFNlZ21lbnRzLnRvU3RyaW5nKCksXG4gICAgICB9LFxuICAgICAgbG9nUmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuVFdPX1dFRUtTLFxuICAgIH0pO1xuICB9XG59Il19