全部产品
Search
文档中心

CloudOps Orchestration Service:ACS-ECS-UpdateAndCopyImage

更新时间:Jun 28, 2025

Nama Template

ACS-ECS-UpdateAndCopyImage

Eksekusi Sekarang

Deskripsi Template

Memperbarui citra Elastic Compute Service (ECS) dan mengkloning citra ECS ke wilayah lain. Template ini digunakan dalam skenario di mana Anda ingin memperbarui dan menyinkronkan citra ECS di beberapa wilayah, seperti pembaruan perangkat lunak dan konfigurasi sistem. Saat mengonfigurasi template ini, Anda harus menentukan parameter berikut: regionId (wilayah tempat citra dibuat dan diperbarui), sourceImageId (ID citra ECS asli), dan targetImageName (nama citra yang akan dibuat). Selain itu, Anda juga perlu menentukan instanceType (tipe instans dari citra yang akan dibuat) dan targetRegionIds (ID wilayah ke mana citra dikloning). Setelah template dieksekusi, ID citra yang dibuat akan dikembalikan untuk memfasilitasi verifikasi dan pengelolaan citra.

Tipe Template

Otomatis

Pemilik

Alibaba Cloud

Parameter Input

Parameter

Deskripsi

Tipe

Diperlukan

Nilai default

Batas

sourceImageId

ID citra sumber.

String

Ya

regionId

ID wilayah.

String

Tidak

{{ ACS::RegionId }}

zoneId

ID zona di mana vSwitch ditempatkan.

String

Tidak

""

targetImageName

Nama citra ECS baru.

String

Tidak

UpdateImage_from_{{sourceImageId}}on{{ACS::ExecutionId}}

instanceType

Tipe instans dari instans ECS.

String

Tidak

ecs.g5.large

Ekspresi reguler untuk validasi string: ecs.[A-Za-z0-9.-]*.

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 dilampirkan pada instans ECS.

String

Tidak

""

systemDiskCategory

Kategori disk sistem.

String

Tidak

cloud_essd

tags

Tag dari citra.

Json

Tidak

[]

commandType

Tipe perintah Cloud Assistant.

String

Tidak

RunShellScript

commandContent

Perintah Cloud Assistant yang akan dijalankan pada instans ECS.

String

Tidak

echo hello

timeout

Periode timeout.

Number

Tidak

600

targetRegionIds

ID wilayah tujuan.

List

Tidak

[]

accountIds

ID akun Alibaba Cloud dengan siapa Anda ingin berbagi citra.

List

Tidak

[]

scalingConfigurationIds

ID konfigurasi penskalaan yang akan dimodifikasi.

List

Tidak

[]

launchTemplateNames

Nama template peluncuran instans yang akan diperbarui.

List

Tidak

[]

rateControl

Pengaturan kontrol laju.

Json

Tidak

{'Mode': 'Concurrency', 'MaxErrors': 0, 'Concurrency': 5}

OOSAssumeRole

Peran RAM yang diasumsikan oleh CloudOps Orchestration Service (OOS).

String

Tidak

""

Parameter Output

Parameter

Deskripsi

Tipe

updatedImageId

String

imageIdAndRegion

List

Kebijakan izin yang diperlukan untuk mengeksekusi template

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ros:CreateStack",
                "ros:DeleteStack",
                "ros:GetStack"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ecs:CopyImage",
                "ecs:CreateImage",
                "ecs:CreateLaunchTemplateVersion",
                "ecs:DeleteInstance",
                "ecs:DeleteLaunchTemplateVersion",
                "ecs:DescribeCloudAssistantStatus",
                "ecs:DescribeImages",
                "ecs:DescribeInstances",
                "ecs:DescribeInvocationResults",
                "ecs:DescribeInvocations",
                "ecs:DescribeLaunchTemplateVersions",
                "ecs:DescribeLaunchTemplates",
                "ecs:DescribeRegions",
                "ecs:InstallCloudAssistant",
                "ecs:ModifyImageSharePermission",
                "ecs:ModifyLaunchTemplateDefaultVersion",
                "ecs:RebootInstance",
                "ecs:RunCommand",
                "ecs:RunInstances",
                "ecs:StopInstance"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ess:ModifyScalingConfiguration"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

Referensi

Untuk informasi lebih lanjut, lihat ACS-ECS-UpdateAndCopyImage.yml di GitHub.

Konten Template

FormatVersion: OOS-2019-06-01
Description:
  name-en: ACS-ECS-UpdateAndCopyImage
  name-zh-cn: deskripsi dalam bahasa Cina
  en: 'Memperbarui citra ECS yang ada melalui ECS Cloud Assistant kemudian membuat citra ECS dan menyalin citra baru ke wilayah lain. Ini berlaku untuk skenario yang memerlukan pembaruan dan sinkronisasi citra ECS di beberapa wilayah, seperti peningkatan perangkat lunak dan konfigurasi sistem. Selama konfigurasi, pengguna perlu memberikan informasi parameter wajib berikut: Region ID (regionId), yang menentukan wilayah instans ECS untuk operasi pembaruan dan pembuatan, Source Image ID (sourceImageId), yang mengidentifikasi citra ECS asli yang perlu diperbarui, dan Target Image Name (targetImageName), untuk menamai citra ECS baru yang dibuat. Selain itu, pengguna perlu mengonfigurasi Tipe Instans (instanceType) untuk pemasangan dan konfigurasi citra baru, dan Target Region IDs (targetRegionIds), yang menentukan wilayah lain untuk mengkloning citra baru. Setelah eksekusi, template akan mengembalikan ID citra baru dan kloning, memfasilitasi verifikasi status pembaruan dan pengkloningan citra.'
  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 }}'
  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">Panjangnya 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
  instanceType:
    Label:
      en: InstanceType
      zh-cn: deskripsi dalam bahasa Cina
    Type: String
    AssociationProperty: 'ALIYUN::ECS::Instance::InstanceType'
    AssociationPropertyMetadata:
      RegionId: regionId
      ZoneId: zoneId
    AllowedPattern: ecs\.[A-Za-z0-9\.\-]*
    Default: 'ecs.g5.large'
  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; 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 Keluar Internet 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
  tags:
    Label:
      en: Tags
      zh-cn: deskripsi dalam bahasa Cina
    Type: Json
    AssociationProperty: Tags
    AssociationPropertyMetadata:
      ShowSystem: false
    Default: []
  commandType:
    Label:
      en: CommandType
      zh-cn: deskripsi dalam bahasa Cina
    Type: String
    AllowedValues:
      - RunBatScript
      - RunPowerShellScript
      - RunShellScript
    Default: RunShellScript
  commandContent:
    Label:
      en: CommandContent
      zh-cn: deskripsi dalam bahasa Cina
    Type: String
    AssociationProperty: Code
    Default: 'echo hello'
  timeout:
    Label:
      en: Timeout
      zh-cn: deskripsi    Type: Number
    Default: 600
  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'><b>Harus sesuai dengan wilayah yang dipilih</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: []
  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: 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
  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: 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 }}'
    tags: '{{tags}}'
    imageName: '{{ targetImageName }}-{{ ACS::CurrentUTCTime }}'
    instanceId: '{{ runInstances.instanceId }}'
  Outputs:
    imageId:
      ValueSelector: imageId
      Type: String
- Name: deleteInstanceAfterUpdateImageSuccessfully
  Action: ACS::ExecuteAPI
  Description:
    en: Lepas instans setelah pembaruan citra berhasil
    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 }}'
- 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("{{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
  OnError: 'ACS::END'
  Description:
    en: Salin citra ke wilayah yang dipilih
    zh-cn: deskripsi dalam bahasa Cina
  Properties:
    regionId: '{{ regionId }}'
    imageId: '{{ createImage.imageId }}'
    targetRegionId: '{{ ACS::TaskLoopItem }}'
    targetImageName: '{{ targetImageName }}-{{ ACS::CurrentUTCTime }}'
  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 }}'
    targetRegionId: '{{ ACS::TaskLoopItem }}'
    targetImageName: '{{ targetImageName }}-{{ ACS::CurrentUTCTime }}'
  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: Bagikan 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'
  OnSuccess: ACS::END
  Description:
    en: Perbarui template peluncuran instans
    zh-cn: deskripsi dalam bahasa Cina
  Properties:
    regionId: '{{ ACS::RegionId }}'
    imageId: '{{ createImage.imageId }}'
    launchTemplateName: '{{ ACS::TaskLoopItem }}'
  Loop:
    Items: '{{ launchTemplateNames }}'
- Name: deleteInstance
  Action: ACS::ExecuteAPI
  Description:
    en: Hapus instans ECS setelah pembaruan citra gagal
    zh-cn: deskripsi dalam bahasa Cina
  Properties:
    Service: ECS
    API: DeleteInstance
    Risk: Normal
    Parameters:
      RegionId: '{{ regionId }}'
      InstanceId: '{{ runInstances.instanceId }}'
      Force: true
Outputs:
  updatedImageId:
    Type: String
    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
          - zoneId
          - sourceImageId
        Label:
          default:
            zh-cn: deskripsi dalam bahasa Cina
            en: Pilih Citra Asal
      - Parameters:
          - targetImageName
          - tags
        Label:
          default:
            zh-cn: deskripsi dalam bahasa Cina
            en: Konfigurasi Citra
      - Parameters:
          - instanceType
          - whetherCreateVpc
          - vpcCidrBlock
          - vSwitchCidrBlock
          - securityGroupId
          - vSwitchId
          - internetMaxBandwidthOut
          - systemDiskCategory
          - ramRoleName
        Label:
          default:
            zh-cn: deskripsi dalam bahasa Cina
            en: Konfigurasi Instans ECS
      - Parameters:
          - commandType
          - commandContent
          - timeout
        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