Nama Template
ACS-ECS-BuatDanSalinCitra
Deskripsi Template
Template ini digunakan untuk membuat citra Elastic Compute Service (ECS) dan mengkloningnya ke wilayah lain. Cocok untuk skenario seperti pembaruan sistem dan pencadangan. Saat mengonfigurasi template, Anda perlu menentukan parameter berikut: regionId (wilayah instance ECS yang ingin dicetak), instanceId (ID instance ECS), targetImageName (nama citra yang akan dibuat). Anda juga dapat menentukan commandContent untuk menjalankan skrip pada instance. Setelah citra dibuat, citra tersebut dikloning ke wilayah tujuan (targetRegionIds). Anda juga dapat menentukan accountIds untuk mengkloning citra ke akun Alibaba Cloud lainnya. Setelah eksekusi selesai, ID citra yang dibuat dan dikloning akan dikembalikan.
Tipe Template
Otomatis
Pemilik
Alibaba Cloud
Parameter Input
Parameter | Deskripsi | Tipe | Diperlukan | Nilai Default | Batasan |
instanceId | ID instance ECS. | String | Ya | ||
regionId | ID wilayah tempat citra ECS akan dibuat. | String | Tidak | {{ ACS::RegionId }} | |
targetImageName | Nama citra ECS yang akan dibuat. | String | Tidak | CreateImage_from_{{ACS::ExecutionId}} | |
commandType | Tipe perintah Cloud Assistant. | String | Tidak | RunShellScript | |
commandContent | Perintah Cloud Assistant. | String | Tidak | "" | |
targetRegionIds | ID wilayah-wilayah ke mana citra ECS akan dikloning. | List | Tidak | [] | |
accountIds | ID akun Alibaba Cloud dengan siapa Anda ingin membagikan citra kustom. | List | Tidak | [] | |
scalingConfigurationIds | ID konfigurasi penskalaan yang akan dimodifikasi. | List | Tidak | [] | |
launchTemplateNames | Daftar nama-nama templat peluncuran yang akan diperbarui. | List | Tidak | [] | |
tags | Tag-tag citra ECS. | Json | Tidak | [] | |
rateControl | Pengaturan kontrol laju. | Json | Tidak | {'Mode': 'Concurrency', 'MaxErrors': '0', 'Concurrency': 5} | |
OOSAssumeRole | Peran Resource Access Management (RAM) yang diasumsikan oleh CloudOps Orchestration Service (OOS). | String | Tidak | "" |
Parameter Output
Parameter | Deskripsi | Tipe |
imageIds | List | |
imageIdAndRegion | List |
Kebijakan Izin yang Diperlukan untuk Menjalankan Template
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:CopyImage",
"ecs:CreateImage",
"ecs:CreateLaunchTemplateVersion",
"ecs:DeleteLaunchTemplateVersion",
"ecs:DescribeImages",
"ecs:DescribeInstances",
"ecs:DescribeInvocationResults",
"ecs:DescribeInvocations",
"ecs:DescribeLaunchTemplateVersions",
"ecs:DescribeLaunchTemplates",
"ecs:DescribeRegions",
"ecs:ModifyImageSharePermission",
"ecs:ModifyLaunchTemplateDefaultVersion",
"ecs:RunCommand"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ess:ModifyScalingConfiguration"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Referensi
Untuk informasi lebih lanjut, lihat ACS-ECS-CreateAndCopyImage.yml di GitHub.
Konten Template
FormatVersion: OOS-2019-06-01
Description:
name-en: ACS-ECS-CreateAndCopyImage
name-zh-cn: deskripsi dalam bahasa Cina
en: 'Membuat citra ECS dan menyalin citra baru ke wilayah lain, berlaku untuk skenario yang memerlukan pembuatan dan sinkronisasi citra ECS di berbagai wilayah, seperti pembaruan sistem dan pencadangan. Selama konfigurasi, pengguna perlu memberikan informasi parameter wajib berikut: Region ID (regionId), yang menentukan wilayah instance ECS tempat citra akan dibuat, ECS Instance ID (instanceId), yang mengidentifikasi instance untuk membuat citra, dan Target Image Name (targetImageName), yang menamai citra ECS baru. Secara opsional, pengguna dapat menjalankan tugas pada instance melalui perintah asisten cloud (commandContent). Citra yang dibuat akan disinkronkan ke wilayah tujuan tertentu (targetRegionIds), dan pengguna juga dapat memilih untuk membagikan citra dengan akun Alibaba Cloud lainnya (accountIds). Setelah eksekusi, template akan mengembalikan daftar ID citra yang dibuat dan dikloning, memfasilitasi verifikasi operasi.'
zh-cn: deskripsi dalam bahasa Cina
categories:
- image_manage
Parameters:
regionId:
Type: String
Label:
en: RegionId
zh-cn: deskripsi dalam bahasa Cina
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
instanceId:
Label:
en: InstanceId
zh-cn: deskripsi dalam bahasa Cina
Type: String
AssociationProperty: ALIYUN::ECS::Instance::InstanceId
AssociationPropertyMetadata:
RegionId: regionId
targetImageName:
Label:
en: TargetImageName
zh-cn: deskripsi dalam bahasa Cina
Type: String
Description:
en: <p class="p">Catatan:</p> <ul class="ul"> <li class="li">Panjang adalah 2~128 karakter Inggris atau Cina</li> <li class="li"><font color='red'>harus dimulai dengan huruf besar atau kecil atau Cina, tidak http:// dan https://. </font></li> <li class="li">Dapat berisi angka, titik dua (:), garis bawah (_), atau tanda hubung (-). </li> </ul>
zh-cn: deskripsi dalam bahasa Cina </li> </ul>
Default: CreateImage_from_{{ACS::ExecutionId}}
commandType:
Label:
en: CommandType
zh-cn: deskripsi dalam bahasa Cina
Type: String
AllowedValues:
- RunShellScript
- RunBatScript
- RunPowerShellScript
Default: RunShellScript
commandContent:
Description:
en: <font color='red'></font>
zh-cn: deskripsi dalam bahasa Cina
Label:
en: CommandContent
zh-cn: deskripsi dalam bahasa Cina
Type: String
AssociationProperty: Code
Default: ''
targetRegionIds:
Label:
en: TargetRegionIds
zh-cn: deskripsi dalam bahasa Cina
Type: List
AllowedValues:
- all-regions
- cn-beijing
- cn-qingdao
- cn-zhangjiakou
- cn-huhehaote
- cn-hangzhou
- cn-shanghai
- cn-shenzhen
- cn-chengdu
- cn-hongkong
- cn-heyuan
- cn-wulanchabu
- ap-northeast-1
- ap-southeast-1
- ap-southeast-2
- ap-southeast-3
- ap-southeast-5
- ap-south-1
- us-east-1
- us-west-1
- eu-west-1
- me-east-1
- eu-central-1
Default: []
accountIds:
Label:
en: AccountIds
zh-cn: deskripsi dalam bahasa Cina
Type: List
Default: []
scalingConfigurationIds:
Description:
en: <font color='red'></font>
zh-cn: deskripsi dalam bahasa Cina
Label:
en: ScalingConfigurationIds
zh-cn: deskripsi dalam bahasa Cina
Type: List
Default: []
launchTemplateNames:
Description:
en: <font color='red'></font>
zh-cn: deskripsi dalam bahasa Cina
Label:
en: LaunchTemplateNames
zh-cn: deskripsi dalam bahasa Cina
Type: List
Default: []
tags:
Label:
en: Tags
zh-cn: deskripsi dalam bahasa Cina
Type: Json
AssociationProperty: Tags
AssociationPropertyMetadata:
ShowSystem: false
Default: []
rateControl:
Label:
en: RateControl
zh-cn: deskripsi dalam bahasa Cina
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 5
OOSAssumeRole:
Label:
en: OOSAssumeRole
zh-cn: deskripsi dalam bahasa Cina
Type: String
Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: whetherToRunCommand
Action: 'ACS::Choice'
Description:
en: Pilih tugas berikutnya
zh-cn: deskripsi dalam bahasa Cina
Properties:
DefaultTask: runCommand
Choices:
- When:
'Fn::Equals':
- ''
- '{{ commandContent }}'
NextTask: createImage
- Name: runCommand
Action: 'ACS::ECS::RunCommand'
Description:
en: Jalankan perintah asisten cloud pada instance ECS
zh-cn: deskripsi dalam bahasa Cina
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ instanceId }}'
commandContent: '{{ commandContent }}'
commandType: '{{ commandType }}'
Outputs:
commandOutput:
Type: String
ValueSelector: invocationOutput
- Name: createImage
Action: 'ACS::ECS::CreateImage'
Description:
en: Buat citra baru dengan nama citra dan ID instance yang ditentukan
zh-cn: deskripsi dalam bahasa Cina
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ instanceId }}'
imageName: '{{ targetImageName }}-{{ ACS::CurrentUTCTime }}'
tags: '{{tags}}'
Outputs:
imageId:
ValueSelector: imageId
Type: String
- Name: queryAllAvailableRegions
Action: 'ACS::ExecuteAPI'
Description:
en: Lihat semua wilayah yang tersedia
zh-cn: deskripsi dalam bahasa Cina
Properties:
Service: ECS
API: DescribeRegions
Parameters:
RegionId: '{{ regionId }}'
Outputs:
regionIds:
Type: List
ValueSelector: 'Regions.Region[]|.RegionId|select([scan("{{ACS::RegionId}}|test")]|length<1)'
allRegionsChosen:
Type: String
ValueSelector: '.|{{targetRegionIds}}|sort|.[0]'
- Name: whetherCloneToAllRegions
Action: 'ACS::Choice'
Description:
en: Pilih tugas berikutnya berdasarkan targetRegionIds yang dipilih
zh-cn: deskripsi dalam bahasa Cina
Properties:
DefaultTask: copyImage
Choices:
- When:
'Fn::Equals':
- all-regions
- '{{ queryAllAvailableRegions.allRegionsChosen }}'
NextTask: copyImageToAllRegions
- Name: copyImage
Action: 'ACS::ECS::CopyImage'
OnSuccess: whetherToShareImage
Description:
en: Salin citra ke wilayah yang dipilih
zh-cn: deskripsi dalam bahasa Cina
Properties:
regionId: '{{ regionId }}'
imageId: '{{ createImage.imageId }}'
targetImageName: '{{ targetImageName }}-{{ ACS::CurrentUTCTime }}'
targetRegionId: '{{ ACS::TaskLoopItem }}'
Loop:
Items: '{{ targetRegionIds }}'
RateControl: '{{ rateControl }}'
Outputs:
imageIdsWithRegion:
AggregateType: 'Fn::ListJoin'
AggregateField: imageIdWithRegion
Outputs:
imageIdWithRegion:
ValueSelector: '.|(.imageId),"{{ ACS::TaskLoopItem }}"'
Type: List
- Name: copyImageToAllRegions
Action: 'ACS::ECS::CopyImage'
Description:
en: Salin citra ke semua wilayah yang tersedia
zh-cn: deskripsi dalam bahasa Cina
Properties:
regionId: '{{ regionId }}'
imageId: '{{ createImage.imageId }}'
targetImageName: '{{ targetImageName }}-{{ ACS::CurrentUTCTime }}'
targetRegionId: '{{ ACS::TaskLoopItem }}'
Loop:
Items: '{{ queryAllAvailableRegions.regionIds }}'
RateControl: '{{ rateControl }}'
Outputs:
imageIdsWithRegion:
AggregateType: 'Fn::ListJoin'
AggregateField: imageIdWithRegion
Outputs:
imageIdWithRegion:
ValueSelector: '.|(.imageId),"{{ ACS::TaskLoopItem }}"'
Type: List
- Name: whetherToShareImage
Action: 'ACS::Choice'
Description:
en: Pilih tugas berikutnya berdasarkan accountIds
zh-cn: deskripsi dalam bahasa Cina
Properties:
DefaultTask: shareImage
Choices:
- When:
'Fn::Equals':
- []
- '{{ accountIds }}'
NextTask: modifyScalingConfiguration
- Name: shareImage
Action: 'ACS::ExecuteAPI'
Description:
en: Membagikan citra kustom ke akun Alibaba Cloud lainnya
zh-cn: deskripsi dalam bahasa Cina
Properties:
Service: ECS
API: ModifyImageSharePermission
Parameters:
RegionId: '{{ regionId }}'
ImageId: '{{ createImage.imageId }}'
AddAccount: '{{ accountIds }}'
- Name: modifyScalingConfiguration
Action: 'ACS::ExecuteAPI'
OnError: ACS::NEXT
Description:
en: Modifikasi konfigurasi penskalaan
zh-cn: deskripsi dalam bahasa Cina
Properties:
Service: ESS
API: ModifyScalingConfiguration
Parameters:
RegionId: '{{ regionId }}'
ScalingConfigurationId: '{{ ACS::TaskLoopItem }}'
ImageId: '{{ createImage.imageId }}'
Loop:
Items: '{{ scalingConfigurationIds }}'
- Name: updateLaunchTemplate
Action: 'ACS::ECS::UpdateLaunchTemplate'
Description:
en: Perbarui templat peluncuran instance
zh-cn: deskripsi dalam bahasa Cina
Properties:
regionId: '{{ regionId }}'
imageId: '{{ createImage.imageId }}'
launchTemplateName: '{{ ACS::TaskLoopItem }}'
Loop:
Items: '{{ launchTemplateNames }}'
Outputs:
imageIds:
Type: List
Value: '{{ createImage.imageId }}'
imageIdAndRegion:
Type: List
Value:
'Fn::If':
- 'Fn::Equals':
- all-regions
- '{{ queryAllAvailableRegions.allRegionsChosen }}'
- '{{ copyImageToAllRegions.imageIdsWithRegion }}'
- '{{ copyImage.imageIdsWithRegion }}'
Metadata:
ALIYUN::OOS::Interface:
ParameterGroups:
- Parameters:
- regionId
- instanceId
Label:
default:
zh-cn: deskripsi dalam bahasa Cina
en: Pilih Instance ECS
- Parameters:
- targetImageName
- tags
Label:
default:
zh-cn: deskripsi dalam bahasa Cina
en: Konfigurasi Citra
- Parameters:
- commandType
- commandContent
Label:
default:
zh-cn: deskripsi dalam bahasa Cina
en: Jalankan Perintah
- Parameters:
- targetRegionIds
- accountIds
Label:
default:
zh-cn: deskripsi dalam bahasa Cina
en: Salin Citra
- Parameters:
- scalingConfigurationIds
- launchTemplateNames
- rateControl
- OOSAssumeRole
Label:
default:
zh-cn: deskripsi dalam bahasa Cina
en: Opsi Kontrol