Nama template
ACS-ESS-UpdateScalingConfigurationImage: Memperbarui citra pada konfigurasi penskalaan
Deskripsi template
Memperbarui citra Elastic Compute Service (ECS) yang ada, membuat citra ECS baru, dan memperbarui ID citra dalam konfigurasi penskalaan.
Tipe template
Otomatis
Pemilik
Alibaba Cloud
Parameter input
Parameter | Deskripsi | Tipe | Diperlukan | Nilai default | Batasan |
sourceImageId | ID citra sumber. | String | Ya | ||
securityGroupId | ID grup keamanan. | String | Ya | ||
vSwitchId | ID vSwitch. | String | Ya | ||
commandContent | Konten dari perintah Cloud Assistant. | String | Ya | ||
scalingConfigurationIds | ID konfigurasi penskalaan yang akan dimodifikasi. | List | Ya | ||
regionId | ID wilayah. | String | Tidak | {{ ACS::RegionId }} | |
targetImageName | Nama citra baru. | String | Tidak | UpdateImage_from_{{ sourceImageId }}_on_{{ ACS::ExecutionId }} | |
instanceType | Tipe instance ECS. | String | Tidak | ecs.g5.large | Nilai harus sesuai dengan ekspresi reguler: ecs\.[A-Za-z0-9\.\-]* |
commandType | Tipe perintah Cloud Assistant. | String | Tidak | RunShellScript | |
tags | Tag citra. | Json | Tidak | [] | |
OOSAssumeRole | Peran Resource Access Management (RAM) yang diasumsikan oleh CloudOps Orchestration Service (OOS). | String | Tidak | "" |
Parameter output
Parameter | Deskripsi | Tipe |
imageId | String |
Kebijakan yang diperlukan untuk mengeksekusi 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": [
"ess:ModifyScalingConfiguration"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Detail
ACS-ESS-UpdateScalingConfigurationImage
Konten Template
FormatVersion: OOS-2019-06-01
Description:
en: Memperbarui citra ECS yang ada melalui ECS Cloud Assistant lalu membuat citra ECS dan memperbarui ID citra dalam konfigurasi penskalaan
name-en: ACS-ESS-UpdateScalingConfigurationImage
categories:
- elastic_manage
Parameters:
regionId:
Type: String
Label:
en: RegionId
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
targetImageName:
Label:
en: NewImageName
Type: String
Default: UpdateImage_from_{{ sourceImageId }}_on_{{ ACS::ExecutionId }}
sourceImageId:
Label:
en: SourceImageId
Type: String
AssociationProperty: 'ALIYUN::ECS::Image::ImageId'
AssociationPropertyMetadata:
RegionId: regionId
instanceType:
Label:
en: InstanceType
Type: String
AssociationProperty: 'ALIYUN::ECS::Instance::InstanceType'
AllowedPattern: ecs\.[A-Za-z0-9\.\-]*
Default: 'ecs.g5.large'
securityGroupId:
Label:
en: SecurityGroupId
Type: String
AssociationProperty: 'ALIYUN::ECS::SecurityGroup::SecurityGroupId'
AssociationPropertyMetadata:
RegionId: regionId
vSwitchId:
Label:
en: VSwitchId
Type: String
AssociationProperty: 'ALIYUN::VPC::VSwitch::VSwitchId'
AssociationPropertyMetadata:
RegionId: regionId
Filters:
- SecurityGroupId: securityGroupId
commandType:
Label:
en: CommandType
Type: String
AllowedValues:
- RunBatScript
- RunPowerShellScript
- RunShellScript
Default: RunShellScript
commandContent:
Label:
en: CommandContent
Type: String
AssociationProperty: Code
scalingConfigurationIds:
Label:
en: ScalingConfigurationIds
Type: List
tags:
Label:
en: ImageTags
Type: Json
AssociationProperty: Tags
AssociationPropertyMetadata:
ShowSystem: false
Default: []
OOSAssumeRole:
Label:
en: OOSAssumeRole
Type: String
Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: checkNewImageName
Action: ACS::CheckFor
Description:
en: Periksa nama citra tersedia
Properties:
Service: ECS
API: DescribeImages
Parameters:
RegionId: '{{ regionId }}'
ImageName: '{{ targetImageName }}'
DesiredValues:
- 0
PropertySelector: TotalCount
- Name: runInstances
Action: ACS::ECS::RunInstances
Description:
en: Buat instance ECS dengan citra sumber
Properties:
regionId: '{{ regionId }}'
imageId: '{{ sourceImageId }}'
instanceType: '{{ instanceType }}'
securityGroupId: '{{ securityGroupId }}'
vSwitchId: '{{ vSwitchId }}'
Outputs:
instanceId:
ValueSelector: instanceIds[0]
Type: String
- Name: installCloudAssistant
Action: ACS::ECS::InstallCloudAssistant
Description:
en: Instal cloud assistant untuk instance ECS
OnError: deleteInstance
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ runInstances.instanceId }}'
- Name: runCommand
Action: ACS::ECS::RunCommand
Description:
en: Jalankan perintah cloud assistant pada instance ECS
OnError: deleteInstance
Properties:
regionId: '{{ regionId }}'
commandContent: '{{ commandContent }}'
commandType: '{{ commandType }}'
instanceId: '{{ runInstances.instanceId }}'
- Name: stopInstance
Action: ACS::ECS::StopInstance
Description:
en: Menghentikan instance ECS
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ runInstances.instanceId }}'
- Name: createImage
Action: ACS::ECS::CreateImage
Description:
en: Buat citra baru dengan nama citra dan ID instance yang ditentukan
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 instance ECS
Properties:
Service: ECS
API: DeleteInstance
Risk: Normal
Parameters:
RegionId: '{{ regionId }}'
InstanceId: '{{ runInstances.instanceId }}'
Force: true
- Name: modifyScalingConfiguration
Action: ACS::ExecuteAPI
Description:
en: Modifikasi konfigurasi penskalaan
Properties:
Service: ESS
API: ModifyScalingConfiguration
Parameters:
RegionId: '{{ regionId }}'
ScalingConfigurationId: '{{ ACS::TaskLoopItem }}'
ImageId: '{{ createImage.imageId }}'
Loop:
Items: '{{ scalingConfigurationIds }}'
Outputs:
imageId:
Type: String
Value: '{{ createImage.imageId }}'