51 lines
1.4 KiB
JSON
51 lines
1.4 KiB
JSON
{
|
|
"Comment": "Suspend ASG and reboot instances in the group",
|
|
"StartAt": "SetVariables",
|
|
"States": {
|
|
"SetVariables": {
|
|
"Type": "Pass",
|
|
"Result": {
|
|
"asgName": "acme-dev-web-asg"
|
|
},
|
|
"ResultPath": "$.vars",
|
|
"Next": "SuspendProcesses"
|
|
},
|
|
"SuspendProcesses": {
|
|
"Type": "Task",
|
|
"Parameters": {
|
|
"AutoScalingGroupName.$": "$.vars.asgName"
|
|
},
|
|
"Resource": "arn:aws:states:::aws-sdk:autoscaling:suspendProcesses",
|
|
"ResultPath": "$.suspendResult",
|
|
"Next": "DescribeAutoScalingGroups"
|
|
},
|
|
"DescribeAutoScalingGroups": {
|
|
"Type": "Task",
|
|
"Parameters": {
|
|
"AutoScalingGroupNames.$": "States.Array($.vars.asgName)",
|
|
"MaxRecords": 1
|
|
},
|
|
"Resource": "arn:aws:states:::aws-sdk:autoscaling:describeAutoScalingGroups",
|
|
"Next": "RebootInstances",
|
|
"ResultPath": "$.asgData"
|
|
},
|
|
"RebootInstances": {
|
|
"Type": "Task",
|
|
"Parameters": {
|
|
"InstanceIds.$": "$.asgData.AutoScalingGroups[0].Instances[*].InstanceId"
|
|
},
|
|
"Resource": "arn:aws:states:::aws-sdk:ec2:rebootInstances",
|
|
"ResultPath": "$.rebootResult",
|
|
"Next": "ResumeProcesses"
|
|
},
|
|
"ResumeProcesses": {
|
|
"Type": "Task",
|
|
"Parameters": {
|
|
"AutoScalingGroupName.$": "$.vars.asgName"
|
|
},
|
|
"Resource": "arn:aws:states:::aws-sdk:autoscaling:resumeProcesses",
|
|
"End": true
|
|
}
|
|
}
|
|
}
|