All Products
Search
Document Center

Compute Nest:Resource Orchestration

Last Updated:Jun 21, 2026

Saat membuat layanan di Compute Nest, penyedia layanan harus menyediakan sebuah templat. Anda perlu menulis templat tersebut terlebih dahulu, lalu menempelkan isinya ke editor templat di konsol Compute Nest atau mengunggah file templatnya. Topik ini menggunakan pembuatan Virtual Private Cloud (VPC) sebagai contoh untuk menjelaskan cara menulis templat dalam format JSON atau YAML serta memvalidasinya di konsol Resource Orchestration Service (ROS).

Informasi latar belakang

Templat di Compute Nest pada dasarnya adalah templat Resource Orchestration Service (ROS). Anda dapat menulis templat stack yang mengikuti spesifikasi ROS. Di dalam templat tersebut, Anda dapat mendefinisikan sumber daya cloud yang diperlukan—seperti instance ECS dan instance ApsaraDB RDS—serta ketergantungan antar sumber daya tersebut. Mesin orkestrasi ROS secara otomatis membuat dan mengonfigurasi semua sumber daya berdasarkan templat Anda, sehingga memungkinkan penerapan dan operasi yang terotomatisasi. Resource Orchestration Service adalah layanan Alibaba Cloud yang menyederhanakan manajemen sumber daya cloud. Untuk informasi lebih lanjut, lihat Apa itu Resource Orchestration Service?.

Menulis templat

ROS mendukung templat yang ditulis dalam sintaksis JSON/YAML dan Terraform. Anda dapat menulis templat dengan memodifikasi contoh templat atau membuatnya dari awal.

  • Untuk skenario umum, ROS menyediakan contoh templat. Anda dapat memilih dan memodifikasi templat referensi yang sesuai dari halaman Template Samples di konsol ROS. Templat dalam kategori ISV Software Deployment di bawah Scenarios umumnya digunakan untuk skenario Compute Nest. Langkah-langkah modifikasi untuk contoh templat ini tersedia dalam deskripsi templat.

    Jika Anda menggunakan contoh templat dan hanya perlu melakukan perubahan sederhana, kami sarankan langsung menuju bagian Memvalidasi templat di konsol ROS. Anda dapat memilih dan memodifikasi contoh templat tersebut saat membuat stack.

  • Untuk skenario kompleks, Anda dapat menggunakan editor teks apa pun untuk menulis templat dari awal.

  • Jika Anda memiliki proyek Terraform kompleks dengan beberapa file, kami sarankan mengonversi templat Terraform Anda ke format templat ROS. Hal ini memungkinkan Anda mengemas seluruh konfigurasi Terraform ke dalam satu file tunggal. Saat Anda menempelkan templat berformat ROS ini ke konsol Compute Nest, sistem akan secara otomatis mengenali kontennya sebagai penerapan Terraform. Ini menyederhanakan proses karena Anda tidak perlu mengunggah beberapa file Terraform. Untuk mengonversi templat Terraform ke format ROS, ikuti langkah-langkah berikut:

    • Instal ROS Template Transformer. Kami sarankan menggunakan pip. Untuk informasi lebih lanjut tentang metode instalasi lainnya, lihat Instal alat konversi templat.

      pip install alibabacloud-ros-tran
    • Tempatkan semua file Terraform Anda dalam satu direktori. Jalankan perintah berikut untuk mengonversi templat Terraform menjadi templat ROS. Ganti {terraform_path} dengan path ke direktori induk file-file Terraform Anda.

      rostran transform  {terraform_path} -S terraform --force --compatible --target-format yaml    
    • Tempelkan templat ROS yang dihasilkan dari langkah sebelumnya ke konsol Compute Nest. Pilih ROS sebagai metode penerapan. Sistem kemudian akan secara otomatis mengenalinya sebagai templat Terraform dan mengatur metode penerapannya menjadi Terraform.

Templat YAML berikut menunjukkan cara membuat instance ECS:

ROSTemplateFormatVersion: '2015-09-01'
# Parameter
Parameters:
  PayType:
    Type: String
    Label:
      en: Jenis tagihan instance ECS
    Default: PostPaid
    AllowedValues:
      - PostPaid
      - PrePaid
    AssociationProperty: ChargeType
    AssociationPropertyMetadata:
      LocaleKey: InstanceChargeType
  PayPeriodUnit:
    Type: String
    Label:
      en: Unit periode pembayaran
    Default: Month
    AllowedValues:
      - Month
      - Year
    AssociationProperty: PayPeriodUnit
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Not:
            Fn::Equals:
              - ${PayType}
              - PostPaid
  PayPeriod:
    Type: Number
    Description:
      en: Saat durasi langganan adalah Bulan, nilai Periode berkisar dari 1 hingga 9, 12, 24, 36, 48, atau 60. 
<b><font color='red'> Parameter ini hanya valid saat metode penagihan untuk instance ECS adalah PrePaid. </font> Label: en: Periode 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: Jenis instance AssociationProperty: ALIYUN::ECS::Instance::InstanceType AssociationPropertyMetadata: ZoneId: ${ZoneId} InstanceChargeType: ${InstanceChargeType} InstancePassword: NoEcho: true Type: String Description: en: Kata sandi untuk masuk ke server. Kata sandi harus memiliki panjang 8 hingga 30 karakter dan berisi setidaknya tiga dari jenis karakter berikut: huruf besar, huruf kecil, angka, dan karakter khusus, seperti ()`~!@#$%^&*_-+=|{}[]:;<>,.?/. Label: en: Kata sandi instance ConstraintDescription: en: Kata sandi harus memiliki panjang 8 hingga 30 karakter dan berisi setidaknya tiga dari jenis karakter berikut: huruf besar, huruf kecil, angka, dan karakter khusus, seperti ()`~!@#$%^&*_-+=|{}[]:;<>,.?/. 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 VpcId: AssociationProperty: ALIYUN::ECS::VPC::VPCId Type: String Description: en: ID VPC tempat Anda ingin men-deploy sumber daya. ID biasanya diawali dengan `vpc-`. Label: en: ID VPC VSwitchId: AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId AssociationPropertyMetadata: VpcId: ${VpcId} ZoneId: ${ZoneId} Type: String Description: en: ID vSwitch di VPC dan zona ketersediaan yang ditentukan. Label: en: ID vSwitch # Sumber Daya Resources: EcsSecurityGroup: Type: ALIYUN::ECS::SecurityGroup Properties: SecurityGroupName: Ref: ALIYUN::StackName VpcId: Ref: VpcId # Aturan Ingress untuk 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 # Image ImageId: centos_7 # Jenis instance InstanceType: Ref: EcsInstanceType Password: Ref: InstancePassword # Aktifkan 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 # Output Outputs: # Menampilkan alamat IP publik sebagai titik akhir HTTP di konsol Endpoint: Description: en: Alamat IP publik Value: Fn::Sub: - http://${ServerAddress} - ServerAddress: Fn::Select: - 0 - Fn::GetAtt: - EcsInstanceGroup - PublicIps # Metadata Metadata: ALIYUN::ROS::Interface: # Informasi grup ParameterGroups: - Parameters: - PayType - PayPeriodUnit - PayPeriod Label: default: en: Konfigurasi jenis pembayaran - Parameters: - EcsInstanceType - InstancePassword Label: default: en: Konfigurasi instance ECS - Parameters: - ZoneId - VpcId - VSwitchId Label: default: en: Pilih infrastruktur yang ada

Sebuah templat memiliki empat bagian utama: Parameters, Resources, Outputs, dan Metadata.

Parameters

Bagian Parameters mendefinisikan parameter yang dikonfigurasi pengguna saat membuat instance layanan. Tabel berikut menjelaskan parameter dalam contoh ini.

Parameter

Deskripsi

PayType

Metode penagihan untuk instans.

PayPeriodUnit

Unit durasi langganan.

PayPeriod

Durasi langganan.

EcsInstanceType

Tipe instans dari instance ECS.

InstancePassword

Kata sandi instance ECS.

ZoneId

Zona ketersediaan untuk vSwitch.

VpcId

ID VPC.

VSwitchId

ID vSwitch.

Resources

Bagian Resources mendefinisikan sumber daya yang akan dibuat, termasuk Type dan Properties setiap sumber daya. Tabel berikut menjelaskan sumber daya yang didefinisikan dalam contoh ini.

Tipe sumber daya

Deskripsi

ALIYUN::ECS::SecurityGroup

Membuat grup keamanan ECS.

ALIYUN::ECS::InstanceGroup

Membuat instance ECS.

ALIYUN::ECS::RunCommand

Menjalankan skrip shell pada instance ECS.

Catatan

Lihat Indeks tipe sumber daya untuk sintaksis, properti, dan nilai kembali (output) setiap tipe sumber daya Alibaba Cloud. Informasi ini membantu Anda mendeklarasikan kebutuhan sumber daya spesifik dalam templat Anda.

Outputs

Bagian Outputs mendefinisikan informasi yang dikembalikan setelah pembuatan layanan. Dalam contoh ini, output-nya adalah Endpoint (http://PublicIp). Setelah sumber daya dibuat, pengguna dapat menggunakan alamat ini untuk mengakses layanan.

Metadata

Bagian Metadata memungkinkan Anda mengelompokkan parameter yang didefinisikan di bagian Parameters dan menyembunyikan parameter kustom. Hasilnya dapat dilihat di halaman Configure Parameters di konsol ROS. Tabel berikut menjelaskan kelompok parameter dalam contoh ini.

Nama kelompok

Parameter

Konfigurasi metode pembayaran

PayType

PayPeriodUnit

PayPeriod

Konfigurasi instance ECS

EcsInstanceType

InstancePassword

Pilih infrastruktur yang sudah ada

ZoneId

VpcId

VSwitchId

Anda juga dapat menggunakan fitur lanjutan seperti Mappings dan Conditions. Untuk informasi lebih lanjut, lihat Struktur templat.

Anda juga dapat menggunakan Terraform untuk membuat templat. Untuk informasi lebih lanjut, lihat Membuat templat Terraform.

Memvalidasi templat di konsol ROS

Setelah menulis templat, Anda dapat memvalidasinya dengan membuat stack di konsol ROS.

  1. Masuk ke ROS console.

  2. Di panel navigasi sebelah kiri, klik Stacks.

  3. Di pojok kiri atas halaman, klik Create Stack.

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

    1. Di bagian Specify Template, pilih Select an Existing Template dan tempelkan templat Anda ke editor konten. Atau, pilih Use a Sample Template dan modifikasi templat tersebut.

    2. Klik Next. Pada halaman Configure Parameters, verifikasi parameter. Secara opsional, klik Preview Template Resources untuk memeriksa pengaturan sumber daya.

    3. Opsi: Klik Next. Pada halaman Compliance Precheck (Optional), konfigurasikan parameter.

    4. Opsi: Klik Next. Pada halaman Check and Confirm (Optional), konfirmasi konfigurasi Anda.

    5. Klik Create.

    Catatan

    Langkah Configure Stack (Optional) dan Check and Confirm (Optional) bersifat opsional dan dapat dilewati.

Jika stack berhasil dibuat, templat Anda dianggap valid. Jika pembuatan stack gagal, periksa pesan error dan modifikasi templat Anda sesuai kebutuhan.