-
Notifications
You must be signed in to change notification settings - Fork 17
/
ACS::ECS::QueryInstanceAttributes.yml
107 lines (106 loc) · 3.58 KB
/
ACS::ECS::QueryInstanceAttributes.yml
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
FormatVersion: OOS-2019-06-01
Description:
en: Query ECS instance attributes
zh-cn: 查询ECS实例属性
name-en: ACS::ECS::QueryInstanceAttributes
name-zh-cn: 查询ECS实例属性
Parameters:
regionId:
Description:
en: The ID of region
zh-cn: 地域ID
Type: String
Default: '{{ ACS::RegionId }}'
instanceId:
Description:
en: The ID of ECS instance
zh-cn: ECS实例ID
Type: String
Tasks:
- Name: queryInstanceInfo
Action: 'ACS::ExecuteApi'
Description:
en: Queries ECS instance Info
zh-cn: 获取实例信息
Properties:
Service: ECS
API: DescribeInstances
Parameters:
RegionId: '{{ regionId }}'
InstanceIds:
- '{{ instanceId }}'
Outputs:
instanceInfo:
Type: Json
ValueSelector: '.Instances.Instance[] | del(.SecurityGroupIds) '
privateIpAddresses:
Type: String
ValueSelector: '.| if .Instances.Instance[].NetworkInterfaces==null then "" else .Instances.Instance[].NetworkInterfaces.NetworkInterface[].PrivateIpSets.PrivateIpSet[].PrivateIpAddress end'
securityGroupIds:
Type: Json
ValueSelector: '.Instances.Instance[].SecurityGroupIds.SecurityGroupId'
- Name: queryInstanceDisk
Action: 'ACS::ExecuteAPI'
Description:
en: Query the disk info
zh-cn: 获取磁盘信息
Properties:
Service: ECS
API: DescribeDisks
Parameters:
RegionId: '{{ regionId }}'
InstanceId: '{{ instanceId }}'
Outputs:
dataDisks:
Type: Json
ValueSelector: '.Disks.Disk|map( select(.Type == "data" )|{"DiskId": .DiskId, "Category":(.Category),"Device": (.Device),"Size":(.Size),"DiskName":(.DiskName),"PerformanceLevel":(.PerformanceLevel)})'
systemDisk:
Type: Json
ValueSelector: '.Disks.Disk|map( select(.Type == "system" )|{"DiskId": .DiskId, "Category":(.Category),"Device": (.Device),"Size":(.Size),"DiskName":(.DiskName),"PerformanceLevel":(.PerformanceLevel)})[]'
- Name: queryInstanceSnapshot
Action: 'ACS::ExecuteApi'
Description:
en: Queries ECS instance Snapshot
zh-cn: 获取实例快照
Properties:
Service: ECS
API: DescribeSnapshots
Parameters:
RegionId: '{{ regionId }}'
InstanceId: '{{ instanceId }}'
Outputs:
snapshotInfo:
Type: List
ValueSelector: '.Snapshots.Snapshot[]'
- Name: queryNetworkInterfaces
Action: 'ACS::ExecuteApi'
Description:
en: Query the details of one or more Elastic Network Interfaces
zh-cn: 查询一个或多个弹性网卡的详细信息
Properties:
Service: ECS
API: DescribeNetworkInterfaces
Parameters:
RegionId: '{{ regionId }}'
InstanceId: '{{ instanceId }}'
Outputs:
ipv6Address:
Type: List
ValueSelector: '.NetworkInterfaceSets.NetworkInterfaceSet[].Ipv6Sets.Ipv6Set[].Ipv6Address'
Outputs:
instanceInfo:
Type: Json
Value:
'Fn::MergeMap':
- InstanceAttr:
'Fn::MergeMap':
- 'Fn::MergeMap':
- '{{ queryInstanceInfo.instanceInfo }}'
- SecurityGroupIds: '{{ queryInstanceInfo.securityGroupIds }}'
- PrivateIpAddresses: '{{ queryInstanceInfo.privateIpAddresses }}'
- DiskInfo:
'Fn::MergeMap':
- DataDisk: '{{ queryInstanceDisk.dataDisks }}'
- SystemDisk: '{{ queryInstanceDisk.systemDisk }}'
- SnapshotInfo: '{{ queryInstanceSnapshot.snapshotInfo }}'
- Ipv6Address: '{{ queryNetworkInterfaces.ipv6Address }}'