All Products
Search
Document Center

Resource Orchestration Service:ALIYUN::REDIS::Instance

Last Updated:Apr 25, 2026

Tipe ALIYUN::REDIS::Instance digunakan untuk membuat instans Redis.

Sintaks

 {
  "Type": "ALIYUN::REDIS::Instance",
  "Properties": {
    "VpcId": String,
    "EvictionPolicy": String,
    "BackupPolicy": Map,
    "ZoneId": String,
    "InstanceClass": String,
    "InstanceMaintainTime": Map,
    "Tags": List,
    "VpcPasswordFree": Boolean,
    "VSwitchId": String,
    "SecurityGroupId": String,
    "EngineVersion": String,
    "SSLEnabled": String,
    "Password": String,
    "InstanceName": String,
    "DeletionForce": Boolean,
    "Connections": Map,
    "ChargeType": String,
    "Period": Integer,
    "AutoRenewDuration": Integer,
    "ProductType": String,
    "SubscriptionDeletionForce": Boolean,
    "SecondaryZoneId": String,
    "ResourceGroupId": String,
    "PeriodUnit": String,
    "TairConfig": Map,
    "ShardCount": Integer,
    "NodeType": String,
    "DeletionProtection": Boolean,
    "ReadOnlyCount": Integer
  }
}

Properti

Nama Properti

Tipe

Wajib

Dapat Diperbarui

Deskripsi

Batasan

AutoRenewDuration

Integer

Tidak

Ya

Durasi perpanjangan otomatis.

Nilai valid: 1 hingga 12.

Unit: bulan.

Ketika instans akan kedaluwarsa, instans tersebut secara otomatis diperpanjang sesuai durasi yang ditentukan oleh parameter ini.

Catatan

Parameter ini berlaku hanya jika ChargeType diatur ke PrePaid.

BackupPolicy

Map

Tidak

Ya

Kebijakan cadangan.

Untuk informasi lebih lanjut, lihat properti BackupPolicy.

ChargeType

String

Tidak

Ya

Metode penagihan instans.

Nilai valid:

  • PostPaid (default): pay-as-you-go.

  • PrePaid: subscription.

Connections

Map

Tidak

Ya

Alamat koneksi.

Untuk informasi lebih lanjut, lihat properti Connections.

DeletionForce

Boolean

Tidak

Ya

Hapus instans saat pemulihan.

Nilai valid:

  • true: Hapus instans saat pemulihan.

  • false (default): Jangan hapus instans saat pemulihan.

DeletionProtection

Boolean

Tidak

Ya

Apakah perlindungan rilis diaktifkan.

Nilai valid:

  • true: Diaktifkan.

  • false: Dinonaktifkan.

EngineVersion

String

Tidak

Ya

Versi mesin database.

Nilai valid:

  • 2.8

    Catatan

    Telah dihentikan. Pilih versi lain.

  • 4.0

  • 5.0

EvictionPolicy

String

Tidak

Tidak

Kebijakan penggantian data.

Nilai valid:

  • noeviction: Jangan menghapus kunci apa pun. Mengembalikan error pada operasi tulis.

  • allkeys-lru: Hapus kunci yang paling lama tidak digunakan terlebih dahulu.

  • volatile-lru: Hapus kunci yang paling jarang digunakan hanya dari kunci yang memiliki masa berlaku (expire) yang ditetapkan.

  • allkeys-random: Hapus kunci secara acak.

  • volatile-random: Hapus kunci secara acak hanya dari kunci yang memiliki masa berlaku (expire) yang ditetapkan.

  • volatile-ttl: Hapus kunci dengan time to live (TTL) terpendek hanya dari kunci yang memiliki masa berlaku (expire) yang ditetapkan.

InstanceClass

String

Tidak

Ya

Tipe instans.

Untuk informasi lebih lanjut, lihat Navigasi Tipe Instans dan FAQ.

InstanceMaintainTime

Map

Tidak

Ya

Jendela pemeliharaan untuk instans.

Tidak ada

InstanceName

String

Tidak

Ya

Nama instans.

Nama instans harus terdiri dari 2 hingga 128 karakter. Nama harus dimulai dengan huruf atau karakter Tionghoa, dan dapat berisi huruf, angka, karakter Tionghoa, garis bawah (_), tanda hubung (-), dan titik (.).

NodeType

String

Tidak

Tidak

Tipe node.

Nilai valid:

  • MASTER_SLAVE: High availability (HA) (replika ganda).

  • STAND_ALONE: Replika tunggal.

  • double: Replika ganda.

  • single: Replika tunggal.

Catatan

Untuk instans cloud-native, pilih MASTER_SLAVE atau STAND_ALONE. Untuk instans klasik, pilih double atau single.

Password

String

Tidak

Ya

Password.

Password harus terdiri dari 8 hingga 30 karakter dan berisi huruf kapital, huruf kecil, serta angka.

Period

Integer

Tidak

Ya

Siklus penagihan.

Nilai valid: 1 hingga 9, 12, 24, 36, 60.

Unit: bulan.

PeriodUnit

String

Tidak

Ya

Unit durasi.

Nilai valid:

  • Year: Tahun.

  • Month: Bulan.

ProductType

String

Tidak

Tidak

Tipe produk.

Nilai valid:

  • Local: Instans edisi open-source Redis (klasik) atau optimasi memori (klasik).

  • Tair_rdb: Optimasi memori (cloud-native).

  • Tair_scm: Memori persisten.

  • Tair_essd: Berbasis disk.

  • OnECS: Instans edisi open-source Redis (cloud-native).

Catatan

Atur properti ProductType untuk mempercepat kueri parameter.

ReadOnlyCount

Integer

Tidak

Tidak

Jumlah node read-only di zona primer.

Catatan

Parameter ReadOnlyCount hanya berlaku untuk instans cloud-native dengan pemisahan baca/tulis diaktifkan. Jika instans menggunakan arsitektur kluster, parameter ini menunjukkan jumlah node read-only (di zona primer dan sekunder) untuk satu shard.

ResourceGroupId

String

Tidak

Ya

ID kelompok sumber daya.

Tidak ada

SecondaryZoneId

String

Tidak

Ya

ID zona sekunder.

Anda dapat memanggil operasi DescribeZones - Kueri Zona yang Didukung.

Catatan

Parameter ini mendistribusikan node data primer dan sekunder di zona berbeda, sehingga memungkinkan pemulihan bencana lintas zona dan toleransi terhadap kegagalan tingkat pusat data.

SecurityGroupId

String

Tidak

Ya

ID grup keamanan.

Atur maksimal 10 ID. Pisahkan ID dengan koma (,).

ShardCount

Integer

Tidak

Tidak

Jumlah shard.

Parameter ini hanya berlaku untuk instans arsitektur kluster berbasis disk. Gunakan parameter ini untuk menyesuaikan jumlah shard.

SSLEnabled

String

Tidak

Ya

Status SSL.

Nilai valid:

  • Disable: Nonaktifkan SSL.

  • Fitur diaktifkan.

  • Update: Perbarui sertifikat.

SubscriptionDeletionForce

Boolean

Tidak

Tidak

Opsi ini hanya berlaku untuk instans subscription. Untuk instans subscription, jika opsi ini bernilai true, instans akan dikonversi menjadi instans pay-as-you-go sebelum dihapus. Jika false, sistem tidak akan memaksa penghapusan. Operasi ini menimbulkan biaya tambahan. Pilih dengan hati-hati.

Tidak ada

Tags

List

Tidak

Ya

Tag.

Setiap instans mendukung maksimal 20 tag.

Untuk informasi lebih lanjut, lihat properti Tags.

TairConfig

Map

Tidak

Tidak

Konfigurasi Tair.

Untuk informasi lebih lanjut, lihat properti TairConfig.

VpcId

String

Tidak

Tidak

ID VPC.

Tidak ada

VpcPasswordFree

Boolean

Tidak

Tidak

Aktifkan atau nonaktifkan akses tanpa password ke instans dalam VPC.

Nilai valid:

  • true: Aktifkan.

  • false (default): Nonaktifkan.

VSwitchId

String

Tidak

Tidak

ID vSwitch dalam VPC.

Tidak ada

ZoneId

String

Tidak

Tidak

ID zona.

Parameter ini wajib diisi saat membuat instans dalam VPC.

Saat membuat instans multi-zona, Anda dapat memanggil operasi API DescribeZones - Kueri zona yang didukung untuk mendapatkan ID multi-zona yang didukung.

Sintaks BackupPolicy

"BackupPolicy": {
  "PreferredBackupPeriod": "String",
  "PreferredBackupTime": "String",
  "EnableBackupLog": "Integer"
}

Properti BackupPolicy

Nama Properti

Tipe

Wajib

Dapat Diperbarui

Deskripsi

Batasan

PreferredBackupPeriod

String

Ya

Ya

Siklus pencadangan.

Nilai valid:

  • Monday: Senin.

  • Tuesday: Selasa.

  • Wednesday: Rabu.

  • Kamis.

  • Friday: Jumat.

  • Saturday: Sabtu.

  • Sunday: Minggu.

PreferredBackupTime

String

Ya

Ya

Waktu pencadangan.

Format: HH:mmZ-HH:mmZ.

EnableBackupLog

Integer

Tidak

Ya

Aktifkan atau nonaktifkan pencadangan inkremental.

Nilai valid:

  • 1: Aktifkan.

  • 0 (default): Nonaktifkan.

Sintaks InstanceMaintainTime

"InstanceMaintainTime": {
  "MaintainStartTime": "String",
  "MaintainEndTime": "String"
}

Properti InstanceMaintainTime

Nama Properti

Tipe

Wajib

Dapat Diperbarui

Deskripsi

Batasan

MaintainEndTime

String

Tidak

Tidak

Waktu akhir jendela pemeliharaan.

Format: HH:mmZ (UTC). Contohnya, untuk mengakhiri pukul 02:00 (UTC+8), atur parameter ini menjadi 18:00Z.

Catatan

Selang waktu antara waktu mulai dan waktu akhir harus 1 jam. Misalnya, jika MaintainStartTime adalah 17:00Z, maka MaintainEndTime adalah 18:00Z.

MaintainStartTime

String

Tidak

Tidak

Waktu mulai jendela pemeliharaan.

Format: HH:mmZ (UTC). Contohnya, untuk memulai pukul 01:00 (UTC+8), atur parameter ini menjadi 17:00Z.

Sintaks Tags

"Tags": [
  {
    "Key": String,
    "Value": String
  }
]  

Properti Tags

Nama Properti

Tipe

Wajib

Dapat Diperbarui

Deskripsi

Batasan

Key

String

Ya

Tidak

Kunci tag.

Kunci tag harus unik dalam akun dan wilayah yang sama.

Value

String

Tidak

Tidak

Nilai tag.

Tidak ada

Sintaks Connections

"Connections": {
  "VpcPrivateConnection": "Map",
  "ClassicInnerConnection": "Map",
  "DirectConnection": "Map",
  "PublicConnection": "Map"
}

Properti Connections

Nama Properti

Tipe

Wajib

Dapat Diperbarui

Deskripsi

Batasan

ClassicInnerConnection

Map

Tidak

Ya

Alamat jaringan internal klasik.

Untuk informasi lebih lanjut, lihat properti ClassicInnerConnection.

DirectConnection

Map

Tidak

Ya

Alamat koneksi langsung. Ini adalah instans kluster. Minta titik akhir koneksi langsung sesuai kebutuhan.

Untuk informasi lebih lanjut, lihat properti DirectConnection.

PublicConnection

Map

Tidak

Ya

Alamat publik.

Untuk informasi lebih lanjut, lihat properti PublicConnection.

VpcPrivateConnection

Map

Tidak

Ya

Alamat jaringan pribadi VPC.

Untuk informasi lebih lanjut, lihat properti VpcPrivateConnection.

Sintaks VpcPrivateConnection

"VpcPrivateConnection": {
  "ConnectionPort": Integer,
  "ConnectionString": String
}

Properti VpcPrivateConnection

Nama Properti

Type

Wajib

Dapat Diperbarui

Deskripsi

Batasan

ConnectionPort

Integer

Ya

Ya

Port layanan ApsaraDB instans.

Nilai valid: 1024 hingga 65535.

ConnectionString

String

Tidak

Ya

Awalan titik akhir publik.

Awalan harus terdiri dari 8 hingga 64 karakter, dimulai dengan huruf kecil, dan hanya berisi huruf kecil serta angka.

Sintaks PublicConnection

"PublicConnection": {
  "ConnectionPort": Integer,
  "ConnectionString": String
}

Properti PublicConnection

Nama Properti

Tipe

Wajib

Dapat Diperbarui

Deskripsi

Batasan

ConnectionPort

Integer

Ya

Ya

Port layanan ApsaraDB instans.

Nilai valid: 1024 hingga 65535.

ConnectionString

String

Tidak

Ya

Awalan titik akhir publik.

Awalan harus terdiri dari 8 hingga 64 karakter, dimulai dengan huruf kecil, dan hanya berisi huruf kecil serta angka.

Sintaks DirectConnection

"DirectConnection": {
  "ConnectionPort": Integer,
  "ConnectionString": String
}

Properti DirectConnection

Nama Properti

Tipe

Wajib

Dapat Diperbarui

Deskripsi

Batasan

ConnectionPort

Integer

Ya

Ya

Port layanan ApsaraDB instans.

Nilai valid: 1024 hingga 65535.

ConnectionString

String

Tidak

Ya

Awalan titik akhir publik.

Awalan harus terdiri dari 8 hingga 64 karakter, dimulai dengan huruf kecil, dan hanya berisi huruf kecil serta angka.

Sintaks ClassicInnerConnection

"ClassicInnerConnection": {
  "ConnectionPort": Integer,
  "ConnectionString": String
}

Properti ClassicInnerConnection

Nama Properti

Type

Wajib

Dapat Diperbarui

Deskripsi

Batasan

ConnectionPort

Integer

Ya

Ya

Port layanan ApsaraDB instans.

Nilai valid: 1024 hingga 65535.

ConnectionString

String

Tidak

Ya

Awalan titik akhir publik.

Awalan harus terdiri dari 8 hingga 64 karakter, dimulai dengan huruf kecil, dan hanya berisi huruf kecil serta angka.

Sintaks TairConfig

"TairConfig": {
  "Storage": "Integer",
  "StorageType": "String",
  "ShardCount": "Integer"
}

Properti TairConfig

Nama Properti

Tipe

Wajib

Dapat Diperbarui

Deskripsi

Batasan

ShardCount

Integer

Tidak

Tidak

Jumlah node data dalam instans.

Nilai valid:

  • 1: Nilai default. Ini menunjukkan bahwa instans yang dibuat menggunakan arsitektur standar dan hanya memiliki satu node data.

  • 2 hingga 32: Masukkan nilai dalam rentang ini untuk membuat instans arsitektur kluster dengan jumlah node data yang ditentukan.

Storage

Integer

Tidak

Tidak

Kapasitas penyimpanan disk cloud.

Kapasitas penyimpanan bervariasi berdasarkan spesifikasi instans. Untuk informasi lebih lanjut, lihat spesifikasi instans berbasis disk.

StorageType

String

Tidak

Tidak

Kelas penyimpanan.

Nilai valid:

  • essd_pl0

  • essd_pl1

  • essd_pl2

  • essd_pl3

Nilai Kembalian

Fn::GetAtt

  • InstanceId: ID instans.

  • OrderId: ID pesanan instans.

  • ConnectionDomain: Alamat koneksi pribadi instans.

  • Port: Port layanan Redis.

  • InstanceName: Nama instans.

  • InstanceClass: Tipe instans.

  • VpcId: ID VPC.

  • Capacity: Kapasitas penyimpanan instans.

  • InstanceType: Versi mesin database instans.

  • ChargeType: Metode penagihan instans.

  • PackageType: Tipe paket.

  • Connections: Jumlah koneksi maksimum yang didukung oleh instans.

  • ArchitectureType: Tipe arsitektur.

  • NodeType: Tipe node.

  • HasRenewChangeOrder: Menunjukkan apakah Akun Alibaba Cloud memiliki pesanan perpanjangan atau skala keluar yang tertunda.

  • ResourceGroupId: ID kelompok sumber daya.

  • QPS: Jumlah permintaan per detik (QPS). Ini adalah nilai teoretis untuk tipe instans saat ini.

  • ZoneId: ID zona tempat instans berada.

  • Bandwidth: Bandwidth instance. Satuan: Mbps.

  • EngineVersion: Versi mesin.

  • NetworkType: Jenis jaringan.

  • VSwitchId: ID vSwitch.

  • PrivateIp: Alamat IP pribadi instans.

  • PublicConnectionString: String koneksi publik instans.

  • VpcPrivateConnectionPort: Port koneksi pribadi VPC.

  • ClassicInnerConnectionString: String koneksi internal klasik instans.

  • VpcPrivateConnectionString: String koneksi pribadi VPC instans.

  • PublicConnectionPort: Port koneksi publik instans.

  • DirectConnectionString: String koneksi langsung instans.

  • DirectConnectionPort: Port koneksi langsung instans.

  • ClassicInnerConnectionPort: Port koneksi internal klasik instans.

Contoh

Skenario 1: Buat instans Redis.

Buat cepat

ROSTemplateFormatVersion: '2015-09-01'
Description: {}
Parameters:
  VpcId:
    Type: String
    AssociationProperty: ALIYUN::ECS::VPC::VpcId
  ZoneId:
    Type: String
    Description:
      zh-cn: Before creating an instance, confirm the Availability Zone supports Redis resource specifications.
      en: Sebelum membuat instans, pastikan Zona Ketersediaan mendukung spesifikasi sumber daya Redis.
    AssociationProperty: ALIYUN::ECS::Instance:ZoneId
    Label:
      en: Zone ID
      zh-cn: Zone ID
  VSwitchId:
    Type: String
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
      ZoneId: ${ZoneId}
Resources:
  RedisInstance:
    Type: ALIYUN::REDIS::Instance
    Properties:
      VpcId:
        Ref: VpcId
      VSwitchId:
        Ref: VSwitchId
      InstanceClass: redis.master.small.default
      EvictionPolicy: noeviction
      ZoneId:
        Ref: ZoneId
      InstanceName: DefaultRedis
      Password: Admin@123!
Outputs:
  InstanceId:
    Value:
      Fn::GetAtt:
        - RedisInstance
        - InstanceId                     
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": {
  },
  "Parameters": {
    "VpcId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::VPC::VpcId"
    },
    "ZoneId": {
      "Type": "String",
      "Description": {
        "zh-cn": "Sebelum membuat instans, pastikan Zona Ketersediaan mendukung spesifikasi sumber daya Redis.",
        "en": "Before creating an instance, confirm the Availability Zone supports Redis resource specifications."
      },
      "AssociationProperty": "ALIYUN::ECS::Instance:ZoneId",
      "Label": {
        "en": "Zone ID",
        "zh-cn": "Zone ID"
      }
    },
    "VSwitchId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
      "AssociationPropertyMetadata": {
        "VpcId": "${VpcId}",
        "ZoneId": "${ZoneId}"
      }
    }
  },
  "Resources": {
    "RedisInstance": {
      "Type": "ALIYUN::REDIS::Instance",
      "Properties": {
        "VpcId": {
          "Ref": "VpcId"
        },
        "VSwitchId": {
          "Ref": "VSwitchId"
        },
        "InstanceClass": "redis.master.small.default",
        "EvictionPolicy": "noeviction",
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "InstanceName": "DefaultRedis",
        "Password": "Admin@123!"
      }
    }
  },
  "Outputs": {
    "InstanceId": {
      "Value": {
        "Fn::GetAtt": [
          "RedisInstance",
          "InstanceId"
        ]
      }
    }
  }
}

Skenario 2: Buat instans Redis dan tambahkan daftar putih IP.

Buat cepat

ROSTemplateFormatVersion: '2015-09-01'
Description: {}
Parameters:
  VpcId:
    Type: String
    AssociationProperty: ALIYUN::ECS::VPC::VpcId
  ZoneId:
    Type: String
    Description:
      zh-cn: Before creating an instance, confirm the Availability Zone supports Redis resource specifications.
      en: Sebelum membuat instans, pastikan Zona Ketersediaan mendukung spesifikasi sumber daya Redis.
    AssociationProperty: ALIYUN::ECS::Instance:ZoneId
    Label:
      en: ID Zona
      zh-cn: Zone ID
  VSwitchId:
    Type: String
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
      ZoneId: ${ZoneId}
Resources:
  RedisInstance:
    Type: ALIYUN::REDIS::Instance
    Properties:
      VpcId:
        Ref: VpcId
      VSwitchId:
        Ref: VSwitchId
      InstanceClass: redis.master.small.default
      EvictionPolicy: noeviction
      ZoneId:
        Ref: ZoneId
      InstanceName: DefaultRedis
      Password: Admin@123!
  REDISWhitelist:
    Type: ALIYUN::REDIS::Whitelist
    Properties:
      InstanceId:
        Ref: RedisInstance
      SecurityIps: 192.168.0.0/16
Outputs:
  InstanceId:
    Value:
      Fn::GetAtt:
        - RedisInstance
        - InstanceId                     
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": {},
  "Parameters": {
    "VpcId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::VPC::VpcId"
    },
    "ZoneId": {
      "Type": "String",
      "Description": {
        "zh-cn": "Sebelum membuat instans, pastikan Zona Ketersediaan mendukung spesifikasi sumber daya Redis.",
        "en": "Before creating an instance, confirm the Availability Zone supports Redis resource specifications."
      },
      "AssociationProperty": "ALIYUN::ECS::Instance:ZoneId",
      "Label": {
        "en": "Zone ID",
        "zh-cn": "Zone ID"
      }
    },
    "VSwitchId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
      "AssociationPropertyMetadata": {
        "VpcId": "${VpcId}",
        "ZoneId": "${ZoneId}"
      }
    }
  },
  "Resources": {
    "RedisInstance": {
      "Type": "ALIYUN::REDIS::Instance",
      "Properties": {
        "VpcId": {
          "Ref": "VpcId"
        },
        "VSwitchId": {
          "Ref": "VSwitchId"
        },
        "InstanceClass": "redis.master.small.default",
        "EvictionPolicy": "noeviction",
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "InstanceName": "DefaultRedis",
        "Password": "Admin@123!"
      }
    },
    "REDISWhitelist": {
      "Type": "ALIYUN::REDIS::Whitelist",
      "Properties": {
        "InstanceId": {
          "Ref": "RedisInstance"
        },
        "SecurityIps": "192.168.0.0/16"
      }
    }
  },
  "Outputs": {
    "InstanceId": {
      "Value": {
        "Fn::GetAtt": [
          "RedisInstance",
          "InstanceId"
        ]
      }
    }
  }
}

Skenario 3: Gunakan DTS untuk menyinkronkan cache antara MySQL dan Redis.

Buat cepat

ROSTemplateFormatVersion: '2015-09-01'
Description:
  zh-cn: Templat ini menyinkronkan cache MySQL dan Redis menggunakan DTS. Templat ini membuat dan mengonfigurasi keamanan untuk instans VPC, ECS, RDS, dan Redis. Templat ini juga membuat kelompok konsumen untuk memastikan konsistensi data.
  en: This template synchronizes MySQL and Redis caches using DTS. It creates and configures security for VPC, ECS, RDS, and Redis instances. It also establishes consumer groups to ensure data consistency.
Parameters:
  ZoneId:
    Type: String
    Label:
      en: VSwitch Availability Zone
      zh-cn: Zona Ketersediaan VSwitch
    AssociationProperty: ALIYUN::ECS::Instance::ZoneId
  RDSDBUser:
    Type: String
    Label:
      en: RDS DB Username
      zh-cn: Nama Pengguna DB RDS
    Description:
      en: Username of database.
      zh-cn: Nama pengguna database.
    ConstraintDescription:
      en: Must contain 2 to 16 lowercase letters and underscores. It must start with a letter and end with an alphanumeric character.
      zh-cn: Harus berisi 2 hingga 16 huruf kecil dan garis bawah. Harus dimulai dengan huruf dan diakhiri dengan karakter alfanumerik.
    Default: demouser123
    MinLength: 2
    MaxLength: 16
  DbName:
    Type: String
    Label:
      en: RDS DB Name
      zh-cn: Nama DB RDS
    ConstraintDescription:
      en: Must contain 2 to 16 lowercase letters and underscores. It must start with a letter and end with an alphanumeric character.
      zh-cn: Harus berisi 2 hingga 16 huruf kecil dan garis bawah. Harus dimulai dengan huruf dan diakhiri dengan karakter alfanumerik.
    Default: demodb
    Required: true
    MinLength: 2
    MaxLength: 16
  RDSDBPassword:
    Type: String
    Label:
      en: RDS DB Password
      zh-cn: Kata Sandi DB RDS
    Description:
      en: The RDS database password must be 8 to 32 characters long. It must contain letters, numbers, and underscores (_). It must also include three different character types.
      zh-cn: Kata sandi database RDS harus terdiri dari 8 hingga 32 karakter. Harus berisi huruf, angka, dan garis bawah (_). Juga harus mencakup tiga jenis karakter berbeda.
    ConstraintDescription:
      en: Must be 8 to 32 characters long. It must contain letters, numbers, and underscores (_).
      zh-cn: Harus terdiri dari 8 hingga 32 karakter. Harus berisi huruf, angka, dan garis bawah (_).
    AssociationProperty: ALIYUN::RDS::Instance::AccountPassword
    MinLength: 8
    MaxLength: 32
    NoEcho: true
  DBInstanceClass:
    Type: String
    Label:
      en: Instance Class
      zh-cn: Kelas Instans
    AssociationProperty: ALIYUN::RDS::Instance::InstanceType
    AssociationPropertyMetadata:
      ZoneId: ${ZoneId}
      EngineVersion: "8.0"
      Engine: MySQL
      Category: HighAvailability
      DBInstanceStorageType: cloud_essd
      CommodityCode: bards
    Default: mysql.x4.medium.2c
  DtsJobName:
    Type: String
    Label:
      en: Dts Job Name
      zh-cn: Nama Pekerjaan Dts
    Description:
      en: Set a name that reflects its business purpose for easy identification. Uniqueness is not required.
      zh-cn: Tetapkan nama yang mencerminkan tujuan bisnisnya agar mudah diidentifikasi. Keunikan tidak diperlukan.
    Default: mysql2redis_dts
  RedisInstanceClass:
    Type: String
    Label:
      en: Tair Specifications
      zh-cn: Spesifikasi Tair
    Description:
      en: <font color='blue'>Before selecting a model, confirm if the model is in stock in the current availability zone. To save testing costs, use a 2 GB memory model, such as tair.rdb.2g.</font> For more information, see <a href='https://www.alibabacloud.com/help/zh/redis/product-overview/enhanced-performance' target='_blank'><font color='red'>Specification inquiry</font></a>.
      zh-cn: <font color='blue'>Sebelum memilih model, pastikan model tersebut tersedia di zona ketersediaan saat ini. Untuk menghemat biaya pengujian, gunakan model memori 2 GB, seperti tair.rdb.2g.</font> Untuk informasi lebih lanjut, lihat <a href='https://www.alibabacloud.com/help/zh/redis/product-overview/enhanced-performance' target='_blank'><font color='red'>Kueri spesifikasi</font></a>.
    AssociationProperty: ALIYUN::REDIS::Instance::InstanceClass
    AssociationPropertyMetadata:
      Engine: Redis
      ProductType: Tair_rdb
      InstanceChargeType: PostPaid
      ZoneId: ${ZoneId1}
      OrderType: BUY
    Default: tair.rdb.2g
  RedisPassword:
    Type: String
    Label:
      en: Instance Password
      zh-cn: Kata Sandi Instans
    Description:
      en: Must be 8 to 32 characters long. It can contain uppercase and lowercase letters, numbers, and special symbols: ! @ # $ % ^ & * ( ) _ + - =
      zh-cn: Harus terdiri dari 8 hingga 32 karakter. Dapat berisi huruf kapital dan huruf kecil, angka, serta simbol khusus: ! @ # $ % ^ & * ( ) _ + - =
    ConstraintDescription:
      en: Must be 8 to 32 characters long. It can contain uppercase and lowercase letters, numbers, and special symbols: ! @ # $ % ^ & * ( ) _ + - =
      zh-cn: Harus terdiri dari 8 hingga 32 karakter. Dapat berisi huruf kapital dan huruf kecil, angka, serta simbol khusus: ! @ # $ % ^ & * ( ) _ + - =
    MinLength: '8'
    MaxLength: '32'
    NoEcho: true
Resources:
  Vpc:
    Type: ALIYUN::ECS::VPC
    Properties:
      CidrBlock: 192.168.0.0/16
  VSwitch:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      ZoneId:
        Ref: ZoneId
      VpcId:
        Ref: Vpc
      VSwitchName:
        Fn::Join:
          - '-'
          - - VSwitch
            - StackId
            - Ref: ALIYUN::StackId
      CidrBlock: 192.168.0.0/24
  RdsDBInstance:
    Type: ALIYUN::RDS::DBInstance
    Properties:
      ZoneId:
        Ref: ZoneId
      VpcId:
        Ref: Vpc
      VSwitchId:
        Ref: VSwitch
      DBInstanceClass:
        Ref: DBInstanceClass
      DBInstanceStorage: 100
      Engine: MySQL
      EngineVersion: "8.0"
      MasterUserPassword:
        Ref: RDSDBPassword
      MasterUserType: Super
      MasterUsername:
        Ref: RDSDBUser
      DBMappings:
        - CharacterSetName: utf8mb4
          DBName:
            Ref: DbName
      Category: HighAvailability
      DBInstanceStorageType: cloud_essd
      SecurityIPList: 192.168.0.0/16
      SlaveZoneIds:
        - Ref: ZoneId
  RedisInstance:
    Type: ALIYUN::REDIS::Instance
    Properties:
      ZoneId:
        Ref: ZoneId
      VpcId:
        Ref: Vpc
      VSwitchId:
        Ref: VSwitch
      InstanceClass:
        Ref: RedisInstanceClass
      InstanceName: rds_mysql2redis_redis
      EvictionPolicy: noeviction
      EngineVersion: '6.0'
      Password:
        Ref: RedisPassword
  Whitelist:
    Type: ALIYUN::REDIS::Whitelist
    Properties:
      InstanceId:
        Ref: RedisInstance
      SecurityIps: 192.168.0.0/16
  MigrationJob:
    Type: ALIYUN::DTS::SynchronizationJob2
    Properties:
      DtsJobName:
        Ref: DtsJobName
      SourceEndpoint:
        InstanceType: RDS
        InstanceID:
          Ref: RdsDBInstance
        EngineName: MYSQL
        Region:
          Ref: ALIYUN::Region
        UserName:
          Ref: RDSDBUser
        Password:
          Ref: RDSDBPassword
      DestinationEndpoint:
        InstanceType: Redis
        InstanceID:
          Ref: RedisInstance
        EngineName: Redis
        Region:
          Ref: ALIYUN::Region
        Password:
          Ref: RedisPassword
      StructureInitialization: false
      DelayNotice: true
      ErrorNotice: true
      DelayRuleTime: 60
      DataInitialization: true
      DataSynchronization: true
      DbList:
        Fn::GetJsonValue:
          - DbList
          - Fn::Sub: '{ "DbList": { "${DbName}": {   "name": "0",   "all": true,   "customAttachedColumn": {     "__DTS_TP_TO_REDIS_KEY__": {       "name": "__DTS_TP_TO_REDIS_KEY__",       "syntacticType": "ADD",       "value": "__DB__+''.''+__TB__+''.''+pk_str_with_name_value(''.'',''.'')",       "type": "STRING",       "length": ""     },     "__DTS_TP_TO_REDIS_VALUE__": {       "name": "__DTS_TP_TO_REDIS_VALUE__",       "syntacticType": "ADD",       "value": "tp2redis_json_value()",       "type": "STRING",       "length": ""     }   } }}}'
  DtsInstance:
    Type: ALIYUN::DTS::Instance
    Properties:
      JobId:
        Fn::GetAtt:
          - MigrationJob
          - DtsJobId
      InstanceClass: small
      PayType: PostPaid
      AutoStart: true
      Type: SYNC
      SourceRegion:
        Ref: ALIYUN::Region
      DestinationRegion:
        Ref: ALIYUN::Region
      SourceEndpointEngineName: MySQL
      DestinationEndpointEngineName: Redis
Outputs:
  RdsInstanceAddress:
    Description:
      en: RDS Instance Address.
      zh-cn: Alamat Instans RDS.
    Value:
      'Fn::Sub':
        - 'https://rds.console.alibabacloud.com/detail/${InstanceID}/basicInfo?region=${Region}'
        - InstanceID:
            Ref: RdsDBInstance
          Region:
            Ref: ALIYUN::Region
  TairInstanceAddress:
    Description:
      en: Tair Instance Address.
      zh-cn: Alamat Instans Tair.
    Value:
      'Fn::Sub':
        - 'https://kvstore.console.alibabacloud.com/Redis/instance/${Region}/${InstanceID}'
        - InstanceID:
            Ref: RedisInstance
          Region:
            Ref: ALIYUN::Region
Metadata:
  ALIYUN::ROS::Interface:
    ParameterGroups:
      - Parameters:
          - ZoneId
        Label:
          default:
            en: Infrastructure Configuration (Required)
            zh-cn: Konfigurasi Infrastruktur (Wajib)
      - Parameters:
          - DBInstanceClass
          - DbName
          - RDSDBUser
          - RDSDBPassword
        Label:
          default: RDS
      - Parameters:
          - RedisInstanceClass
          - RedisPassword
        Label:
          default: Tair
      - Parameters:
          - DtsJobName
        Label:
          default: DTS
    TemplateTags:
      - acs:technical-solution:database:real-time synchronization of RDS and Redis to build cache consistency-tech_solu_21
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": {
    "zh-cn": "Templat ini menyinkronkan cache MySQL dan Redis menggunakan DTS. Templat ini membuat dan mengonfigurasi keamanan untuk instans VPC, ECS, RDS, dan Redis. Templat ini juga membuat kelompok konsumen untuk memastikan konsistensi data.",
    "en": "This template synchronizes MySQL and Redis caches using DTS. It creates and configures security for VPC, ECS, RDS, and Redis instances. It also establishes consumer groups to ensure data consistency."
  },
  "Parameters": {
    "ZoneId": {
      "Type": "String",
      "Label": {
        "en": "VSwitch Availability Zone",
        "zh-cn": "Zona Ketersediaan VSwitch"
      },
      "AssociationProperty": "ALIYUN::ECS::Instance::ZoneId"
    },
    "RDSDBUser": {
      "Type": "String",
      "Label": {
        "en": "RDS DB Username",
        "zh-cn": "Nama Pengguna DB RDS"
      },
      "Description": {
        "en": "Username of database.",
        "zh-cn": "Nama pengguna database."
      },
      "ConstraintDescription": {
        "en": "Must contain 2 to 16 lowercase letters and underscores. It must start with a letter and end with an alphanumeric character.",
        "zh-cn": "Harus berisi 2 hingga 16 huruf kecil dan garis bawah. Harus dimulai dengan huruf dan diakhiri dengan karakter alfanumerik."
      },
      "Default": "demouser123",
      "MinLength": 2,
      "MaxLength": 16
    },
    "DbName": {
      "Type": "String",
      "Label": {
        "en": "RDS DB Name",
        "zh-cn": "Nama DB RDS"
      },
      "ConstraintDescription": {
        "en": "Must contain 2 to 16 lowercase letters and underscores. It must start with a letter and end with an alphanumeric character.",
        "zh-cn": "Harus berisi 2 hingga 16 huruf kecil dan garis bawah. Harus dimulai dengan huruf dan diakhiri dengan karakter alfanumerik."
      },
      "Default": "demodb",
      "Required": true,
      "MinLength": 2,
      "MaxLength": 16
    },
    "RDSDBPassword": {
      "Type": "String",
      "Label": {
        "en": "RDS DB Password",
        "zh-cn": "Kata Sandi DB RDS"
      },
      "Description": {
        "en": "The RDS database password must be 8 to 32 characters long. It must contain letters, numbers, and underscores (_). It must also include three different character types.",
        "zh-cn": "Kata sandi database RDS harus terdiri dari 8 hingga 32 karakter. Harus berisi huruf, angka, dan garis bawah (_). Juga harus mencakup tiga jenis karakter berbeda."
      },
      "ConstraintDescription": {
        "en": "Must be 8 to 32 characters long. It must contain letters, numbers, and underscores (_).",
        "zh-cn": "Harus terdiri dari 8 hingga 32 karakter. Harus berisi huruf, angka, dan garis bawah (_)."
      },
      "AssociationProperty": "ALIYUN::RDS::Instance::AccountPassword",
      "MinLength": 8,
      "MaxLength": 32,
      "NoEcho": true
    },
    "DBInstanceClass": {
      "Type": "String",
      "Label": {
        "en": "Instance Class",
        "zh-cn": "Kelas Instans"
      },
      "AssociationProperty": "ALIYUN::RDS::Instance::InstanceType",
      "AssociationPropertyMetadata": {
        "ZoneId": "${ZoneId}",
        "EngineVersion": "8.0",
        "Engine": "MySQL",
        "Category": "HighAvailability",
        "DBInstanceStorageType": "cloud_essd",
        "CommodityCode": "bards"
      },
      "Default": "mysql.x4.medium.2c"
    },
    "DtsJobName": {
      "Type": "String",
      "Label": {
        "en": "Dts Job Name",
        "zh-cn": "Nama Pekerjaan Dts"
      },
      "Description": {
        "en": "Set a name that reflects its business purpose for easy identification. Uniqueness is not required.",
        "zh-cn": "Tetapkan nama yang mencerminkan tujuan bisnisnya agar mudah diidentifikasi. Keunikan tidak diperlukan."
      },
      "Default": "mysql2redis_dts"
    },
    "RedisInstanceClass": {
      "Type": "String",
      "Label": {
        "en": "Tair Specifications",
        "zh-cn": "Spesifikasi Tair"
      },
      "Description": {
        "en": "<font color='blue'>Before selecting a model, confirm if the model is in stock in the current availability zone. To save testing costs, use a 2 GB memory model, such as tair.rdb.2g.</font> For more information, see <a href='https://www.alibabacloud.com/help/zh/redis/product-overview/enhanced-performance' target='_blank'><font color='red'>Specification inquiry</font></a>.",
        "zh-cn": "<font color='blue'>Sebelum memilih model, pastikan model tersebut tersedia di zona ketersediaan saat ini. Untuk menghemat biaya pengujian, gunakan model memori 2 GB, seperti tair.rdb.2g.</font> Untuk informasi lebih lanjut, lihat <a href='https://www.alibabacloud.com/help/zh/redis/product-overview/enhanced-performance' target='_blank'><font color='red'>Kueri spesifikasi</font></a>."
      },
      "AssociationProperty": "ALIYUN::REDIS::Instance::InstanceClass",
      "AssociationPropertyMetadata": {
        "Engine": "Redis",
        "ProductType": "Tair_rdb",
        "InstanceChargeType": "PostPaid",
        "ZoneId": "${ZoneId1}",
        "OrderType": "BUY"
      },
      "Default": "tair.rdb.2g"
    },
    "RedisPassword": {
      "Type": "String",
      "Label": {
        "en": "Instance Password",
        "zh-cn": "Kata Sandi Instans"
      },
      "Description": {
        "en": "Must be 8 to 32 characters long. It can contain uppercase and lowercase letters, numbers, and special symbols: ! @ # $ % ^ & * ( ) _ + - =",
        "zh-cn": "Harus terdiri dari 8 hingga 32 karakter. Dapat berisi huruf kapital dan huruf kecil, angka, serta simbol khusus: ! @ # $ % ^ & * ( ) _ + - ="
      },
      "ConstraintDescription": {
        "en": "Must be 8 to 32 characters long. It can contain uppercase and lowercase letters, numbers, and special symbols: ! @ # $ % ^ & * ( ) _ + - =",
        "zh-cn": "Harus terdiri dari 8 hingga 32 karakter. Dapat berisi huruf kapital dan huruf kecil, angka, serta simbol khusus: ! @ # $ % ^ & * ( ) _ + - ="
      },
      "MinLength": "8",
      "MaxLength": "32",
      "NoEcho": true
    }
  },
  "Resources": {
    "Vpc": {
      "Type": "ALIYUN::ECS::VPC",
      "Properties": {
        "CidrBlock": "192.168.0.0/16"
      }
    },
    "VSwitch": {
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "VpcId": {
          "Ref": "Vpc"
        },
        "VSwitchName": {
          "Fn::Join": [
            "-",
            [
              "VSwitch",
              "StackId",
              {
                "Ref": "ALIYUN::StackId"
              }
            ]
          ]
        },
        "CidrBlock": "192.168.0.0/24"
      }
    },
    "RdsDBInstance": {
      "Type": "ALIYUN::RDS::DBInstance",
      "Properties": {
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "VpcId": {
          "Ref": "Vpc"
        },
        "VSwitchId": {
          "Ref": "VSwitch"
        },
        "DBInstanceClass": {
          "Ref": "DBInstanceClass"
        },
        "DBInstanceStorage": 100,
        "Engine": "MySQL",
        "EngineVersion": "8.0",
        "MasterUserPassword": {
          "Ref": "RDSDBPassword"
        },
        "MasterUserType": "Super",
        "MasterUsername": {
          "Ref": "RDSDBUser"
        },
        "DBMappings": [
          {
            "CharacterSetName": "utf8mb4",
            "DBName": {
              "Ref": "DbName"
            }
          }
        ],
        "Category": "HighAvailability",
        "DBInstanceStorageType": "cloud_essd",
        "SecurityIPList": "192.168.0.0/16",
        "SlaveZoneIds": [
          {
            "Ref": "ZoneId"
          }
        ]
      }
    },
    "RedisInstance": {
      "Type": "ALIYUN::REDIS::Instance",
      "Properties": {
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "VpcId": {
          "Ref": "Vpc"
        },
        "VSwitchId": {
          "Ref": "VSwitch"
        },
        "InstanceClass": {
          "Ref": "RedisInstanceClass"
        },
        "InstanceName": "rds_mysql2redis_redis",
        "EvictionPolicy": "noeviction",
        "EngineVersion": "6.0",
        "Password": {
          "Ref": "RedisPassword"
        }
      }
    },
    "Whitelist": {
      "Type": "ALIYUN::REDIS::Whitelist",
      "Properties": {
        "InstanceId": {
          "Ref": "RedisInstance"
        },
        "SecurityIps": "192.168.0.0/16"
      }
    },
    "MigrationJob": {
      "Type": "ALIYUN::DTS::SynchronizationJob2",
      "Properties": {
        "DtsJobName": {
          "Ref": "DtsJobName"
        },
        "SourceEndpoint": {
          "InstanceType": "RDS",
          "InstanceID": {
            "Ref": "RdsDBInstance"
          },
          "EngineName": "MYSQL",
          "Region": {
            "Ref": "ALIYUN::Region"
          },
          "UserName": {
            "Ref": "RDSDBUser"
          },
          "Password": {
            "Ref": "RDSDBPassword"
          }
        },
        "DestinationEndpoint": {
          "InstanceType": "Redis",
          "InstanceID": {
            "Ref": "RedisInstance"
          },
          "EngineName": "Redis",
          "Region": {
            "Ref": "ALIYUN::Region"
          },
          "Password": {
            "Ref": "RedisPassword"
          }
        },
        "StructureInitialization": false,
        "DelayNotice": true,
        "ErrorNotice": true,
        "DelayRuleTime": 60,
        "DataInitialization": true,
        "DataSynchronization": true,
        "DbList": {
          "Fn::GetJsonValue": [
            "DbList",
            {
              "Fn::Sub": "{ \"DbList\": { \"${DbName}\": {   \"name\": \"0\",   \"all\": true,   \"customAttachedColumn\": {     \"__DTS_TP_TO_REDIS_KEY__\": {       \"name\": \"__DTS_TP_TO_REDIS_KEY__\",       \"syntacticType\": \"ADD\",       \"value\": \"__DB__+'.'+__TB__+'.'+pk_str_with_name_value('.','.')\",       \"type\": \"STRING\",       \"length\": \"\"     },     \"__DTS_TP_TO_REDIS_VALUE__\": {       \"name\": \"__DTS_TP_TO_REDIS_VALUE__\",       \"syntacticType\": \"ADD\",       \"value\": \"tp2redis_json_value()\",       \"type\": \"STRING\",       \"length\": \"\"     }   } }}}"
            }
          ]
        }
      }
    },
    "DtsInstance": {
      "Type": "ALIYUN::DTS::Instance",
      "Properties": {
        "JobId": {
          "Fn::GetAtt": [
            "MigrationJob",
            "DtsJobId"
          ]
        },
        "InstanceClass": "small",
        "PayType": "PostPaid",
        "AutoStart": true,
        "Type": "SYNC",
        "SourceRegion": {
          "Ref": "ALIYUN::Region"
        },
        "DestinationRegion": {
          "Ref": "ALIYUN::Region"
        },
        "SourceEndpointEngineName": "MySQL",
        "DestinationEndpointEngineName": "Redis"
      }
    }
  },
  "Outputs": {
    "RdsInstanceAddress": {
      "Description": {
        "en": "RDS Instance Address.",
        "zh-cn": "Alamat Instans RDS."
      },
      "Value": {
        "Fn::Sub": [
          "https://rds.console.alibabacloud.com/detail/${InstanceID}/basicInfo?region=${Region}",
          {
            "InstanceID": {
              "Ref": "RdsDBInstance"
            },
            "Region": {
              "Ref": "ALIYUN::Region"
            }
          }
        ]
      }
    },
    "TairInstanceAddress": {
      "Description": {
        "en": "Tair Instance Address.",
        "zh-cn": "Alamat Instans Tair."
      },
      "Value": {
        "Fn::Sub": [
          "https://kvstore.console.alibabacloud.com/Redis/instance/${Region}/${InstanceID}",
          {
            "InstanceID": {
              "Ref": "RedisInstance"
            },
            "Region": {
              "Ref": "ALIYUN::Region"
            }
          }
        ]
      }
    }
  },
  "Metadata": {
    "ALIYUN::ROS::Interface": {
      "ParameterGroups": [
        {
          "Parameters": [
            "ZoneId"
          ],
          "Label": {
            "default": {
              "en": "Infrastructure Configuration (Required)",
              "zh-cn": "Konfigurasi Infrastruktur (Wajib)"
            }
          }
        },
        {
          "Parameters": [
            "DBInstanceClass",
            "DbName",
            "RDSDBUser",
            "RDSDBPassword"
          ],
          "Label": {
            "default": "RDS"
          }
        },
        {
          "Parameters": [
            "RedisInstanceClass",
            "RedisPassword"
          ],
          "Label": {
            "default": "Tair"
          }
        },
        {
          "Parameters": [
            "DtsJobName"
          ],
          "Label": {
            "default": "DTS"
          }
        }
      ],
      "TemplateTags": [
        "acs:technical-solution:database:real-time synchronization of RDS and Redis to build cache consistency-tech_solu_21"
      ]
    }
  }
}

Untuk contoh lainnya, lihat templat publik yang berisi resource ini.