Setting the file. One moment.
Skill 122 · Processing S3 Uploads With Step Functions
Subchapter 122.10
scripts/statemachine.asl.json
JSON63 lines2 KB
{
"Comment": "Choose Lambda or Fargate based on file size",
"StartAt": "CheckFileSize",
"States": {
"CheckFileSize": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.detail.object.size",
"NumericGreaterThan": 6291456,
"Next": "RunFargateTask"
}
],
"Default": "InvokeLambda"
},
"InvokeLambda": {
"Type": "Task",
"Resource": "arn:aws:states:::lambda:invoke",
"Parameters": {
"FunctionName": "${LambdaFunction}",
"Payload.$": "$"
},
"ResultPath": "$.lambdaResult",
"End": true
},
"RunFargateTask": {
"Type": "Task",
"Resource": "arn:aws:states:::ecs:runTask.sync",
"Parameters": {
"LaunchType": "FARGATE",
"Cluster": "${Cluster}",
"TaskDefinition": "${TaskDefinition}",
"NetworkConfiguration": {
"AwsvpcConfiguration": {
"Subnets": [
"${Subnet1}",
"${Subnet2}"
],
"SecurityGroups": [
"${SecurityGroup}"
],
"AssignPublicIp": "ENABLED"
}
},
"Overrides": {
"ContainerOverrides": [
{
"Name": "StepFunctionFargateTask1",
"Environment": [
{
"Name": "TASK_EVENT",
"Value.$": "States.JsonToString($)"
}
]
}
]
}
},
"ResultPath": "$.fargateResult",
"End": true
}
}
}