Gunakan skenario impor sumber daya di Resource Orchestration Service (ROS) untuk membuat templat dari sumber daya yang sudah ada, lalu modifikasi templat tersebut agar dapat diterapkan secara batch.
Kasus penggunaan
Untuk menerapkan aplikasi web, beri tag semua sumber daya terkait dengan app:web agar dapat difilter selama impor sumber daya. Setelah membuat templat, tambahkan parameter agar templat tersebut dapat digunakan kembali, lalu buat stack untuk menerapkan secara batch sumber daya berikut:
-
Satu VPC
-
Satu vSwitch
-
Satu security group
-
Dua Instance ECS
-
Satu Instance SLB

Langkah 1: Buat sumber daya dan tambahkan tag
Buat sumber daya yang diperlukan di konsol masing-masing dan tambahkan tag app:web (kunci tag app, nilai tag web). Apa itu tag?
Untuk sumber daya yang sudah ada, Anda hanya perlu menambahkan tag.
-
Di Konsol VPC, buat VPC dan vSwitch, lalu tambahkan tag
app:webke keduanya.Buat VPC. Tambahkan tag ke VPC.
CatatanUntuk menambahkan tag ke vSwitch, ikuti prosedur yang sama seperti pada VPC. Klik ikon
di kolom Tags untuk vSwitch yang dituju. -
Di Konsol ECS, buat security group untuk VPC, atur Network ke VPC yang Anda buat di Langkah 1, lalu tambahkan tag
app:web. -
Buat dua Instance ECS dan tambahkan tag
app:web. -
Di Konsol SLB, buat Instance SLB (contoh ini menggunakan Instance Application Load Balancer) dan tambahkan tag
app:web.
Langkah 2: Buat skenario impor sumber daya
Buat skenario impor sumber daya untuk memfilter sumber daya dari Langkah 1: Buat sumber daya dan tambahkan tag.
-
Masuk ke Konsol ROS.
-
Di panel navigasi sebelah kiri, klik Scenarios.
-
Dari daftar drop-down wilayah di bilah navigasi atas, pilih wilayah untuk skenario sumber daya.
-
Di halaman Scenarios, klik Create Scenario.
-
Di kotak dialog Create Scenario, masukkan deskripsi untuk skenario dan pilih Resource Management sebagai tipe skenario.
-
Tentukan cakupan sumber daya.
-
Di bagian Method, pilih Source Tag.
-
Di bagian Source Tag, atur Tag Key menjadi
appdan Tag Value menjadiweb.
Di bidang Description, masukkan
web-app. Klik Generate Scenario. -
-
Atur Delete Resource untuk skenario sumber daya menjadi Retain.
CatatanPilih Retain untuk mempertahankan sumber daya yang sudah ada saat stack dihapus.
-
Klik Create.
Setelah skenario sumber daya dibuat, Status-nya berubah menjadi Created.
Langkah 3: Buat templat
-
Di halaman Scenarios, klik ID skenario sumber daya yang dituju.
-
Di halaman manajemen skenario sumber daya, klik Create Template di pojok kanan atas.
Templat mendukung format JSON dan YAML. Contoh berikut menggunakan YAML.
Langkah 4: Jadikan templat dapat digunakan kembali
Templat yang dihasilkan mengkodekan nilai properti sumber daya dari Langkah 1: Buat sumber daya dan tambahkan tag secara langsung. Untuk menjadikannya dapat digunakan kembali, gantilah nilai-nilai yang dikodekan secara langsung—seperti zona ketersediaan dan tipe instans—dengan parameter, lalu tambahkan output.
Sebelum
ROSTemplateFormatVersion: '2015-09-01' # Versi sintaksis templat.
Resources: {} # Daftar sumber daya.
Sesudah
ROSTemplateFormatVersion: '2015-09-01' # Versi sintaksis templat.
Description: {} # Menjelaskan kasus penggunaan dan arsitektur templat.
Parameters: {} # Parameter kustom yang diekstraksi dari nilai yang dikodekan secara langsung.
Resources: {} # Daftar sumber daya.
Outputs: {} # Mengembalikan informasi seperti properti sumber daya. Anda dapat mengambil konten output dari konsol atau dengan memanggil operasi API.
Pemetaan antara properti sumber daya dan parameter
|
Nama sumber daya |
Properti yang diparameterisasi |
Output yang ditambahkan |
|
VPC: ECSVPC_001 |
Blok CIDR VPC ( |
Tidak ada |
|
vSwitch: ECSVSwitch_001 |
ID zona ketersediaan ( |
Tidak ada |
|
Blok CIDR vSwitch ( |
||
|
Security group: ECSSecurityGroup_001 |
Tidak ada |
Tidak ada |
|
Instance ECS: ECSInstance_00X |
ID zona ketersediaan ( |
ID Instance ECS ( |
|
Tipe Instance ECS ( |
||
|
Kategori disk sistem ECS ( |
||
|
Instance SLB: SLBLoadBalancer_001 |
ID zona ketersediaan utama ( |
Alamat IP Instance SLB ( |
|
ID zona ketersediaan cadangan ( |
||
|
Spesifikasi Instance SLB ( |
Modifikasi templat
Templat yang dapat digunakan kembali
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
ZoneId:
Type: String
AssociationProperty: ALIYUN::ECS::Instance:ZoneId
Description: ID zona ketersediaan.
Label: Zona Ketersediaan
SlaveZoneId:
Type: String
Description: ID zona ketersediaan cadangan.
Label: Zona Cadangan SLB
VpcCidrBlock:
Type: String
Label: Blok CIDR IPv4 VPC
Description: Rentang alamat IPv4 untuk VPC.
Default: 172.16.0.0/12
VSwitchCidrBlock:
Type: String
Label: Blok CIDR vSwitch
Description: Harus merupakan subnet dari VPC.
Default: 172.16.0.0/24
ECSInstanceType:
Type: String
Description: Tipe instans Instance ECS.
Label: Tipe Instans
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
ZoneId: ZoneId
SystemDiskCategory:
Type: String
Description: Kategori disk sistem.
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
ZoneId: ZoneId
InstanceType: ECSInstanceType
Label: Kategori Disk Sistem
LoadBalancerSpec:
Type: String
AssociationProperty: ALIYUN::SLB::Instance::InstanceType
Description: Spesifikasi Instance SLB.
Label: Spesifikasi SLB
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: ID instans dari Instance ECS yang dibuat.
Value:
Fn::GetAtt:
- ECSInstance_001
- InstanceId
ECSInstance_002:
Description: ID instans dari Instance ECS yang dibuat.
Value:
Fn::GetAtt:
- ECSInstance_002
- InstanceId
SLBListenerIpAddress:
Description: Alamat IP load balancer.
Value:
Fn::GetAtt:
- SLBLoadBalancer_001
- IpAddress
(Opsional) Langkah 5: Terapkan sumber daya secara batch
Gunakan templat yang dapat digunakan kembali untuk membuat stack dan menerapkan sumber daya secara batch.
-
Di Konsol ROS, gunakan templat yang dapat digunakan kembali dari Langkah 4: Jadikan templat dapat digunakan kembali untuk membuat stack. Di halaman Configure Template Parameters, atur parameter seperti Availability Zone (misalnya, China (Hangzhou) Zona I), SLB Backup Zone, VPC IPv4 CIDR Block (misalnya, 172.16.0.0/12), dan vSwitch CIDR Block. Lalu, pilih Instance Type, seperti
ecs.c7.large(instans komputasi-teroptimalkan c7 dengan 2 vCPU dan memori 4 GiB). -
Di halaman detail stack, klik tab Parameter untuk melihat detail sumber daya yang diterapkan.
