/
ACS::ECS::StartInstance.json
139 lines (139 loc) · 3.41 KB
/
ACS::ECS::StartInstance.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
{
"FormatVersion": "OOS-2019-06-01",
"Description": {
"name-en": "ACS::ECS::StartInstance",
"name-zh-cn": "启动实例(ECS)",
"en": "Starts an ECS instance",
"zh-cn": "启动一台ECS实例."
},
"Parameters": {
"regionId": {
"Label": {
"en": "RegionId",
"zh-cn": "地域ID"
},
"Type": "String",
"AssociationProperty": "ALIYUN::ECS::RegionId",
"Default": "{{ ACS::RegionId }}"
},
"instanceId": {
"Label": {
"en": "ECSInstanceId",
"zh-cn": "ECS实例ID"
},
"Type": "String",
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceId",
"AssociationPropertyMetadata": {
"RegionId": "regionId"
}
}
},
"Tasks": [
{
"Name": "getInstanceStatus",
"Description": {
"en": "Queries the ECS instances status",
"zh-cn": "获取ECS实例的状态"
},
"Action": "ACS::ExecuteApi",
"Properties": {
"Service": "ECS",
"API": "DescribeInstances",
"Parameters": {
"RegionId": "{{ regionId }}",
"InstanceIds": [
"{{ instanceId }}"
]
}
},
"Outputs": {
"status": {
"Type": "String",
"ValueSelector": "Instances.Instance[].Status"
}
}
},
{
"Name": "whetherInstanceIsRunning",
"Action": "ACS::Choice",
"Description": {
"en": "Choose next task by instance Running status",
"zh-cn": "根据实例的运行中状态选择下一个任务"
},
"Properties": {
"DefaultTask": "whetherInstanceIsStarting",
"Choices": [
{
"When": {
"Fn::Equals": [
"Running",
"{{ getInstanceStatus.status }}"
]
},
"NextTask": "ACS::END"
}
]
}
},
{
"Name": "whetherInstanceIsStarting",
"Action": "ACS::Choice",
"Description": {
"en": "Choose next task by instance Starting status",
"zh-cn": "根据实例的启动中状态选择下一个任务"
},
"Properties": {
"DefaultTask": "startInstance",
"Choices": [
{
"When": {
"Fn::Equals": [
"Starting",
"{{ getInstanceStatus.status }}"
]
},
"NextTask": "untilInstanceReady"
}
]
}
},
{
"Name": "startInstance",
"Action": "ACS::ExecuteAPI",
"Description": {
"en": "Starts ECS instance",
"zh-cn": "启动ECS实例"
},
"Properties": {
"Service": "ECS",
"API": "StartInstance",
"Parameters": {
"RegionId": "{{ regionId }}",
"InstanceId": "{{ instanceId }}"
}
}
},
{
"Name": "untilInstanceReady",
"Action": "ACS::WaitFor",
"Description": {
"en": "Waits for the ECS instance to enter Running status",
"zh-cn": "等待ECS实例至运行中状态"
},
"Properties": {
"Service": "ECS",
"API": "DescribeInstances",
"Parameters": {
"RegionId": "{{ regionId }}",
"InstanceIds": [
"{{ instanceId }}"
]
},
"DesiredValues": [
"Running"
],
"PropertySelector": "Instances.Instance[].Status"
}
}
]
}