in src/machines/success_and_fail.ts [14:64]
constructor(scope: cdk.Construct, lambdaFunction: lambda.Function) {
let successState = new sfn.Succeed(scope, 'Succeed');
let failureState = new sfn.Fail(scope, 'Failure');
let startRsTaskProcedure = new RetryableLambdaInvoke(
scope, 'StartRedshiftStatementAndWaitForCallback', {
lambdaFunction: lambdaFunction,
integrationPattern: sfn.IntegrationPattern.WAIT_FOR_TASK_TOKEN,
payload: sfn.TaskInput.fromObject({
'taskToken': sfn.JsonPath.taskToken,
'executionArn.$': '$$.Execution.Id',
'sqlStatement': 'select getdate()',
}),
heartbeat: cdk.Duration.seconds(3600),
},
);
startRsTaskProcedure.addCatch(
failureState,
{ errors: ['States.ALL'] },
);
let startInvalidRsTaskProcedure = new RetryableLambdaInvoke(
scope, 'StartInvalidRedshiftStatementAndWaitForCallback', {
lambdaFunction: lambdaFunction,
integrationPattern: sfn.IntegrationPattern.WAIT_FOR_TASK_TOKEN,
payload: sfn.TaskInput.fromObject({
'taskToken': sfn.JsonPath.taskToken,
'executionArn.$': '$$.Execution.Id',
'sqlStatement': 'select get_date()',
}),
heartbeat: cdk.Duration.seconds(3600),
},
);
startRsTaskProcedure.next(startInvalidRsTaskProcedure);
startInvalidRsTaskProcedure.addCatch(
successState,
{ errors: ['FAILED'] },
);
//Completion of startInvalidRsTaskProcedure would be a bug.
startInvalidRsTaskProcedure.next(failureState);
this.definition = new sfn.StateMachine(
scope, 'ExampleStateMachineRSIntegration', {
definition: startRsTaskProcedure,
},
);
}