MCPcopy Create free account
hub / github.com/aws-samples/aws-cdk-examples / NewStepFunctionStack

Function NewStepFunctionStack

go/step-functions/step-function.go:16–86  ·  view source on GitHub ↗
(scope constructs.Construct, id string, props *StepFunctionStackProps)

Source from the content-addressed store, hash-verified

14}
15
16func NewStepFunctionStack(scope constructs.Construct, id string, props *StepFunctionStackProps) awscdk.Stack {
17 var sprops awscdk.StackProps
18 if props != nil {
19 sprops = props.StackProps
20 }
21 stack := awscdk.NewStack(scope, &id, &sprops)
22
23 // Lambda Definitions
24
25 submit_lambda := awslambda.NewFunction(stack, jsii.String("submitLambda"), &awslambda.FunctionProps{
26 Code: awslambda.NewAssetCode(jsii.String("lambda/submit"), nil),
27 Handler: jsii.String("index.lambda_handler"),
28 Timeout: awscdk.Duration_Seconds(jsii.Number(3)),
29 Runtime: awslambda.Runtime_PYTHON_3_9(),
30 })
31
32 status_lambda := awslambda.NewFunction(stack, jsii.String("statusLambda"), &awslambda.FunctionProps{
33 Code: awslambda.NewAssetCode(jsii.String("lambda/status"), nil),
34 Handler: jsii.String("index.lambda_handler"),
35 Timeout: awscdk.Duration_Seconds(jsii.Number(3)),
36 Runtime: awslambda.Runtime_PYTHON_3_9(),
37 })
38
39 // Step Function Definition
40
41 submit_job := awsstepfunctionstasks.NewLambdaInvoke(stack, jsii.String("submitJob"), &awsstepfunctionstasks.LambdaInvokeProps{
42 LambdaFunction: submit_lambda,
43 OutputPath: jsii.String("$.Payload"),
44 })
45
46 wait_job := awsstepfunctions.NewWait(stack, jsii.String("waitJob"), &awsstepfunctions.WaitProps{
47 Time: awsstepfunctions.WaitTime_Duration(awscdk.Duration_Seconds(jsii.Number(10))),
48 })
49
50 status_job := awsstepfunctionstasks.NewLambdaInvoke(stack, jsii.String("statusJob"), &awsstepfunctionstasks.LambdaInvokeProps{
51 LambdaFunction: status_lambda,
52 OutputPath: jsii.String("$.Payload"),
53 })
54
55 fail_job := awsstepfunctions.NewFail(stack, jsii.String("failJob"), &awsstepfunctions.FailProps{
56 Cause: jsii.String("AWS Step Function Job Failed"),
57 Error: jsii.String("DescribeJob returned FAILED"),
58 })
59
60 succeed_job := awsstepfunctions.NewSucceed(stack, jsii.String("successJob"), &awsstepfunctions.SucceedProps{
61 Comment: jsii.String("AWS Step Function Succeeded"),
62 })
63
64 definition := submit_job.Next(wait_job).
65 Next(status_job).
66 Next(awsstepfunctions.NewChoice(stack, jsii.String("jobComplete?"), &awsstepfunctions.ChoiceProps{}).
67 When(awsstepfunctions.Condition_StringEquals(jsii.String("$.status"), jsii.String("FAILED")), fail_job, nil).
68 When(awsstepfunctions.Condition_StringEquals(jsii.String("$.status"), jsii.String("SUCCEEDED")), succeed_job, nil).
69 Otherwise(wait_job))
70
71 // Create Step Function
72
73 state_machine := awsstepfunctions.NewStateMachine(stack, jsii.String("stateMachine"), &awsstepfunctions.StateMachineProps{

Callers 2

mainFunction · 0.85
TestStepFunctionStackFunction · 0.85

Calls

no outgoing calls

Tested by 1

TestStepFunctionStackFunction · 0.68