通過資源場景自動生成模板
您可以通過ROS的資源納管場景,將納管的一組現(xiàn)有資源生成資源場景模板,然后修改資源場景模板為通用模板,最后使用通用模板批量部署資源。
應(yīng)用場景
假設(shè)您需要部署1個Web應(yīng)用,可以通過為資源綁定統(tǒng)一的標簽app:web
,實現(xiàn)在創(chuàng)建資源納管場景時通過標簽篩選指定的資源。一鍵生成資源場景模板后,您可以使用參數(shù)(Parameters)提高模板的靈活性和可復(fù)用性,將模板修改為通用模板,然后創(chuàng)建資源棧批量部署以下資源:
1個VPC(專有網(wǎng)絡(luò))
1個vSwitch(交換機)
1個SecurityGroup(安全組)
2個ECS(云服務(wù)器)
1個SLB(負載均衡)
步驟一:創(chuàng)建資源并綁定標簽
在相應(yīng)產(chǎn)品的控制臺創(chuàng)建資源,并僅為本示例中的資源綁定統(tǒng)一的標簽app:web
(標簽鍵為app
,標簽值為web
)。關(guān)于標簽的更多信息,請參見標簽概述。
對于現(xiàn)有資源,僅需綁定標簽即可。
在VPC控制臺,創(chuàng)建1個VPC和1個vSwitch,并綁定標簽
app:web
。具體操作,請參見創(chuàng)建VPC和為VPC綁定標簽。
說明vSwitch綁定標簽方式與VPC相同,單擊目標vSwitch標簽列的圖標即可綁定標簽。
在ECS控制臺,創(chuàng)建1個專有網(wǎng)絡(luò)類型的安全組,選擇網(wǎng)絡(luò)為步驟1中創(chuàng)建的VPC,并綁定標簽
app:web
。具體操作,請參見創(chuàng)建安全組和為安全組綁定標簽。
創(chuàng)建2個ECS實例,并綁定標簽
app:web
。選擇步驟1創(chuàng)建的VPC和vSwitch。
選擇步驟2創(chuàng)建的安全組。
為ECS實例設(shè)置其他參數(shù)。
關(guān)于參數(shù)的更多信息,請參見創(chuàng)建ECS實例。
為ECS實例綁定標簽
app:web
。具體操作,請參見為ECS實例綁定標簽。
在SLB控制臺,創(chuàng)建1個SLB實例(以ALB實例為例),并綁定標簽
app:web
。創(chuàng)建SLB實例,選擇步驟1創(chuàng)建的VPC。
創(chuàng)建后端服務(wù)器組,添加步驟3創(chuàng)建的2個ECS實例。
配置監(jiān)聽并按需設(shè)置域名解析。
為SLB實例綁定標簽
app:web
。
具體操作,請參見SLB實例快速入門和為SLB實例綁定標簽。
步驟二:創(chuàng)建資源納管場景
創(chuàng)建資源納管場景,篩選步驟一:創(chuàng)建資源并綁定標簽創(chuàng)建的資源。
登錄資源編排控制臺。
在左側(cè)導(dǎo)航欄,單擊資源場景。
在頂部菜單欄的地域下拉列表,選擇資源場景的所在地域。
在資源場景列表頁面,單擊創(chuàng)建資源場景。
在創(chuàng)建資源場景對話框,設(shè)置資源場景描述,然后選擇資源場景為資源納管。
選擇資源范圍。
在選擇方式區(qū)域,選擇源標簽。
在源標簽區(qū)域,設(shè)置標簽鍵為
app
,設(shè)置標簽值為web
。
設(shè)置資源場景的資源刪除策略為保留。
說明在刪除資源棧時,本示例中的資源不需隨資源棧一起刪除,選擇保留。
單擊生成場景。
創(chuàng)建資源場景成功后,狀態(tài)列顯示生成完成。
步驟三:生成資源場景模板
在資源場景列表頁面,單擊目標資源場景ID。
在資源場景管理頁面,單擊右上角的生成模板。
生成的模板有JSON和YAML兩種格式。以YAML格式為例,模板內(nèi)容以及模板說明如下:
ROSTemplateFormatVersion: '2015-09-01'
Resources:
ECSInstance_001:
DeletionPolicy: Retain
Type: ALIYUN::ECS::Instance
Properties:
DeletionProtection: false
VSwitchId:
Ref: ECSVSwitch_001
VpcId:
Ref: ECSVPC_001
Tags:
- Value: web
Key: app
SystemDiskSize: 40
HostName: iZbp11ut2d6rr7gg78a****
SystemDiskCategory: cloud_essd
ImageId: centos_7_9_x64_20G_alibase_2022****.vhd
SpotStrategy: NoSpot
AllocatePublicIP: false
InstanceChargeType: PostPaid
IoOptimized: optimized
SecurityGroupIds:
- Ref: ECSSecurityGroup_001
InternetChargeType: PayByTraffic
ZoneId: cn-hangzhou-i
InstanceName: launch-advisor-2022****
InstanceType: ecs.g7.large
SystemDiskPerformanceLevel: PL0
DependsOn:
- ECSSecurityGroup_001
- ECSVSwitch_001
- ECSVPC_001
ECSInstance_002:
DeletionPolicy: Retain
Type: ALIYUN::ECS::Instance
Properties:
DeletionProtection: false
VSwitchId:
Ref: ECSVSwitch_001
VpcId:
Ref: ECSVPC_001
Tags:
- Value: web
Key: app
SystemDiskSize: 40
HostName: iZbp11ut2d6rr7gg78a****
SystemDiskCategory: cloud_essd
ImageId: centos_7_9_x64_20G_alibase_2022****.vhd
SpotStrategy: NoSpot
AllocatePublicIP: false
InstanceChargeType: PostPaid
IoOptimized: optimized
SecurityGroupIds:
- Ref: ECSSecurityGroup_001
InternetChargeType: PayByTraffic
ZoneId: cn-hangzhou-i
InstanceName: launch-advisor-2022****
InstanceType: ecs.g7.large
SystemDiskPerformanceLevel: PL0
DependsOn:
- ECSSecurityGroup_001
- ECSVSwitch_001
- ECSVPC_001
ECSSecurityGroup_001:
DeletionPolicy: Retain
Type: ALIYUN::ECS::SecurityGroup
Properties:
VpcId:
Ref: ECSVPC_001
Description: web-sg
SecurityGroupName: web-sg
Tags:
- Value: web
Key: app
SecurityGroupIngress:
- PortRange: 1/65535
NicType: intranet
Priority: 1
SourceCidrIp: 0.0.0.0/0
Policy: accept
IpProtocol: tcp
- PortRange: 80/80
NicType: intranet
Priority: 1
SourceCidrIp: 0.0.0.0/0
Policy: accept
IpProtocol: tcp
- PortRange: 443/443
NicType: intranet
Priority: 1
SourceCidrIp: 0.0.0.0/0
Policy: accept
IpProtocol: tcp
- PortRange: 22/22
NicType: intranet
Priority: 1
SourceCidrIp: 0.0.0.0/0
Policy: accept
IpProtocol: tcp
- PortRange: 3389/3389
NicType: intranet
Priority: 1
SourceCidrIp: 0.0.0.0/0
Policy: accept
IpProtocol: tcp
- PortRange: '-1/-1'
NicType: intranet
Priority: 1
SourceCidrIp: 0.0.0.0/0
Policy: accept
IpProtocol: icmp
SourcePortRange: '-1/-1'
SecurityGroupType: normal
DependsOn:
- ECSVPC_001
ECSVPC_001:
DeletionPolicy: Retain
Type: ALIYUN::ECS::VPC
Properties:
CidrBlock: 172.16.0.0/12
VpcName: web-vpc
EnableIpv6: false
Description: web-vpc
Tags:
- Value: web
Key: app
ECSVSwitch_001:
DeletionPolicy: Retain
Type: ALIYUN::ECS::VSwitch
Properties:
VSwitchName: web-vsw
VpcId:
Ref: ECSVPC_001
Description: web-vsw
Tags:
- Value: web
Key: app
ZoneId: cn-hangzhou-i
CidrBlock: 172.16.0.0/24
DependsOn:
- ECSVPC_001
SLBBackendServerAttachment_001:
DeletionPolicy: Retain
Type: ALIYUN::SLB::BackendServerAttachment
Properties:
BackendServers:
- ServerId:
Ref: ECSInstance_002
Type: ecs
Weight: 100
- ServerId:
Ref: ECSInstance_001
Type: ecs
Weight: 100
LoadBalancerId:
Ref: SLBLoadBalancer_001
DependsOn:
- SLBLoadBalancer_001
- ECSInstance_001
- ECSInstance_002
SLBLoadBalancer_001:
DeletionPolicy: Retain
Type: ALIYUN::SLB::LoadBalancer
Properties:
DeletionProtection: false
VpcId:
Ref: ECSVPC_001
AddressIPVersion: ipv4
Tags:
- Value: web
Key: app
SupportPrivateLink: true
PayType: PayOnDemand
SlaveZoneId: cn-hangzhou-h
AddressType: intranet
VSwitchId:
Ref: ECSVSwitch_001
LoadBalancerName: web-app-slb
InternetChargeType: paybytraffic
LoadBalancerSpec: slb.s1.small
MasterZoneId: cn-hangzhou-i
DependsOn:
- ECSVPC_001
- ECSVSwitch_001
模板內(nèi)容簡略展示如下:
ROSTemplateFormatVersion: '2015-09-01' // 模板語法版本
Resources: {} // 資源列表
ROSTemplateFormatVersion
:模板語法版本,其值固定為2015-09-01
。Resources
:資源列表,包括資源屬性、資源間的依賴關(guān)系等。資源列表中包含步驟一:創(chuàng)建資源并綁定標簽中創(chuàng)建的資源:1個VPC:ECSVPC_001。
1個vSwitch:ECSvSwitch_001。
1個SecurityGroup:ECSSecurityGroup_001。
2個ECS:ECSInstance_001、ECSInstance_002,后文簡稱ECSInstance_00X。
1個SLB:包含1個SLBLoadBalancer_001,一個SLBListener_001和一個LBBackendServerAttachment_001。
資源架構(gòu)圖如下:
步驟四:修改為通用模板
自動生成的資源場景模板中的資源屬性都為固定值,來源于步驟一:創(chuàng)建資源并綁定標簽中在各產(chǎn)品控制臺創(chuàng)建資源時選擇的參數(shù)。為了適用不同的場景,需要將模板中屬性的固定值(例如:可用區(qū)以及實例規(guī)格等)通過模板語法參數(shù)(Parameters)進行調(diào)整,同時添加輸出(Outputs)。
修改前
ROSTemplateFormatVersion: '2015-09-01' // 模板語法版本
Resources: {} // 資源列表
修改后
ROSTemplateFormatVersion: '2015-09-01' // 模板語法版本
Description: {} //模板描述信息,可用于說明模板的適用場景、架構(gòu)說明等。
Parameters: {} // 將固定值抽離進行定制化的參數(shù)
Resources: {} // 資源列表
Outputs: {} // 輸出資源屬性等信息,可以通過API或控制臺獲取輸出的內(nèi)容。
模板參數(shù)的詳細說明,請參見模板語法。
資源屬性與參數(shù)的對應(yīng)關(guān)系
資源名稱 | 需抽離的固定值 | 需添加的輸出參數(shù) |
專有網(wǎng)絡(luò):ECSVPC_001 | VPC網(wǎng)段 | 無 |
交換機:ECSvSwitch_001 | 可用區(qū)ID | 無 |
vSwitch網(wǎng)段 | ||
安全組:ECSSecurityGroup_001 | 無 | 無 |
云服務(wù)器:ECSInstance_00X | 可用區(qū)ID | 云服務(wù)器實例ID |
ECS實例規(guī)格 | ||
ECS系統(tǒng)盤類型 | ||
負載均衡:SLBLoadBalancer_001 | 可用區(qū)ID | 負載均衡實例的IP地址 |
SLB備可用區(qū) | ||
SLB實例規(guī)格 |
修改方法
將VPC網(wǎng)段屬性(
VpcCidrBlock
)提取為Parameters
,作為參數(shù)傳入。使用
Ref
定義參數(shù)CidrBlock
,引用參數(shù)Parameters
中VpcCidrBlock
的值。
修改前
ROSTemplateFormatVersion: '2015-09-01'
Resources:
ECSVPC_001:
DeletionPolicy: Retain
Type: ALIYUN::ECS::VPC
Properties:
CidrBlock: 172.16.0.0/12
修改后
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
VpcCidrBlock:
Type: String
Label: 專有網(wǎng)絡(luò)IPv4網(wǎng)段
Description: VPC的IP地址段范圍
Default: 172.16.0.0/12
Resources:
ECSVPC_001:
Type: ALIYUN::ECS::VPC
Properties:
CidrBlock:
Ref: VpcCidrBlock
VpcName: web-vpc
EnableIpv6: false
Description: web-vpc
Tags:
- Value: web
Key: app
關(guān)于資源ECSVPC_001其他屬性描述,請參見ALIYUN::ECS::VPC。
將可用區(qū)ID(
ZoneId
)和vSwitch網(wǎng)段(VSwitchCidrBlock
)提取為Parameters
,作為參數(shù)傳入。使用
Ref
定義參數(shù)ZoneId
,引用參數(shù)Parameters
中ZoneId
的值。使用
Ref
定義參數(shù)CidrBlock
,引用參數(shù)Parameters
中VSwitchCidrBlock
的值。
修改前
ROSTemplateFormatVersion: '2015-09-01'
Resources:
ECSVSwitch_001:
Type: ALIYUN::ECS::VSwitch
Properties:
VpcId:
Ref: ECSVPC_001
ZoneId: cn-hangzhou-i
CidrBlock: 172.16.0.0/24
DependsOn:
- ECSVPC_001
修改后
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
ZoneId:
Type: String
AssociationProperty: ALIYUN::ECS::ZoneId
Description: 可用區(qū)ID
Label: 可用區(qū)
VSwitchCidrBlock:
Type: String
Label: 交換機子網(wǎng)網(wǎng)段
Description: 必須屬于VPC的子網(wǎng)段
Default: 172.16.0.0/24
Resources:
ECSVPC_001: ''
ECSVSwitch_001:
Type: ALIYUN::ECS::VSwitch
Properties:
CidrBlock:
Ref: VSwitchCidrBlock
VpcId:
Ref: ECSVPC_001
ZoneId:
Ref: VSwitchZone
DependsOn:
- ECSVPC_001
通過在參數(shù)中指定
AssociationProperty
以獲取所選地域下對應(yīng)的資源,指定AssociationPropertyMetadata
對不同參數(shù)添加篩選條件,以便在控制臺動態(tài)選擇參數(shù)配置。參數(shù)ZoneId
中AssociationProperty
中的ALIYUN::ECS::ZoneId
用來獲取當前地域下的可用區(qū)ID,以便在控制臺通過下拉框的形式供您選擇可用區(qū)。更多信息,請參見ationPropertyMetadata。若指定了
DependsOn
屬性,表示該資源會在依賴的資源創(chuàng)建成功后才開始創(chuàng)建。例如,資源ECSVSwitch_001會等待資源ECSVPC_001創(chuàng)建成功后創(chuàng)建。關(guān)于資源ECSVSwitch_001其他屬性描述,請參見ALIYUN::ECS::VSwitch。
將可用區(qū)ID(
ZoneId
)、ECS實例規(guī)格(ECSInstanceType
)和ECS系統(tǒng)盤類型(SystemDiskCategory
提取為Parameters
,作為參數(shù)傳入。使用
Ref
定義參數(shù)ZoneId
,引用參數(shù)Parameters
中ZoneId
的值。使用
Ref
定義參數(shù)InstanceType
,引用參數(shù)Parameters
中ECSInstanceType
的值。使用
Ref
定義參數(shù)SystemDiskCategory
,引用參數(shù)Parameters
中SystemDiskCategory
的值。
修改前
ROSTemplateFormatVersion: '2015-09-01'
Resources:
ECSVSwitch_001: ''
ECSVPC_001: ''
ECSSecurityGroup_001: ''
ECSInstance_001:
Type: ALIYUN::ECS::Instance
Properties:
ZoneId: cn-hangzhou-i
InstanceType: ecs.g7.large
SystemDiskCategory: cloud_essd
DependsOn:
- ECSSecurityGroup_001
- ECSVSwitch_001
- ECSVPC_001
修改后
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
ZoneId: ''
ECSInstanceType:
Type: String
Description: 填寫可用區(qū)下可使用的規(guī)格
Label: 實例類型
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
ZoneId: ZoneId
SystemDiskCategory:
Type: String
Description: 系統(tǒng)盤類型
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
ZoneId: VSwitchZone
InstanceType: ECSInstanceType
Label: 系統(tǒng)盤類型
Resources:
ECSInstance_001:
Type: ALIYUN::ECS::Instance
Properties:
SystemDiskCategory:
Ref: SystemDiskCategory
InstanceType:
Ref: ECSInstanceType
ZoneId:
Ref: ZoneId
DependsOn:
- ECSSecurityGroup_001
- ECSVSwitch_001
- ECSVPC_001
參數(shù)
EcsInstanceType
中AssociationProperty
中的ALIYUN::ECS::Instance::InstanceType
用來獲取當前地域下的ECS實例規(guī)格列表,以便在控制臺通過下拉框的形式供您選擇ECS實例規(guī)格。參數(shù)
AssociationPropertyMetadata
用來指定查詢的條件,示例中的ZoneId
表示查詢在該可用區(qū)中支持的ECS實例規(guī)格。參數(shù)
SystemDiskCategory
中AssociationProperty
中的ALIYUN::ECS::Disk::SystemDiskCategory
用來獲取當前地域下的ECS系統(tǒng)盤類型。AssociationPropertyMetadata
中同樣配置了ZoneId
作為查詢條件。關(guān)于資源ECSInstance_00X其他屬性描述,請參見ALIYUN::ECS::Instance。
將可用區(qū)ID(
MasterZoneId
)、SLB備可用區(qū)(SlaveZoneId
)和SLB實例規(guī)格(LoadBalancerSpec
提取為Parameters
,作為參數(shù)傳入。使用
Ref
定義參數(shù)MasterZoneId
,引用參數(shù)Parameters
中ZoneId
的值。使用
Ref
定義參數(shù)SlaveZoneId
,引用參數(shù)Parameters
中SlaveZoneId
的值。使用
Ref
定義參數(shù)LoadBalancerSpec
,引用參數(shù)Parameters
中LoadBalancerSpec
的值。
修改前
ROSTemplateFormatVersion: '2015-09-01'
Resources:
ECSVPC_001: ''
ECSVSwitch_001: ''
SLBLoadBalancer_001:
DeletionPolicy: Retain
Type: ALIYUN::SLB::LoadBalancer
Properties:
MasterZoneId: cn-hangzhou-i
SlaveZoneId: cn-hangzhou-h
LoadBalancerSpec: slb.s1.small
DependsOn:
- ECSVPC_001
- ECSVSwitch_001
修改后
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
ZoneId: ''
SlaveZoneId:
Type: String
Description: 備可用區(qū)ID
Label: SLB備可用區(qū)
LoadBalancerSpec:
Type: String
AssociationProperty: ALIYUN::SLB::Instance::InstanceType
Description: SLB實例規(guī)格
Label: 規(guī)格
AssociationPropertyMetadata:
ZoneId: VSwitchZone
Resources:
ECSVPC_001: ''
ECSVSwitch_001: ''
SLBLoadBalancer_001:
DeletionPolicy: Retain
Type: ALIYUN::SLB::LoadBalancer
Properties:
LoadBalancerName: web-app-slb
LoadBalancerSpec:
Ref: LoadBalancerSpec
SlaveZoneId:
Ref: SlaveZoneId
MasterZoneId:
Ref: ZoneId
DependsOn:
- ECSVPC_001
- ECSVSwitch_001
通過在參數(shù)中指定
AssociationProperty
來獲取所選地域下對應(yīng)的資源,指定AssociationPropertyMetadata
對不同參數(shù)添加篩選條件,以便在控制臺動態(tài)選擇參數(shù)配置。參數(shù)
ZoneId
中AssociationProperty
中的ALIYUN::ECS::ZoneId
用來獲取當前地域下的可用區(qū)ID列表,以便在控制臺通過下拉框的形式供您選擇可用區(qū)。參數(shù)
LoadBalancerSpec
中AssociationProperty
中的ALIYUN::SLB::Instance::InstanceType
用來獲取當前地域下的SLB實例規(guī)格列表,以便在控制臺通過下拉框的形式供您選擇SLB實例規(guī)格。更多信息,請參見ationPropertyMetadata。關(guān)于資源SLBLoadBalancer_001其他屬性描述,請參見ALIYUN::SLB::LoadBalancer。
關(guān)于資源SLBLoadBalancer_001支持輸出的其他屬性,請參見ALIYUN::SLB::LoadBalancer的返回值部分。
Outputs:
SLBListenerIpAddress:
Description: TheIPaddressoftheloadbalancer.
Value:
Fn::GetAtt:
- SLBLoadBalancer_001
- IpAddress
關(guān)于資源ECSInstance_00X支持輸出的其他屬性,請參見ALIYUN::ECS::Instance的返回值部分。
Outputs:
ECSInstance_001:
Description: TheinstanceIDofcreatedecsinstance
Value:
Fn::GetAtt:
- ECSInstance_001
- InstanceId
ECSInstance_002:
Description: TheinstanceIDofcreatedecsinstance
Value:
Fn::GetAtt:
- ECSInstance_002
- InstanceId
修改后的通用模板
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
ZoneId:
Type: String
AssociationProperty: ALIYUN::ECS::Instance:ZoneId
Description: 可用區(qū)ID
Label: 可用區(qū)
SlaveZoneId:
Type: String
Description: 備可用區(qū)ID
Label: SLB備可用區(qū)
VpcCidrBlock:
Type: String
Label: 專有網(wǎng)絡(luò)IPv4網(wǎng)段
Description: VPC的IP地址段范圍
Default: 172.16.0.0/12
VSwitchCidrBlock:
Type: String
Label: 交換機子網(wǎng)網(wǎng)段
Description: 必須屬于VPC的子網(wǎng)段
Default: 172.16.0.0/24
ECSInstanceType:
Type: String
Description: ECS實例類型
Label: 實例類型
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
ZoneId: ZoneId
SystemDiskCategory:
Type: String
Description: 系統(tǒng)盤類型
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
ZoneId: ZoneId
InstanceType: ECSInstanceType
Label: 系統(tǒng)盤類型
LoadBalancerSpec:
Type: String
AssociationProperty: ALIYUN::SLB::Instance::InstanceType
Description: 實例規(guī)格
Label: SLB規(guī)格
AssociationPropertyMetadata:
ZoneId: ZoneId
Default: slb.s1.small
Resources:
ECSVPC_001:
Type: ALIYUN::ECS::VPC
Properties:
CidrBlock:
Ref: VpcCidrBlock
VpcName: web-vpc
EnableIpv6: false
Description: web-vpc
Tags:
- Value: web
Key: app
ECSVSwitch_001:
Type: ALIYUN::ECS::VSwitch
Properties:
VSwitchName: web-vsw
VpcId:
Ref: ECSVPC_001
Description: web-vsw
Tags:
- Value: web
Key: app
ZoneId:
Ref: ZoneId
CidrBlock:
Ref: VSwitchCidrBlock
DependsOn:
- ECSVPC_001
ECSSecurityGroup_001:
Type: ALIYUN::ECS::SecurityGroup
Properties:
VpcId:
Ref: ECSVPC_001
Description: web-sg
SecurityGroupName: web-sg
Tags:
- Value: web
Key: app
SecurityGroupIngress:
- PortRange: 80/80
NicType: intranet
Priority: 1
SourceCidrIp: 0.0.0.0/0
Policy: accept
IpProtocol: tcp
- PortRange: 443/443
NicType: intranet
Priority: 1
SourceCidrIp: 0.0.0.0/0
Policy: accept
IpProtocol: tcp
- PortRange: 22/22
NicType: intranet
Priority: 1
SourceCidrIp: 0.0.0.0/0
Policy: accept
IpProtocol: tcp
SecurityGroupType: normal
DependsOn:
- ECSVPC_001
ECSInstance_001:
Type: ALIYUN::ECS::Instance
Properties:
DeletionProtection: true
SystemDiskCategory:
Ref: SystemDiskCategory
VpcId:
Ref: ECSVPC_001
Description: web-ecs
Tags:
- Value: web
Key: app
VSwitchId:
Ref: ECSVSwitch_001
SystemDiskSize: 40
ImageId: centos_7_9_x64_20G_alibase_2022****.vhd
SpotStrategy: NoSpot
AllocatePublicIP: false
InstanceChargeType: PostPaid
IoOptimized: optimized
SecurityGroupIds:
- Ref: ECSSecurityGroup_001
InternetChargeType: PayByTraffic
ZoneId:
Ref: ZoneId
InstanceName: web-ecs002
InstanceType:
Ref: ECSInstanceType
SystemDiskPerformanceLevel: PL0
DependsOn:
- ECSSecurityGroup_001
- ECSVSwitch_001
- ECSVPC_001
ECSInstance_002:
Type: ALIYUN::ECS::Instance
Properties:
DeletionProtection: true
SystemDiskCategory:
Ref: SystemDiskCategory
VpcId:
Ref: ECSVPC_001
Description: web-ecs
Tags:
- Value: web
Key: app
VSwitchId:
Ref: ECSVSwitch_001
SystemDiskSize: 40
ImageId: centos_7_9_x64_20G_alibase_2022****.vhd
SpotStrategy: NoSpot
AllocatePublicIP: false
InstanceChargeType: PostPaid
IoOptimized: optimized
SecurityGroupIds:
- Ref: ECSSecurityGroup_001
InternetChargeType: PayByTraffic
ZoneId:
Ref: ZoneId
InstanceName: web-ecs001
InstanceType:
Ref: ECSInstanceType
SystemDiskPerformanceLevel: PL0
DependsOn:
- ECSSecurityGroup_001
- ECSVSwitch_001
- ECSVPC_001
SLBListener_001:
Type: ALIYUN::SLB::Listener
Properties:
AclStatus: 'off'
Protocol: tcp
Description: tcp_80
HealthCheck:
Interval: 2
HealthyThreshold: 3
Switch: 'on'
UnhealthyThreshold: 3
HealthCheckType: tcp
LoadBalancerId:
Ref: SLBLoadBalancer_001
ListenerPort: 80
Bandwidth: -1
BackendServerPort: 80
Scheduler: tch
StartListener: true
Persistence:
PersistenceTimeout: 0
DependsOn:
- SLBLoadBalancer_001
SLBLoadBalancer_001:
Type: ALIYUN::SLB::LoadBalancer
Properties:
DeletionProtection: false
VpcId:
Ref: ECSVPC_001
AddressIPVersion: ipv4
Tags:
- Value: web
Key: app
SupportPrivateLink: true
PayType: PayOnDemand
AddressType: intranet
VSwitchId:
Ref: ECSVSwitch_001
LoadBalancerName: web-slb
InternetChargeType: paybytraffic
LoadBalancerSpec:
Ref: LoadBalancerSpec
MasterZoneId:
Ref: ZoneId
SlaveZoneId:
Ref: SlaveZoneId
DependsOn:
- ECSVPC_001
- ECSVSwitch_001
SLBBackendServerAttachment_001:
Type: ALIYUN::SLB::BackendServerAttachment
Properties:
BackendServers:
- ServerId:
Ref: ECSInstance_001
Type: ecs
Weight: 100
- ServerId:
Ref: ECSInstance_002
Type: ecs
Weight: 100
LoadBalancerId:
Ref: SLBLoadBalancer_001
DependsOn:
- SLBLoadBalancer_001
- ECSInstance_001
- ECSInstance_002
Outputs:
ECSInstance_001:
Description: TheinstanceIDofcreatedecsinstance
Value:
Fn::GetAtt:
- ECSInstance_001
- InstanceId
ECSInstance_002:
Description: TheinstanceIDofcreatedecsinstance
Value:
Fn::GetAtt:
- ECSInstance_002
- InstanceId
SLBListenerIpAddress:
Description: TheIPaddressoftheloadbalancer.
Value:
Fn::GetAtt:
- SLBLoadBalancer_001
- IpAddress
(可選)步驟五:批量部署資源
您可以使用修改后的統(tǒng)一模板創(chuàng)建資源棧,批量部署資源。
在資源編排控制臺,使用步驟四:修改為通用模板中的通用模板創(chuàng)建資源棧并批量部署資源。
具體操作,請參見創(chuàng)建資源棧。
在資源棧詳情頁單擊參數(shù)頁簽,查看部署后的資源詳情。