Setting the file. One moment.
Skill 116 · AWS Step Functions
Subchapter 116.10
assets/express-standard-handoff.asl.json
JSON75 lines2 KB
{
"Comment": "Express workflow - fast ingest and validation",
"QueryLanguage": "JSONata",
"StartAt": "ValidateInput",
"States": {
"ValidateInput": {
"Type": "Task",
"Resource": "arn:aws:states:::lambda:invoke",
"Arguments": {
"FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:ValidateOrder:$LATEST",
"Payload": "{% $states.input %}"
},
"Output": "{% $states.result.Payload %}",
"Next": "EnrichData"
},
"EnrichData": {
"Type": "Parallel",
"Branches": [
{
"StartAt": "LookupCustomer",
"States": {
"LookupCustomer": {
"Type": "Task",
"Resource": "arn:aws:states:::dynamodb:getItem",
"Arguments": {
"TableName": "CustomersTable",
"Key": {
"customerId": {
"S": "{% $states.input.customerId %}"
}
}
},
"Output": "{% $states.result.Item %}",
"End": true
}
}
},
{
"StartAt": "LookupPricing",
"States": {
"LookupPricing": {
"Type": "Task",
"Resource": "arn:aws:states:::lambda:invoke",
"Arguments": {
"FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:GetPricing:$LATEST",
"Payload": "{% $states.input %}"
},
"Output": "{% $states.result.Payload %}",
"End": true
}
}
}
],
"Output": {
"order": "{% $states.input %}",
"customer": "{% $states.result[0] %}",
"pricing": "{% $states.result[1] %}"
},
"Next": "HandOffToStandard"
},
"HandOffToStandard": {
"Type": "Task",
"Resource": "arn:aws:states:::states:startExecution",
"Arguments": {
"StateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:OrderFulfillment-Standard",
"Input": "{% $string($states.input) %}"
},
"Output": {
"status": "handed_off",
"childExecutionArn": "{% $states.result.ExecutionArn %}"
},
"End": true
}
}
}