All Products
Search
Document Center

Compute Nest:Buat dan verifikasi template ROS

Last Updated:Jun 28, 2025

Saat membuat layanan di Compute Nest sebagai penyedia layanan, Anda harus mengimpor template. Anda dapat membuat template terlebih dahulu, lalu menyalin kontennya ke editor kode Konten Template di konsol Compute Nest atau mengunggahnya sebagai file untuk mengimpor. Topik ini menjelaskan cara membuat template JSON atau YAML serta memverifikasinya di konsol Resource Orchestration Service (ROS). Contoh ini menggunakan virtual private cloud (VPC).

Informasi latar belakang

Template di Compute Nest adalah template ROS. Anda dapat membuat template tumpukan berdasarkan spesifikasi yang didefinisikan di ROS. Dalam template, Anda dapat mendefinisikan sumber daya komputasi awan yang diperlukan, seperti Elastic Compute Service (ECS) dan instance ApsaraDB RDS, serta dependensi antar sumber daya tersebut. Mesin ROS secara otomatis membuat dan mengonfigurasi semua sumber daya dalam sebuah tumpukan berdasarkan template untuk mengotomatiskan penyebaran dan operasi & pemeliharaan. ROS adalah layanan dari Alibaba Cloud yang menyederhanakan manajemen sumber daya komputasi awan. Untuk informasi lebih lanjut, lihat Apa itu ROS?.

Buat template

ROS memungkinkan Anda membuat template JSON, YAML, atau Terraform. Anda dapat membuat template dengan menggunakan template contoh atau langsung membuatnya.

  • ROS menyediakan template contoh untuk skenario umum. Anda dapat membuat template dengan memodifikasi template contoh di halaman Template Contoh di konsol ROS. Template yang cocok untuk skenario penerapan perangkat lunak Independent Software Vendor (ISV) sering digunakan dalam skenario Compute Nest. Halaman detail setiap template menunjukkan cara memodifikasinya.

    Jika ingin membuat template dengan melakukan perubahan sederhana pada template contoh, kami sarankan Anda melanjutkan ke langkah Verifikasi Template di Konsol ROS. Anda dapat memilih dan memodifikasi template contoh saat membuat tumpukan untuk memverifikasi template.

  • Anda dapat menggunakan editor teks untuk membuat template untuk skenario kompleks.

Kode contoh berikut menunjukkan cara membuat template YAML untuk membuat instance ECS:

ROSTemplateFormatVersion: '2015-09-01'
# Parameter-parameter.
Parameters:
  PayType:
    Type: String
    Label:
      en: ECS Instance Charge Type
      zh-cn: deskripsi dalam bahasa Cina
    Default: PostPaid
    AllowedValues:
      - PostPaid
      - PrePaid
    AssociationProperty: ChargeType
    AssociationPropertyMetadata:
      LocaleKey: InstanceChargeType
  PayPeriodUnit:
    Type: String
    Label:
      en: Pay Period Unit
      zh-cn: deskripsi dalam bahasa Cina
    Default: Month
    AllowedValues:
      - Month
      - Year
    AssociationProperty: PayPeriodUnit
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Not:
            Fn::Equals:
              - ${PayType}
              - PostPaid
  PayPeriod:
    Type: Number
    Description:
      en: Saat durasi pembelian sumber daya adalah Bulan, nilai dari Periode berkisar antara 1 hingga 9, 12, 24, 36, 48, atau 60. <b><font color='red'> Saat jenis instance ECS adalah PrePaid valid </font>
      zh-cn: deskripsi dalam bahasa Cina
    Label:
      en: Period
      zh-cn: deskripsi dalam bahasa Cina
    Default: 1
    AllowedValues:
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      - 9
    AssociationProperty: PayPeriod
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Not:
            Fn::Equals:
              - ${PayType}
              - PostPaid
  EcsInstanceType:
    Type: String
    Label:
      en: Instance Type
      zh-cn: deskripsi dalam bahasa Cina
    AssociationProperty: ALIYUN::ECS::Instance::InstanceType
    AssociationPropertyMetadata:
      ZoneId: ${ZoneId}
      InstanceChargeType: ${InstanceChargeType}
  InstancePassword:
    NoEcho: true
    Type: String
    Description:
      en: Kata sandi login server, Panjang 8-30, harus mencakup tiga (Huruf besar, huruf kecil, angka, ()`~!@#$%^&*_-+=|{}[]:;<>,.?/ Simbol khusus di dalam)
      zh-cn: deskripsi dalam bahasa Cina
    Label:
      en: Instance Password
      zh-cn: deskripsi dalam bahasa Cina
    ConstraintDescription:
      en: Panjang 8-30, harus mencakup tiga (Huruf besar, huruf kecil, angka, ()`~!@#$%^&*_-+=|{}[]:;<>,.?/ Simbol khusus di dalam)
      zh-cn: deskripsi dalam bahasa Cina
    AssociationProperty: ALIYUN::ECS::Instance::Password
    AllowedPattern: '^[a-zA-Z0-9-\(\)\`\~\!\@\#\$\%\^\&\*\_\-\+\=\|\{\}\[\]\:\;\<\>\,\.\?\/]*$'
    MinLength: 8
    MaxLength: 30
  ZoneId:
    Type: String
    AssociationProperty: ALIYUN::ECS::Instance::ZoneId
    Label:
      en: Zona Ketersediaan VSwitch
      zh-cn: deskripsi dalam bahasa Cina
  VpcId:
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Type: String
    Description:
      en: Silakan cari ID yang dimulai dengan (vpc-xxx) dari konsol-Virtual Private Cloud
      zh-cn: deskripsi dalam bahasa Cina
    Label:
      en: VPC ID
      zh-cn: deskripsi dalam bahasa Cina
  VSwitchId:
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
      ZoneId: ${ZoneId}
    Type: String
    Description:
      en: ID switch jaringan bisnis yang ada, konsol-Virtual Private Cloud-VSwitches di bawah pencarian
      zh-cn: deskripsi dalam bahasa Cina
    Label:
      en: VSwitch ID
      zh-cn: deskripsi dalam bahasa Cina
# Sumber daya.
Resources:
  EcsSecurityGroup:
    Type: ALIYUN::ECS::SecurityGroup
    Properties:
      SecurityGroupName:
        Ref: ALIYUN::StackName
      VpcId:
        Ref: VpcId
      # Port masuk grup keamanan.
      SecurityGroupIngress:
        - PortRange: 80/80
          Priority: 1
          SourceCidrIp: 0.0.0.0/0
          IpProtocol: tcp
          NicType: internet
  EcsInstanceGroup:
    Type: ALIYUN::ECS::InstanceGroup
    Properties:
      # Nama instance.
      InstanceName:
        Fn::Join:
          - '-'
          - - Ref: ALIYUN::StackName
            - '[1,4]'
      IoOptimized: optimized
      # Metode penagihan.
      InstanceChargeType:
        Ref: PayType
      PeriodUnit:
        Ref: PayPeriodUnit
      Period:
        Ref: PayPeriod
      # Konfigurasi jaringan.
      VpcId:
        Ref: VpcId
      ZoneId:
        Ref: ZoneId
      VSwitchId:
        Ref: VSwitchId
      SecurityGroupId:
        Ref: EcsSecurityGroup
      # Jenis dan ukuran disk.
      SystemDiskCategory: cloud_essd
      SystemDiskSize: 200
      MaxAmount: 1
      # Gambar.
      ImageId: centos_7
      # Jenis instance.
      InstanceType:
        Ref: EcsInstanceType
      Password:
        Ref: InstancePassword
      # Aktifkan alamat IP publik.
      AllocatePublicIP: true
      # Bandwidth publik.
      InternetMaxBandwidthOut: 1
  ECSRunCommand:
    Type: ALIYUN::ECS::RunCommand
    Properties:
      InstanceIds:
        Fn::GetAtt:
          - EcsInstanceGroup
          - InstanceIds
      Type: RunShellScript
      Sync: true
      Timeout: 3600
      CommandContent: |-
        #!/bin/bash

# Konfigurasi keluaran.
Outputs:
  # Tampilkan alamat IP publik sebagai titik akhir yang dikembalikan oleh HTTP di konsol.
  Endpoint:
    Description:
      zh-cn: deskripsi dalam bahasa Cina
      en: Alamat IP Publik
    Value:
      Fn::Sub:
        - http://${ServerAddress}
        - ServerAddress:
            Fn::Select:
              - 0
              - Fn::GetAtt:
                 - EcsInstanceGroup
                 - PublicIps
Metadata:
  ALIYUN::ROS::Interface:
    # Grup parameter.
    ParameterGroups:
      - Parameters:
          - PayType
          - PayPeriodUnit
          - PayPeriod
        Label:
          default:
            en: Konfigurasi PayType
            zh-cn: deskripsi dalam bahasa Cina
      - Parameters:
          - EcsInstanceType
          - InstancePassword
        Label:
          default:
            en: Konfigurasi Instance ECS
            zh-cn: deskripsi dalam bahasa Cina
      - Parameters:
          - ZoneId
          - VpcId
          - VSwitchId
        Label:
          default:
            zh-cn: deskripsi dalam bahasa Cina
            en: Pilih Infrastruktur yang Ada

Dalam template sebelumnya, parameter di bagian Parameters, Resources, Outputs, dan Metadata didefinisikan.

Parameter

Bagian Parameter mendefinisikan parameter yang perlu dikonfigurasikan saat membuat instance layanan. Tabel berikut menjelaskan parameter yang didefinisikan dalam bagian Parameter pada contoh ini.

Parameter

Deskripsi

PayType

Metode penagihan.

PayPeriodUnit

Satuan durasi langganan untuk sumber daya yang ingin Anda beli.

PayPeriod

Durasi langganan untuk sumber daya.

EcsInstanceType

Tipe instance dari Instance ECS.

InstancePassword

Kata sandi yang digunakan untuk mengakses Instance ECS.

ZoneId

ID zona di mana vSwitch ditempatkan.

VpcId

ID VPC.

VSwitchId

ID vSwitch.

Sumber Daya

Bagian Sumber Daya mendefinisikan sumber daya yang akan dibuat serta parameter Tipe dan Properti dari setiap sumber daya. Tabel berikut menjelaskan sumber daya yang didefinisikan di bagian Sumber Daya dalam contoh ini.

Tipe sumber daya yang didefinisikan di ROS

Deskripsi

ALIYUN::ECS::SecurityGroup

Grup keamanan ECS.

ALIYUN::ECS::InstanceGroup

Instance ECS.

ALIYUN::ECS::RunCommand

Skrip shell yang akan dijalankan pada instance ECS.

Catatan

Untuk setiap jenis sumber daya Alibaba Cloud, Anda dapat menemukan sintaksis, properti, dan nilai kembali (parameter output) di daftar tipe sumber daya berdasarkan layanan. Untuk informasi lebih lanjut, lihat Daftar Tipe Sumber Daya Berdasarkan Layanan. Parameter ini dapat dirujuk saat membuat template untuk menentukan persyaratan sumber daya.

Keluaran

Bagian Keluaran mendefinisikan informasi yang akan dikembalikan setelah Anda membuat layanan. Dalam contoh ini, informasi dikembalikan sebagai alamat IP publik. Setelah sumber daya dibuat, pelanggan layanan dapat memperoleh alamat IP untuk mengakses layanan tersebut.

Metadata

Anda dapat menggunakan Metadata untuk mengelompokkan parameter yang didefinisikan di bagian Parameters sebuah template dan menyembunyikan parameter tertentu. Untuk melihat efek tampilan dari parameter tersebut, pergi ke langkah Configure Parameters di konsol ROS. Tabel berikut menjelaskan grup parameter dalam contoh ini.

Nama Grup

Parameter

Konfigurasi PayType

PayType

PayPeriodUnit

PayPeriod

Konfigurasi Instance ECS

EcsInstanceType

InstancePassword

Pilih Infrastruktur yang Ada

ZoneId

VpcId

VSwitchId

Anda juga dapat menggunakan fitur lanjutan seperti Pemetaan dan Kondisi. Untuk informasi lebih lanjut tentang fitur lanjutan, lihat Struktur Template.

Anda juga dapat menggunakan Terraform untuk membuat template. Untuk informasi lebih lanjut, lihat Create a Terraform Template.

Verifikasi template di konsol ROS

Setelah membuat template, Anda dapat membuat stack untuk memverifikasi template di konsol ROS.

  1. Masuk ke konsol ROS.

  2. Di panel navigasi di sebelah kiri, pilih Deployment > Stacks.

  3. Di pojok kiri atas halaman Stacks, klik Create Stack dan pilih Use ROS.

  4. Di halaman Create Stack, konfigurasikan parameter yang diperlukan.

    1. Pada bagian Specify Template, pilih Select an Existing Template untuk menyalin isi template yang telah dibuat ke editor kode Template Content. Anda juga dapat memilih Use a Sample Template untuk memodifikasi isi template contoh.

    2. Klik Next. Pada langkah Configure Parameters, periksa validitas pengaturan parameter. Klik Preview Template Resources untuk memastikan konfigurasi sumber daya benar.

    3. Opsional. Klik Next. Pada langkah Compliance Precheck (Optional), konfigurasikan parameter yang diperlukan.

    4. Opsional. Klik Next. Pada langkah Check and Confirm (Optional), konfirmasikan konfigurasi yang telah ditentukan.

    5. Klik Create.

    Catatan

    Langkah Compliance Precheck (Optional) dan Check and Confirm (Optional) bersifat opsional. Anda dapat memutuskan untuk melaksanakan langkah-langkah ini sesuai dengan kebutuhan bisnis Anda.

Jika stack berhasil dibuat, template diverifikasi dan tersedia. Jika pembuatan stack gagal, periksa penyebab kegagalan dan modifikasi template.