全部产品
Search
文档中心

CloudOps Orchestration Service:ACS-ECS-BuatDanSalinCitra

更新时间:Jun 28, 2025

Nama Template

ACS-ECS-BuatDanSalinCitra

Eksekusi Sekarang

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