awscdk-construct-scte-scheduler 0.0.23 → 0.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +23 -7
- package/API.md +11 -0
- package/lib/EventBridgeSchedule.js +1 -1
- package/lib/EventBridgeSchedule.ts +38 -0
- package/lib/Lambda.js +1 -1
- package/lib/ScteScheduler.d.ts +2 -0
- package/lib/ScteScheduler.js +28 -29
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -4105,7 +4105,7 @@
|
|
|
4105
4105
|
},
|
|
4106
4106
|
"locationInModule": {
|
|
4107
4107
|
"filename": "src/ScteScheduler.ts",
|
|
4108
|
-
"line":
|
|
4108
|
+
"line": 35
|
|
4109
4109
|
},
|
|
4110
4110
|
"parameters": [
|
|
4111
4111
|
{
|
|
@@ -4131,7 +4131,7 @@
|
|
|
4131
4131
|
"kind": "class",
|
|
4132
4132
|
"locationInModule": {
|
|
4133
4133
|
"filename": "src/ScteScheduler.ts",
|
|
4134
|
-
"line":
|
|
4134
|
+
"line": 31
|
|
4135
4135
|
},
|
|
4136
4136
|
"name": "ScteScheduler",
|
|
4137
4137
|
"properties": [
|
|
@@ -4142,7 +4142,7 @@
|
|
|
4142
4142
|
"immutable": true,
|
|
4143
4143
|
"locationInModule": {
|
|
4144
4144
|
"filename": "src/ScteScheduler.ts",
|
|
4145
|
-
"line":
|
|
4145
|
+
"line": 32
|
|
4146
4146
|
},
|
|
4147
4147
|
"name": "lambda",
|
|
4148
4148
|
"type": {
|
|
@@ -4156,7 +4156,7 @@
|
|
|
4156
4156
|
"immutable": true,
|
|
4157
4157
|
"locationInModule": {
|
|
4158
4158
|
"filename": "src/ScteScheduler.ts",
|
|
4159
|
-
"line":
|
|
4159
|
+
"line": 33
|
|
4160
4160
|
},
|
|
4161
4161
|
"name": "schedule",
|
|
4162
4162
|
"optional": true,
|
|
@@ -4234,7 +4234,7 @@
|
|
|
4234
4234
|
"immutable": true,
|
|
4235
4235
|
"locationInModule": {
|
|
4236
4236
|
"filename": "src/ScteScheduler.ts",
|
|
4237
|
-
"line":
|
|
4237
|
+
"line": 28
|
|
4238
4238
|
},
|
|
4239
4239
|
"name": "callback",
|
|
4240
4240
|
"optional": true,
|
|
@@ -4252,6 +4252,22 @@
|
|
|
4252
4252
|
"filename": "src/ScteScheduler.ts",
|
|
4253
4253
|
"line": 26
|
|
4254
4254
|
},
|
|
4255
|
+
"name": "cronOptions",
|
|
4256
|
+
"optional": true,
|
|
4257
|
+
"type": {
|
|
4258
|
+
"fqn": "aws-cdk-lib.aws_events.CronOptions"
|
|
4259
|
+
}
|
|
4260
|
+
},
|
|
4261
|
+
{
|
|
4262
|
+
"abstract": true,
|
|
4263
|
+
"docs": {
|
|
4264
|
+
"stability": "stable"
|
|
4265
|
+
},
|
|
4266
|
+
"immutable": true,
|
|
4267
|
+
"locationInModule": {
|
|
4268
|
+
"filename": "src/ScteScheduler.ts",
|
|
4269
|
+
"line": 27
|
|
4270
|
+
},
|
|
4255
4271
|
"name": "repeatCount",
|
|
4256
4272
|
"optional": true,
|
|
4257
4273
|
"type": {
|
|
@@ -4262,6 +4278,6 @@
|
|
|
4262
4278
|
"symbolId": "src/ScteScheduler:ScteSchedulerProps"
|
|
4263
4279
|
}
|
|
4264
4280
|
},
|
|
4265
|
-
"version": "0.0.
|
|
4266
|
-
"fingerprint": "
|
|
4281
|
+
"version": "0.0.0",
|
|
4282
|
+
"fingerprint": "nzeGD1sEc+34HPHlOU/Dfu5t04gNORr0UQiJO076sak="
|
|
4267
4283
|
}
|
package/API.md
CHANGED
|
@@ -483,6 +483,7 @@ const scteSchedulerProps: ScteSchedulerProps = { ... }
|
|
|
483
483
|
| <code><a href="#awscdk-construct-scte-scheduler.ScteSchedulerProps.property.intervalInMinutes">intervalInMinutes</a></code> | <code>number</code> | *No description.* |
|
|
484
484
|
| <code><a href="#awscdk-construct-scte-scheduler.ScteSchedulerProps.property.scteDurationInSeconds">scteDurationInSeconds</a></code> | <code>number</code> | *No description.* |
|
|
485
485
|
| <code><a href="#awscdk-construct-scte-scheduler.ScteSchedulerProps.property.callback">callback</a></code> | <code>aws-cdk-lib.aws_lambda.IFunction</code> | *No description.* |
|
|
486
|
+
| <code><a href="#awscdk-construct-scte-scheduler.ScteSchedulerProps.property.cronOptions">cronOptions</a></code> | <code>aws-cdk-lib.aws_events.CronOptions</code> | *No description.* |
|
|
486
487
|
| <code><a href="#awscdk-construct-scte-scheduler.ScteSchedulerProps.property.repeatCount">repeatCount</a></code> | <code>number</code> | *No description.* |
|
|
487
488
|
|
|
488
489
|
---
|
|
@@ -527,6 +528,16 @@ public readonly callback: IFunction;
|
|
|
527
528
|
|
|
528
529
|
---
|
|
529
530
|
|
|
531
|
+
##### `cronOptions`<sup>Optional</sup> <a name="cronOptions" id="awscdk-construct-scte-scheduler.ScteSchedulerProps.property.cronOptions"></a>
|
|
532
|
+
|
|
533
|
+
```typescript
|
|
534
|
+
public readonly cronOptions: CronOptions;
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
- *Type:* aws-cdk-lib.aws_events.CronOptions
|
|
538
|
+
|
|
539
|
+
---
|
|
540
|
+
|
|
530
541
|
##### `repeatCount`<sup>Optional</sup> <a name="repeatCount" id="awscdk-construct-scte-scheduler.ScteSchedulerProps.property.repeatCount"></a>
|
|
531
542
|
|
|
532
543
|
```typescript
|
|
@@ -24,7 +24,7 @@ class EventBridgeSchedule extends constructs_1.Construct {
|
|
|
24
24
|
}
|
|
25
25
|
exports.EventBridgeSchedule = EventBridgeSchedule;
|
|
26
26
|
_a = JSII_RTTI_SYMBOL_1;
|
|
27
|
-
EventBridgeSchedule[_a] = { fqn: "awscdk-construct-scte-scheduler.EventBridgeSchedule", version: "0.0.
|
|
27
|
+
EventBridgeSchedule[_a] = { fqn: "awscdk-construct-scte-scheduler.EventBridgeSchedule", version: "0.0.0" };
|
|
28
28
|
function isFunction(target) {
|
|
29
29
|
return target instanceof aws_lambda_nodejs_1.NodejsFunction;
|
|
30
30
|
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Rule, Schedule } from 'aws-cdk-lib/aws-events';
|
|
2
|
+
import { LambdaFunction, SfnStateMachine } from 'aws-cdk-lib/aws-events-targets';
|
|
3
|
+
import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs';
|
|
4
|
+
import { StateMachine } from 'aws-cdk-lib/aws-stepfunctions';
|
|
5
|
+
import { Construct } from 'constructs';
|
|
6
|
+
|
|
7
|
+
export interface EventBridgeScheduleProps {
|
|
8
|
+
readonly target: NodejsFunction | StateMachine;
|
|
9
|
+
readonly schedule: Schedule;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export class EventBridgeSchedule extends Construct {
|
|
13
|
+
public rule: Rule;
|
|
14
|
+
|
|
15
|
+
constructor(scope: Construct, id: string, props: EventBridgeScheduleProps) {
|
|
16
|
+
super(scope, id);
|
|
17
|
+
|
|
18
|
+
const { target, schedule } = props;
|
|
19
|
+
|
|
20
|
+
this.rule = new Rule(this, 'InvokeFunctionEveryXMinutes', {
|
|
21
|
+
schedule,
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
if (isFunction(target)) {
|
|
25
|
+
this.rule.addTarget(
|
|
26
|
+
new LambdaFunction(target),
|
|
27
|
+
);
|
|
28
|
+
} else {
|
|
29
|
+
this.rule.addTarget(
|
|
30
|
+
new SfnStateMachine(target),
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function isFunction(target: any): target is NodejsFunction {
|
|
37
|
+
return target instanceof NodejsFunction;
|
|
38
|
+
}
|
package/lib/Lambda.js
CHANGED
|
@@ -41,5 +41,5 @@ class Lambda extends constructs_1.Construct {
|
|
|
41
41
|
}
|
|
42
42
|
exports.Lambda = Lambda;
|
|
43
43
|
_a = JSII_RTTI_SYMBOL_1;
|
|
44
|
-
Lambda[_a] = { fqn: "awscdk-construct-scte-scheduler.Lambda", version: "0.0.
|
|
44
|
+
Lambda[_a] = { fqn: "awscdk-construct-scte-scheduler.Lambda", version: "0.0.0" };
|
|
45
45
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0xhbWJkYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsNkNBQXlEO0FBQ3pELGlEQUFzRDtBQUN0RCx1REFBaUQ7QUFDakQscUVBQStEO0FBQy9ELDJDQUF1QztBQU92QyxNQUFhLE1BQU8sU0FBUSxzQkFBUztJQUduQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWtCO1FBQzFELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUVuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxrQ0FBYyxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUU7WUFDcEQsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztZQUM1QixLQUFLLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRO1lBQ3BELDhDQUE4QztZQUM5Qyx3RUFBd0U7WUFDeEUsT0FBTyxFQUFFLFNBQVM7WUFDbEIsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixXQUFXLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBa0I7Z0JBQ3hDLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUE0QjtnQkFDaEQsVUFBVSxFQUFFLFNBQVM7Z0JBQ3JCLFlBQVksRUFBRSxHQUFHLHFCQUFxQixFQUFFO2FBQ3pDO1lBQ0QsWUFBWSxFQUFFLHNCQUFJLENBQUMsYUFBYSxDQUFDLFNBQVM7U0FDM0MsQ0FBQyxDQUFDO1FBQ0gsaURBQWlEO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUN2Qix5QkFBZSxDQUFDLFFBQVEsQ0FBQztZQUN2QixNQUFNLEVBQUUsT0FBTztZQUNmLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLFFBQVEsRUFBRSxHQUFHO1NBQ2QsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOztBQWxDSCx3QkFtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRHVyYXRpb24sIGF3c19sb2dzIGFzIGxvZ3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IFJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhUHJvcHMge1xuICByZWFkb25seSBjaGFubmVsSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc2N0ZUR1cmF0aW9uSW5TZWNvbmRzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBMYW1iZGEgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgZnVuYzogTm9kZWpzRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IExhbWJkYVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHsgY2hhbm5lbElkLCBzY3RlRHVyYXRpb25JblNlY29uZHMgfSA9IHByb3BzO1xuXG4gICAgY29uc3QgVFNfRU5UUlkgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnY29kZScsICdpbmRleC50cycpO1xuICAgIGNvbnN0IEpTX0VOVFJZID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2NvZGUnLCAnaW5kZXguanMnKTtcblxuICAgIHRoaXMuZnVuYyA9IG5ldyBOb2RlanNGdW5jdGlvbihzY29wZSwgJ1NjaGVkdWxlU0NURScsIHtcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgICBlbnRyeTogZnMuZXhpc3RzU3luYyhUU19FTlRSWSkgPyBUU19FTlRSWSA6IEpTX0VOVFJZLFxuICAgICAgLy8gcHJvamVjdFJvb3Q6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicpLFxuICAgICAgLy8gZGVwc0xvY2tGaWxlUGF0aDogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJ3BhY2thZ2UtbG9jay5qc29uJyksXG4gICAgICBoYW5kbGVyOiAnaGFuZGxlcicsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIE5PREVfRU5WOiBwcm9jZXNzLmVudi5OT0RFX0VOViBhcyBzdHJpbmcsXG4gICAgICAgIFJFR0lPTjogcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfUkVHSU9OIGFzIHN0cmluZyxcbiAgICAgICAgQ0hBTk5FTF9JRDogY2hhbm5lbElkLFxuICAgICAgICBBVkFJTF9MRU5HVEg6IGAke3NjdGVEdXJhdGlvbkluU2Vjb25kc31gLFxuICAgICAgfSxcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLlRXT19XRUVLUyxcbiAgICB9KTtcbiAgICAvLyBBZGQgYSBzdGF0ZW1lbnQgdG8gY2FsbCBNZWRpYUxpdmUgc2NoZWR1bGUgQVBJXG4gICAgdGhpcy5mdW5jLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIFBvbGljeVN0YXRlbWVudC5mcm9tSnNvbih7XG4gICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgQWN0aW9uOiAnbWVkaWFsaXZlOionLFxuICAgICAgICBSZXNvdXJjZTogJyonLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxufSJdfQ==
|
package/lib/ScteScheduler.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CronOptions } from 'aws-cdk-lib/aws-events';
|
|
1
2
|
import { IFunction } from 'aws-cdk-lib/aws-lambda';
|
|
2
3
|
import { Construct } from 'constructs';
|
|
3
4
|
import { EventBridgeSchedule } from './EventBridgeSchedule';
|
|
@@ -6,6 +7,7 @@ export interface ScteSchedulerProps {
|
|
|
6
7
|
readonly channelId: string;
|
|
7
8
|
readonly scteDurationInSeconds: number;
|
|
8
9
|
readonly intervalInMinutes: number;
|
|
10
|
+
readonly cronOptions?: CronOptions;
|
|
9
11
|
readonly repeatCount?: number;
|
|
10
12
|
readonly callback?: IFunction;
|
|
11
13
|
}
|
package/lib/ScteScheduler.js
CHANGED
|
@@ -15,43 +15,42 @@ const Lambda_1 = require("./Lambda");
|
|
|
15
15
|
class ScteScheduler extends constructs_1.Construct {
|
|
16
16
|
constructor(scope, id, props) {
|
|
17
17
|
super(scope, id);
|
|
18
|
-
const { channelId, scteDurationInSeconds, intervalInMinutes, repeatCount =
|
|
19
|
-
callback, } = props;
|
|
18
|
+
const { channelId, scteDurationInSeconds, intervalInMinutes, cronOptions, repeatCount = Infinity, callback, } = props;
|
|
20
19
|
// Create Lambda function to insert SCTE message using the MediaLive schedule API
|
|
21
20
|
this.lambda = new Lambda_1.Lambda(this, 'LambdaFunction', {
|
|
22
21
|
channelId,
|
|
23
22
|
scteDurationInSeconds,
|
|
24
23
|
});
|
|
25
|
-
|
|
24
|
+
// Create Step Functions state machine to invoke the Lambda function N times
|
|
25
|
+
const invoke = new aws_stepfunctions_tasks_1.LambdaInvoke(this, 'Invoke SCTE scheduler Lambda function', {
|
|
26
|
+
lambdaFunction: this.lambda.func,
|
|
27
|
+
inputPath: '$.Payload',
|
|
28
|
+
});
|
|
29
|
+
const wait1 = new aws_stepfunctions_1.Wait(this, `Wait for ${intervalInMinutes}-min`, {
|
|
30
|
+
time: aws_stepfunctions_1.WaitTime.duration(aws_cdk_lib_1.Duration.minutes(intervalInMinutes)),
|
|
31
|
+
});
|
|
32
|
+
const wait2 = new aws_stepfunctions_1.Wait(this, `Wait for ${intervalInMinutes * 60 + scteDurationInSeconds}-sec`, {
|
|
33
|
+
time: aws_stepfunctions_1.WaitTime.duration(aws_cdk_lib_1.Duration.seconds(intervalInMinutes * 60 + scteDurationInSeconds)),
|
|
34
|
+
});
|
|
35
|
+
const lastTask = callback ? new aws_stepfunctions_tasks_1.LambdaInvoke(this, 'Callback', {
|
|
36
|
+
lambdaFunction: callback,
|
|
37
|
+
}) : new aws_stepfunctions_1.Succeed(this, 'Done');
|
|
38
|
+
const stateMachine = new aws_stepfunctions_1.StateMachine(this, 'StateMachine', {
|
|
39
|
+
definitionBody: aws_stepfunctions_1.DefinitionBody.fromChainable(aws_stepfunctions_1.Chain.start(new aws_stepfunctions_1.Pass(this, 'Start', { parameters: { Payload: { i: 0 } } }))
|
|
40
|
+
.next(wait1)
|
|
41
|
+
.next(invoke)
|
|
42
|
+
.next(new aws_stepfunctions_1.Choice(this, `Check if repaeted ${repeatCount} times`)
|
|
43
|
+
.when(aws_stepfunctions_1.Condition.numberLessThan('$.Payload.i', repeatCount), wait1)
|
|
44
|
+
.otherwise(aws_stepfunctions_1.Chain.start(wait2).next(lastTask)))),
|
|
45
|
+
});
|
|
46
|
+
if (cronOptions) {
|
|
26
47
|
// Create EventBridge rule to invoke the Lambda function every N minutes
|
|
27
48
|
this.schedule = new EventBridgeSchedule_1.EventBridgeSchedule(this, 'EventBridgeSchedule', {
|
|
28
|
-
target:
|
|
29
|
-
schedule: aws_events_1.Schedule.
|
|
49
|
+
target: stateMachine,
|
|
50
|
+
schedule: aws_events_1.Schedule.cron(cronOptions),
|
|
30
51
|
});
|
|
31
52
|
}
|
|
32
53
|
else {
|
|
33
|
-
// Create Step Functions state machine to invoke the Lambda function N times
|
|
34
|
-
const invoke = new aws_stepfunctions_tasks_1.LambdaInvoke(this, 'Invoke SCTE scheduler Lambda function', {
|
|
35
|
-
lambdaFunction: this.lambda.func,
|
|
36
|
-
inputPath: '$.Payload',
|
|
37
|
-
});
|
|
38
|
-
const wait1 = new aws_stepfunctions_1.Wait(this, `Wait for ${intervalInMinutes}-min`, {
|
|
39
|
-
time: aws_stepfunctions_1.WaitTime.duration(aws_cdk_lib_1.Duration.minutes(intervalInMinutes)),
|
|
40
|
-
});
|
|
41
|
-
const wait2 = new aws_stepfunctions_1.Wait(this, `Wait for ${intervalInMinutes * 60 + scteDurationInSeconds}-sec`, {
|
|
42
|
-
time: aws_stepfunctions_1.WaitTime.duration(aws_cdk_lib_1.Duration.seconds(intervalInMinutes * 60 + scteDurationInSeconds)),
|
|
43
|
-
});
|
|
44
|
-
const lastTask = callback ? new aws_stepfunctions_tasks_1.LambdaInvoke(this, 'Callback', {
|
|
45
|
-
lambdaFunction: callback,
|
|
46
|
-
}) : new aws_stepfunctions_1.Succeed(this, 'Done');
|
|
47
|
-
const stateMachine = new aws_stepfunctions_1.StateMachine(this, 'StateMachine', {
|
|
48
|
-
definitionBody: aws_stepfunctions_1.DefinitionBody.fromChainable(aws_stepfunctions_1.Chain.start(new aws_stepfunctions_1.Pass(this, 'Start', { parameters: { Payload: { i: 0 } } }))
|
|
49
|
-
.next(wait1)
|
|
50
|
-
.next(invoke)
|
|
51
|
-
.next(new aws_stepfunctions_1.Choice(this, `Check if repaeted ${repeatCount} times`)
|
|
52
|
-
.when(aws_stepfunctions_1.Condition.numberLessThan('$.Payload.i', repeatCount), wait1)
|
|
53
|
-
.otherwise(aws_stepfunctions_1.Chain.start(wait2).next(lastTask)))),
|
|
54
|
-
});
|
|
55
54
|
// Start the execution of the state machine immediately
|
|
56
55
|
new custom_resources_1.AwsCustomResource(scope, 'StartStateMachine', {
|
|
57
56
|
onCreate: {
|
|
@@ -73,5 +72,5 @@ class ScteScheduler extends constructs_1.Construct {
|
|
|
73
72
|
}
|
|
74
73
|
exports.ScteScheduler = ScteScheduler;
|
|
75
74
|
_a = JSII_RTTI_SYMBOL_1;
|
|
76
|
-
ScteScheduler[_a] = { fqn: "awscdk-construct-scte-scheduler.ScteScheduler", version: "0.0.
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
ScteScheduler[_a] = { fqn: "awscdk-construct-scte-scheduler.ScteScheduler", version: "0.0.0" };
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2N0ZVNjaGVkdWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TY3RlU2NoZWR1bGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaUNBQWlDO0FBQ2pDLDZDQUF1QztBQUN2Qyx1REFBK0Q7QUFFL0QscUVBVXVDO0FBQ3ZDLGlGQUFtRTtBQUNuRSxtRUFBOEc7QUFDOUcsMkNBQXVDO0FBQ3ZDLCtEQUE0RDtBQUM1RCxxQ0FBa0M7QUFXbEMsTUFBYSxhQUFjLFNBQVEsc0JBQVM7SUFJMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFDSixTQUFTLEVBQ1QscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsV0FBVyxHQUFHLFFBQVEsRUFDdEIsUUFBUSxHQUNULEdBQUcsS0FBSyxDQUFDO1FBRVYsaUZBQWlGO1FBQ2pGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQy9DLFNBQVM7WUFDVCxxQkFBcUI7U0FDdEIsQ0FBQyxDQUFDO1FBRUgsNEVBQTRFO1FBQzVFLE1BQU0sTUFBTSxHQUFHLElBQUksc0NBQVksQ0FBQyxJQUFJLEVBQUUsdUNBQXVDLEVBQUU7WUFDN0UsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUNoQyxTQUFTLEVBQUUsV0FBVztTQUN2QixDQUFDLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLHdCQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksaUJBQWlCLE1BQU0sRUFBRTtZQUNoRSxJQUFJLEVBQUUsNEJBQVEsQ0FBQyxRQUFRLENBQUMsc0JBQVEsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUM3RCxDQUFDLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLHdCQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksaUJBQWlCLEdBQUcsRUFBRSxHQUFHLHFCQUFxQixNQUFNLEVBQUU7WUFDN0YsSUFBSSxFQUFFLDRCQUFRLENBQUMsUUFBUSxDQUFDLHNCQUFRLENBQUMsT0FBTyxDQUFDLGlCQUFpQixHQUFHLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDO1NBQzFGLENBQUMsQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxzQ0FBWSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDN0QsY0FBYyxFQUFFLFFBQVE7U0FDekIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLDJCQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLE1BQU0sWUFBWSxHQUFHLElBQUksZ0NBQVksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQzFELGNBQWMsRUFBRSxrQ0FBYyxDQUFDLGFBQWEsQ0FDMUMseUJBQUssQ0FBQyxLQUFLLENBQ1QsSUFBSSx3QkFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQy9EO2lCQUNFLElBQUksQ0FBQyxLQUFLLENBQUM7aUJBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQztpQkFDWixJQUFJLENBQ0gsSUFBSSwwQkFBTSxDQUFDLElBQUksRUFBRSxxQkFBcUIsV0FBVyxRQUFRLENBQUM7aUJBQ3ZELElBQUksQ0FDSCw2QkFBUyxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLEVBQ3BELEtBQUssQ0FDTjtpQkFDQSxTQUFTLENBQ1IseUJBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUNsQyxDQUNKLENBQ0o7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLHdFQUF3RTtZQUN4RSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUkseUNBQW1CLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFO2dCQUNuRSxNQUFNLEVBQUUsWUFBWTtnQkFDcEIsUUFBUSxFQUFFLHFCQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUNyQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLHVEQUF1RDtZQUN2RCxJQUFJLG9DQUFpQixDQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBRTtnQkFDaEQsUUFBUSxFQUFFO29CQUNSLE9BQU8sRUFBRSxlQUFlO29CQUN4QixNQUFNLEVBQUUsZ0JBQWdCO29CQUN4QixVQUFVLEVBQUU7d0JBQ1YsZUFBZSxFQUFFLFlBQVksQ0FBQyxlQUFlO3dCQUM3QyxLQUFLLEVBQUUsMkJBQTJCO3FCQUNuQztvQkFDRCxrQkFBa0IsRUFBRSxxQ0FBa0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztpQkFDcEU7Z0JBQ0QseUdBQXlHO2dCQUN6RyxNQUFNLEVBQUUsMENBQXVCLENBQUMsWUFBWSxDQUFDO29CQUMzQyxTQUFTLEVBQUUsMENBQXVCLENBQUMsWUFBWTtpQkFDaEQsQ0FBQzthQUNILENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQS9FSCxzQ0FnRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgU2NoZWR1bGUsIENyb25PcHRpb25zIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgeyBJRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7XG4gIFN0YXRlTWFjaGluZSxcbiAgRGVmaW5pdGlvbkJvZHksXG4gIENoYWluLFxuICBDaG9pY2UsXG4gIENvbmRpdGlvbixcbiAgV2FpdCxcbiAgV2FpdFRpbWUsXG4gIFBhc3MsXG4gIFN1Y2NlZWQsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJztcbmltcG9ydCB7IExhbWJkYUludm9rZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zLXRhc2tzJztcbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlLCBBd3NDdXN0b21SZXNvdXJjZVBvbGljeSwgUGh5c2ljYWxSZXNvdXJjZUlkIH0gZnJvbSAnYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEV2ZW50QnJpZGdlU2NoZWR1bGUgfSBmcm9tICcuL0V2ZW50QnJpZGdlU2NoZWR1bGUnO1xuaW1wb3J0IHsgTGFtYmRhIH0gZnJvbSAnLi9MYW1iZGEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjdGVTY2hlZHVsZXJQcm9wcyB7XG4gIHJlYWRvbmx5IGNoYW5uZWxJZDogc3RyaW5nO1xuICByZWFkb25seSBzY3RlRHVyYXRpb25JblNlY29uZHM6IG51bWJlcjtcbiAgcmVhZG9ubHkgaW50ZXJ2YWxJbk1pbnV0ZXM6IG51bWJlcjtcbiAgcmVhZG9ubHkgY3Jvbk9wdGlvbnM/OiBDcm9uT3B0aW9ucztcbiAgcmVhZG9ubHkgcmVwZWF0Q291bnQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGNhbGxiYWNrPzogSUZ1bmN0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgU2N0ZVNjaGVkdWxlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBsYW1iZGE6IExhbWJkYTtcbiAgcHVibGljIHJlYWRvbmx5IHNjaGVkdWxlPzogRXZlbnRCcmlkZ2VTY2hlZHVsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2N0ZVNjaGVkdWxlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIGNoYW5uZWxJZCxcbiAgICAgIHNjdGVEdXJhdGlvbkluU2Vjb25kcyxcbiAgICAgIGludGVydmFsSW5NaW51dGVzLFxuICAgICAgY3Jvbk9wdGlvbnMsXG4gICAgICByZXBlYXRDb3VudCA9IEluZmluaXR5LFxuICAgICAgY2FsbGJhY2ssXG4gICAgfSA9IHByb3BzO1xuXG4gICAgLy8gQ3JlYXRlIExhbWJkYSBmdW5jdGlvbiB0byBpbnNlcnQgU0NURSBtZXNzYWdlIHVzaW5nIHRoZSBNZWRpYUxpdmUgc2NoZWR1bGUgQVBJXG4gICAgdGhpcy5sYW1iZGEgPSBuZXcgTGFtYmRhKHRoaXMsICdMYW1iZGFGdW5jdGlvbicsIHtcbiAgICAgIGNoYW5uZWxJZCxcbiAgICAgIHNjdGVEdXJhdGlvbkluU2Vjb25kcyxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBTdGVwIEZ1bmN0aW9ucyBzdGF0ZSBtYWNoaW5lIHRvIGludm9rZSB0aGUgTGFtYmRhIGZ1bmN0aW9uIE4gdGltZXNcbiAgICBjb25zdCBpbnZva2UgPSBuZXcgTGFtYmRhSW52b2tlKHRoaXMsICdJbnZva2UgU0NURSBzY2hlZHVsZXIgTGFtYmRhIGZ1bmN0aW9uJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IHRoaXMubGFtYmRhLmZ1bmMsXG4gICAgICBpbnB1dFBhdGg6ICckLlBheWxvYWQnLFxuICAgIH0pO1xuICAgIGNvbnN0IHdhaXQxID0gbmV3IFdhaXQodGhpcywgYFdhaXQgZm9yICR7aW50ZXJ2YWxJbk1pbnV0ZXN9LW1pbmAsIHtcbiAgICAgIHRpbWU6IFdhaXRUaW1lLmR1cmF0aW9uKER1cmF0aW9uLm1pbnV0ZXMoaW50ZXJ2YWxJbk1pbnV0ZXMpKSxcbiAgICB9KTtcbiAgICBjb25zdCB3YWl0MiA9IG5ldyBXYWl0KHRoaXMsIGBXYWl0IGZvciAke2ludGVydmFsSW5NaW51dGVzICogNjAgKyBzY3RlRHVyYXRpb25JblNlY29uZHN9LXNlY2AsIHtcbiAgICAgIHRpbWU6IFdhaXRUaW1lLmR1cmF0aW9uKER1cmF0aW9uLnNlY29uZHMoaW50ZXJ2YWxJbk1pbnV0ZXMgKiA2MCArIHNjdGVEdXJhdGlvbkluU2Vjb25kcykpLFxuICAgIH0pO1xuICAgIGNvbnN0IGxhc3RUYXNrID0gY2FsbGJhY2sgPyBuZXcgTGFtYmRhSW52b2tlKHRoaXMsICdDYWxsYmFjaycsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiBjYWxsYmFjayxcbiAgICB9KSA6IG5ldyBTdWNjZWVkKHRoaXMsICdEb25lJyk7XG4gICAgY29uc3Qgc3RhdGVNYWNoaW5lID0gbmV3IFN0YXRlTWFjaGluZSh0aGlzLCAnU3RhdGVNYWNoaW5lJywge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IERlZmluaXRpb25Cb2R5LmZyb21DaGFpbmFibGUoXG4gICAgICAgIENoYWluLnN0YXJ0KFxuICAgICAgICAgIG5ldyBQYXNzKHRoaXMsICdTdGFydCcsIHsgcGFyYW1ldGVyczogeyBQYXlsb2FkOiB7IGk6IDAgfSB9IH0pLFxuICAgICAgICApXG4gICAgICAgICAgLm5leHQod2FpdDEpXG4gICAgICAgICAgLm5leHQoaW52b2tlKVxuICAgICAgICAgIC5uZXh0KFxuICAgICAgICAgICAgbmV3IENob2ljZSh0aGlzLCBgQ2hlY2sgaWYgcmVwYWV0ZWQgJHtyZXBlYXRDb3VudH0gdGltZXNgKVxuICAgICAgICAgICAgICAud2hlbihcbiAgICAgICAgICAgICAgICBDb25kaXRpb24ubnVtYmVyTGVzc1RoYW4oJyQuUGF5bG9hZC5pJywgcmVwZWF0Q291bnQpLFxuICAgICAgICAgICAgICAgIHdhaXQxLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5vdGhlcndpc2UoXG4gICAgICAgICAgICAgICAgQ2hhaW4uc3RhcnQod2FpdDIpLm5leHQobGFzdFRhc2spLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICksXG4gICAgICApLFxuICAgIH0pO1xuICAgIGlmIChjcm9uT3B0aW9ucykge1xuICAgICAgLy8gQ3JlYXRlIEV2ZW50QnJpZGdlIHJ1bGUgdG8gaW52b2tlIHRoZSBMYW1iZGEgZnVuY3Rpb24gZXZlcnkgTiBtaW51dGVzXG4gICAgICB0aGlzLnNjaGVkdWxlID0gbmV3IEV2ZW50QnJpZGdlU2NoZWR1bGUodGhpcywgJ0V2ZW50QnJpZGdlU2NoZWR1bGUnLCB7XG4gICAgICAgIHRhcmdldDogc3RhdGVNYWNoaW5lLFxuICAgICAgICBzY2hlZHVsZTogU2NoZWR1bGUuY3Jvbihjcm9uT3B0aW9ucyksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU3RhcnQgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgc3RhdGUgbWFjaGluZSBpbW1lZGlhdGVseVxuICAgICAgbmV3IEF3c0N1c3RvbVJlc291cmNlKHNjb3BlLCAnU3RhcnRTdGF0ZU1hY2hpbmUnLCB7XG4gICAgICAgIG9uQ3JlYXRlOiB7XG4gICAgICAgICAgc2VydmljZTogJ1N0ZXBGdW5jdGlvbnMnLFxuICAgICAgICAgIGFjdGlvbjogJ1N0YXJ0RXhlY3V0aW9uJyxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBzdGF0ZU1hY2hpbmVBcm46IHN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm4sXG4gICAgICAgICAgICBpbnB1dDogJ3sgXCJQYXlsb2FkXCI6IHsgXCJpXCI6IDAgfSB9JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKGAke2NyeXB0by5yYW5kb21VVUlEKCl9YCksXG4gICAgICAgIH0sXG4gICAgICAgIC8vV2lsbCBpZ25vcmUgYW55IHJlc291cmNlIGFuZCB1c2UgdGhlIGFzc3VtZWRSb2xlQXJuIGFzIHJlc291cmNlIGFuZCAnc3RzOkFzc3VtZVJvbGUnIGZvciBzZXJ2aWNlOmFjdGlvblxuICAgICAgICBwb2xpY3k6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0UsXG4gICAgICAgIH0pLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|