Nama Template
ACS-ECS-UpdateImage
Deskripsi Template
Menjalankan perintah untuk membuat citra Elastic Compute Service (ECS) baru dengan memperbarui citra ECS yang sudah ada. Ini berlaku untuk skenario di mana Anda ingin memperbarui dan mengelola citra ECS secara massal, seperti instalasi aplikasi dan perubahan konfigurasi sistem. Selama proses konfigurasi, Anda harus memberikan informasi berikut: regionId: wilayah tempat citra dibuat dan diperbarui, serta sourceImageId: ID citra ECS asli. Parameter yang dapat dimodifikasi meliputi targetImageName: nama citra ECS yang akan dibuat, instanceType: tipe instans citra, dan updateType: jenis pembaruan. Setelah template dieksekusi, ID citra yang dibuat akan dikembalikan untuk memfasilitasi verifikasi dan pengelolaan citra.
Jenis Template
Otomatis
Pemilik
Alibaba Cloud
Parameter Masukan
Parameter | Deskripsi | Tipe | Diperlukan | Nilai Default | Batasan |
sourceImageId | ID citra sumber. | String | Ya | ||
instanceType | Tipe instans dari Instance ECS. | String | Ya | ||
regionId | ID wilayah. | String | Tidak | {{ ACS::RegionId }} | |
zoneId | Zona tempat vSwitch ditempatkan. | String | Tidak | "" | |
targetImageName | Nama citra baru. | String | Tidak | UpdateImage_from_{{sourceImageId}}on{{ACS::ExecutionId}} | |
whetherCreateVpc | Menentukan apakah akan membuat virtual private cloud (VPC). | Boolean | Tidak | False | |
vpcCidrBlock | Blok CIDR IPv4 dari VPC. | String | Tidak | 192.168.0.0/16 | |
vSwitchCidrBlock | Blok CIDR dari vSwitch. | String | Tidak | 192.168.1.0/24 | |
securityGroupId | ID grup keamanan. | String | Tidak | "" | |
vSwitchId | ID vSwitch. | String | Tidak | "" | |
internetMaxBandwidthOut | Bandwidth publik. | Number | Tidak | 0 | |
ramRoleName | Peran Resource Access Management (RAM) yang ditetapkan pada Instance ECS. | String | Tidak | "" | |
systemDiskCategory | Kategori disk sistem. | String | Tidak | cloud_essd | |
commandType | Tipe perintah Cloud Assistant. | String | Tidak | RunShellScript | |
tags | Tag dari citra. | Json | Tidak | [] | |
commandContent | Perintah Cloud Assistant yang akan dijalankan pada Instance ECS. | String | Tidak | echo hello | |
timeout | Periode timeout. | Number | Tidak | 600 | |
updateType | Metode yang digunakan untuk memperbarui citra. | String | Tidak | RunCommand | |
packageName | Nama paket perangkat lunak yang akan diinstal. | String | Tidak | "" | |
packageVersion | Versi paket perangkat lunak yang akan diinstal. | String | Tidak | "" | |
parameters | Parameter dalam perintah. | Json | Tidak | {} | |
OOSAssumeRole | Peran RAM yang diasumsikan oleh CloudOps Orchestration Service (OOS). | String | Tidak | "" |
Parameter Keluaran
Parameter | Deskripsi | Tipe |
imageId | String |
Kebijakan Izin yang Diperlukan untuk Menjalankan Template
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:CreateImage",
"ecs:DeleteInstance",
"ecs:DescribeCloudAssistantStatus",
"ecs:DescribeImages",
"ecs:DescribeInstances",
"ecs:DescribeInvocationResults",
"ecs:DescribeInvocations",
"ecs:InstallCloudAssistant",
"ecs:RebootInstance",
"ecs:RunCommand",
"ecs:RunInstances",
"ecs:StopInstance"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ros:CreateStack",
"ros:DeleteStack",
"ros:GetStack"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"oos:GetTemplate",
"oos:UpdateInstancePackageState"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"oss:GetObject"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Referensi
Untuk informasi lebih lanjut, lihat ACS-ECS-UpdateImage.yml di GitHub.
Konten Template
FormatVersion: OOS-2019-06-01
Description:
en: en: 'Memperbarui citra ECS yang sudah ada dengan menjalankan perintah dan membuat citra ECS baru. Ini berlaku untuk skenario yang memerlukan pembaruan dan pengelolaan citra ECS secara massal, seperti instalasi perangkat lunak dan perubahan konfigurasi sistem. Selama konfigurasi, pengguna perlu menyediakan parameter wajib berikut: Region ID (regionId), yang menentukan wilayah tempat operasi pembuatan dan pembaruan citra terjadi, dan Source Image ID (sourceImageId), yang mengidentifikasi citra ECS asli yang perlu diperbarui. Parameter tambahan yang dapat dimodifikasi dari nilai defaultnya meliputi: Target Image Name (targetImageName) untuk penamaan citra ECS baru, Instance Type (instanceType) untuk tipe instans tempat menginstal dan mengonfigurasi citra baru, dan Update Type (updateType), yang dapat dipilih untuk menjalankan perintah atau menginstal paket. Setelah eksekusi, template akan mengembalikan ID citra baru yang dibuat, memudahkan verifikasi dan pengelolaan citra ECS yang dibuat.'
zh-cn: deskripsi dalam bahasa Cina
name-en: Perbarui Citra
name-zh-cn: deskripsi dalam bahasa Cina
categories:
- image_manage
- application_manage
Parameters:
regionId:
Type: String
Label:
en: RegionId
zh-cn: deskripsi dalam bahasa Cina
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
zoneId:
Type: String
Label:
en: Zona Ketersediaan VSwitch
zh-cn: deskripsi dalam bahasa Cina
Default: ''
AssociationProperty: ALIYUN::ECS::Instance::ZoneId
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, bukan 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: 'UpdateImage_from_{{sourceImageId}}_on_{{ACS::ExecutionId}}'
sourceImageId:
Label:
en: SourceImageId
zh-cn: deskripsi dalam bahasa Cina
Type: String
AssociationProperty: 'ALIYUN::ECS::Image::ImageId'
AssociationPropertyMetadata:
RegionId: regionId
ImageOwnerAlias:
- self
instanceType:
Label:
en: InstanceType
zh-cn: deskripsi dalam bahasa Cina
Type: String
AssociationProperty: 'ALIYUN::ECS::Instance::InstanceType'
AssociationPropertyMetadata:
RegionId: regionId
ZoneId: zoneId
whetherCreateVpc:
Type: Boolean
Label:
en: WhetherCreateVpc
zh-cn: deskripsi dalam bahasa Cina
Default: false
vpcCidrBlock:
Type: String
Label:
en: Blok CIDR IPv4 VPC
zh-cn: deskripsi dalam bahasa Cina
Description:
zh-cn: deskripsi dalam bahasa Cina
en: 'Rentang alamat IP dari VPC dalam bentuk CidrBlock; <br>Anda dapat menggunakan rentang alamat IP berikut dan subnet mereka: <br><font color=''green''>[10.0.0.0/8]</font><br><font color=''green''>[172.16.0.0/12]</font><br><font color=''green''>[192.168.0.0/16]</font>'
Default: 192.168.0.0/16
AssociationProperty: ALIYUN::VPC::VPC::CidrBlock
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Equals:
- ${whetherCreateVpc}
- true
vSwitchCidrBlock:
Type: String
Label:
en: Blok CIDR VSwitch
zh-cn: deskripsi dalam bahasa Cina
Description:
zh-cn: deskripsi dalam bahasa Cina
en: Harus termasuk dalam segmen subnet VPC
Default: 192.168.1.0/24
AssociationProperty: ALIYUN::VPC::VSwitch::CidrBlock
AssociationPropertyMetadata:
VpcCidrBlock: vpcCidrBlock
Visible:
Condition:
Fn::Equals:
- ${whetherCreateVpc}
- true
securityGroupId:
Label:
en: SecurityGroupId
zh-cn: deskripsi dalam bahasa Cina
Type: String
Default: ''
AssociationProperty: 'ALIYUN::ECS::SecurityGroup::SecurityGroupId'
AssociationPropertyMetadata:
RegionId: regionId
Visible:
Condition:
Fn::Equals:
- ${whetherCreateVpc}
- false
vSwitchId:
Label:
en: VSwitchId
zh-cn: deskripsi dalam bahasa Cina
Type: String
Default: ''
AssociationProperty: 'ALIYUN::VPC::VSwitch::VSwitchId'
AssociationPropertyMetadata:
RegionId: regionId
ZoneId: zoneId
Filters:
- SecurityGroupId: securityGroupId
Visible:
Condition:
Fn::Equals:
- ${whetherCreateVpc}
- false
internetMaxBandwidthOut:
Type: Number
Label:
zh-cn: deskripsi dalam bahasa Cina
en: Bandwidth Publik Maksimum
Description:
zh-cn: deskripsi dalam bahasa Cina
en: tidak ada ip publik jika nol
Default: 0
MinValue: 0
MaxValue: 100
ramRoleName:
Label:
en: RamRoleName
zh-cn: deskripsi dalam bahasa Cina
Type: String
AssociationProperty: ALIYUN::ECS::RAM::Role
Default: ''
systemDiskCategory:
Label:
en: SystemDiskCategory
zh-cn: deskripsi dalam bahasa Cina
Type: String
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
RegionId: regionId
InstanceType: instanceType
Default: cloud_essd
commandType:
Label:
en: CommandType
zh-cn: deskripsi dalam bahasa Cina
Type: String
AssociationPropertyMetadata:
LocaleKey: PricingCycle
Visible:
Condition:
Fn::Equals:
- ${updateType}
- RunCommand
AllowedValues:
- RunBatScript
- RunPowerShellScript
- RunShellScript
Default: RunShellScript
tags:
Label:
en: Tags
zh-cn: deskripsi dalam bahasa Cina
Type: Json
AssociationProperty: Tags
AssociationPropertyMetadata:
ShowSystem: false
Default: []
commandContent:
Label:
en: CommandContent
zh-cn: deskripsi dalam bahasa Cina
Type: String
AssociationProperty: Code
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Equals:
- ${updateType}
- RunCommand
Default: 'echo hello'
timeout:
Label:
en: Timeout
zh-cn: deskripsi dalam bahasa Cina
Type: Number
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Equals:
- ${updateType}
- RunCommand
Default: 600
updateType:
Label:
en: UpdateType
zh-cn: deskripsi dalam bahasa Cina
Type: String
AllowedValues:
- RunCommand
- InstallPackage
Default: RunCommand
AssociationPropertyMetadata:
ValueLabelMapping:
RunCommand:
zh-cn: deskripsi dalam bahasa Cina
en: RunCommand
InstallPackage:
zh-cn: deskripsi dalam bahasa Cina
en: InstallPackage
packageName:
Label:
en: packageName
zh-cn: deskripsi dalam bahasa Cina
Type: String
Default: ''
AssociationProperty: 'ALIYUN::OOS::Package::PackageName'
AssociationPropertyMetadata:
RegionId: regionId
Visible:
Condition:
Fn::Equals:
- ${updateType}
- InstallPackage
packageVersion:
Label:
en: packageVersion
zh-cn: deskripsi dalam bahasa Cina
Type: String
AssociationProperty: 'ALIYUN::OOS::Package::PackageVersion'
AssociationPropertyMetadata:
TemplateName: ${packageName}
Visible:
Condition:
Fn::Equals:
- ${updateType}
- InstallPackage
Default: ''
parameters:
Label:
en: Parameters
zh-cn: deskripsi dalam bahasa Cina
Type: Json
Default: {}
AssociationProperty: TemplateParameter
AssociationPropertyMetadata:
TemplateName: packageName
TemplateVersion: packageVersion
TemplateType: Package
Visible:
Condition:
Fn::Equals:
- ${updateType}
- InstallPackage
OOSAssumeRole:
Label:
en: OOSAssumeRole
zh-cn: deskripsi dalam bahasa Cina
Type: String
Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: checkNewImageName
Action: ACS::CheckFor
Description:
en: Periksa apakah nama citra tersedia
zh-cn: deskripsi dalam bahasa Cina
Properties:
Service: ECS
API: DescribeImages
Parameters:
RegionId: '{{ regionId }}'
ImageName: '{{ targetImageName }}'
DesiredValues:
- 0
PropertySelector: TotalCount
- Name: createStack
Action: 'ACS::ExecuteAPI'
When:
Fn::Equals:
- '{{ whetherCreateVpc }}'
- true
Description:
en: Buat tumpukan sumber daya
zh-cn: deskripsi dalam bahasa Cina
Properties:
Service: ROS
API: CreateStack
Parameters:
RegionId: '{{ regionId }}'
StackName: 'OOS-{{ACS::ExecutionId}}'
TimeoutInMinutes: 10
DisableRollback: false
Parameters:
- ParameterKey: ZoneId
ParameterValue: '{{ zoneId }}'
- ParameterKey: VpcCidrBlock
ParameterValue: '{{ vpcCidrBlock }}'
- ParameterKey: VSwitchCidrBlock
ParameterValue: '{{ vSwitchCidrBlock }}'
TemplateBody: |
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
ZoneId:
Type: String
VpcCidrBlock:
Type: String
VSwitchCidrBlock:
Type: String
Resources:
EcsVpc:
Type: ALIYUN::ECS::VPC
Properties:
CidrBlock:
Ref: VpcCidrBlock
VpcName:
Ref: ALIYUN::StackName
EcsVSwitch:
Type: ALIYUN::ECS::VSwitch
Properties:
ZoneId:
Ref: ZoneId
VpcId:
Ref: EcsVpc
CidrBlock:
Ref: VSwitchCidrBlock
EcsSecurityGroup:
Type: ALIYUN::ECS::SecurityGroup
Properties:
VpcId:
Ref: EcsVpc
Outputs:
SecurityGroupId:
Value:
Ref: EcsSecurityGroup
VSwitchId:
Value:
Ref: EcsVSwitch
Outputs:
StackId:
Type: String
ValueSelector: StackId
- Name: untilStackReady
Action: 'ACS::WaitFor'
When:
Fn::Equals:
- '{{ whetherCreateVpc }}'
- true
Description:
en: Tunggu status tumpukan CREATE_COMPLETE
zh-cn: deskripsi dalam bahasa Cina
OnError: deleteStack
Properties:
Service: ROS
API: GetStack
Parameters:
RegionId: '{{ regionId }}'
StackId: '{{createStack.StackId}}'
DesiredValues:
- CREATE_COMPLETE
StopRetryValues:
- CREATE_FAILED
- CHECK_FAILED
- ROLLBACK_FAILED
- ROLLBACK_COMPLETE
- CREATE_ROLLBACK_COMPLETE
PropertySelector: Status
Outputs:
securityGroupId:
Type: String
ValueSelector: 'Outputs[0].OutputValue'
vSwitchId:
Type: String
ValueSelector: 'Outputs[1].OutputValue'
- Name: runInstances
Action: ACS::ECS::RunInstances
Description:
en: Buat instans ECS dengan citra sumber
zh-cn: deskripsi dalam bahasa Cina
OnError: deleteStack
Properties:
regionId: '{{ regionId }}'
imageId: '{{ sourceImageId }}'
instanceType: '{{ instanceType }}'
securityGroupId:
Fn::If:
- Fn::Equals:
- '{{ whetherCreateVpc }}'
- true
- '{{ untilStackReady.securityGroupId }}'
- '{{ securityGroupId }}'
vSwitchId:
Fn::If:
- Fn::Equals:
- '{{ whetherCreateVpc }}'
- true
- '{{ untilStackReady.vSwitchId }}'
- '{{ vSwitchId }}'
internetMaxBandwidthOut: '{{ internetMaxBandwidthOut }}'
ramRoleName: '{{ ramRoleName }}'
systemDiskCategory: '{{ systemDiskCategory }}'
Outputs:
instanceId:
ValueSelector: instanceIds[0]
Type: String
- Name: installCloudAssistant
Action: ACS::ECS::InstallCloudAssistant
Description:
en: Instal asisten cloud untuk instans ECS
zh-cn: deskripsi dalam bahasa Cina
OnError: deleteInstance
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ runInstances.instanceId }}'
- Name: runCommand
Action: ACS::ECS::RunCommand
When:
Fn::Equals:
- '{{ updateType }}'
- RunCommand
Description:
en: Jalankan perintah asisten cloud pada instans ECS
zh-cn: deskripsi dalam bahasa Cina
OnError: deleteInstance
Properties:
regionId: '{{ regionId }}'
commandContent: '{{ commandContent }}'
commandType: '{{ commandType }}'
instanceId: '{{ runInstances.instanceId }}'
timeout: '{{ timeout }}'
- Name: configurePackage
Action: ACS::ECS::ConfigureOOSPackageWithTemporaryURL
Description:
en: Konfigurasi Paket
zh-cn: deskripsi dalam bahasa Cina
When:
Fn::Equals:
- '{{ updateType }}'
- InstallPackage
OnError: deleteInstance
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ runInstances.instanceId }}'
packageName: '{{ packageName }}'
packageVersion: '{{ packageVersion }}'
parameters: '{{ parameters }}'
Outputs:
commandOutput:
Type: String
ValueSelector: .commandOutput
- Name: stopInstance
Action: ACS::ECS::StopInstance
Description:
en: Menghentikan instans ECS
zh-cn: deskripsi dalam bahasa Cina
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ runInstances.instanceId }}'
- Name: createImage
Action: ACS::ECS::CreateImage
Description:
en: Buat citra baru dengan nama citra dan ID instans yang ditentukan
zh-cn: deskripsi dalam bahasa Cina
OnError: deleteInstance
Properties:
regionId: '{{ regionId }}'
imageName: '{{ targetImageName }}'
instanceId: '{{ runInstances.instanceId }}'
tags: '{{tags}}'
Outputs:
imageId:
ValueSelector: imageId
Type: String
- Name: deleteInstance
Action: ACS::ExecuteAPI
Description:
en: Menghapus instans ECS
zh-cn: deskripsi dalam bahasa Cina
Properties:
Service: ECS
API: DeleteInstance
Risk: Normal
Parameters:
RegionId: '{{ regionId }}'
InstanceId: '{{ runInstances.instanceId }}'
Force: true
- Name: deleteStack
Action: 'ACS::ExecuteApi'
When:
Fn::Equals:
- '{{ whetherCreateVpc }}'
- true
Description:
en: Hapus tumpukan
zh-cn: deskripsi dalam bahasa Cina
Properties:
Service: ROS
API: DeleteStack
Parameters:
RegionId: '{{ regionId }}'
StackId: '{{ createStack.StackId }}'
Outputs:
imageId:
Type: String
Value: '{{ createImage.imageId }}'
Metadata:
ALIYUN::OOS::Interface:
ParameterGroups:
- Parameters:
- regionId
- sourceImageId
Label:
default:
zh-cn: deskripsi dalam bahasa Cina
en: Pilih Citra Asli
- Parameters:
- targetImageName
- tags
Label:
default:
zh-cn: deskripsi dalam bahasa Cina
en: Konfigurasi Citra
- Parameters:
- zoneId
- instanceType
- whetherCreateVpc
- vpcCidrBlock
- vSwitchCidrBlock
- securityGroupId
- vSwitchId
- internetMaxBandwidthOut
- systemDiskCategory
- ramRoleName
Label:
default:
zh-cn: deskripsi dalam bahasa Cina
en: Konfigurasi Instans ECS
- Parameters:
- updateType
- packageName
- packageVersion
- parameters
- commandType
- commandContent
- timeout
Label:
default:
zh-cn: deskripsi dalam bahasa Cina
en: Konfigurasi Pembaruan Citra
- Parameters:
- OOSAssumeRole
Label:
default:
zh-cn: deskripsi dalam bahasa Cina
en: Opsi Kontrol