Tous les produits
Search
Centre de documentation

Resource Orchestration Service:ALIYUN::REDIS::Instance

Dernière mise à jour :Sep 21, 2026

Le type ALIYUN::REDIS::Instance permet de créer des instances Redis.

Syntaxe

 {
  "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,
    "TLSProtocol": 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
  }
}

Propriétés

Propriété

Type

Obligatoire

Modifiable

Description

Contraintes

AutoRenewDuration

Integer

Non

Oui

La durée du renouvellement automatique.

Valeurs valides : 1 à 12.

Unité : mois.

Lorsque l'instance est sur le point d'expirer, elle se renouvelle automatiquement pour la durée spécifiée par ce paramètre.

Remarque

Ce paramètre est valide lorsque ChargeType est défini sur PrePaid.

BackupPolicy

Map

Non

Oui

La politique de sauvegarde.

Pour plus d'informations, consultez les propriétés de BackupPolicy.

ChargeType

String

Non

Oui

La méthode de facturation de l'instance.

Valeurs valides :

  • PostPaid (par défaut) : Paiement à l'utilisation.

  • PrePaid : Abonnement.

Connections

Map

Non

Oui

L'adresse de connexion.

Pour plus d'informations, consultez les propriétés de Connections.

DeletionForce

Boolean

Non

Oui

Supprimez l'instance lors de la récupération.

Valeurs valides :

  • true : Supprimez l'instance lors de la récupération.

  • false (par défaut) : Ne supprimez pas l'instance lors de la récupération.

DeletionProtection

Boolean

Non

Oui

Indique si la protection contre la suppression est activée.

Valeurs valides :

  • true : Activé.

  • false : Désactivé.

EngineVersion

String

Non

Oui

La version du moteur de base de données.

Valeurs valides :

  • 2.8

    Remarque

    Obsolète. Sélectionnez une autre version.

  • 4.0

  • 5.0

EvictionPolicy

String

Non

Non

La politique d'éviction des données.

Valeurs valides :

  • noeviction : Ne supprimez aucune clé. Renvoyez une erreur lors des opérations d'écriture.

  • allkeys-lru : Supprimez d'abord les clés les moins récemment utilisées.

  • volatile-lru : Supprimez les clés les moins récemment utilisées uniquement parmi celles dont l'expiration est définie.

  • allkeys-random : Supprimez des clés de manière aléatoire.

  • volatile-random : Supprimez des clés de manière aléatoire uniquement parmi celles dont l'expiration est définie.

  • volatile-ttl : Supprimez les clés ayant la durée de vie restante (TTL) la plus courte uniquement parmi celles dont l'expiration est définie.

InstanceClass

String

Non

Oui

Le type d'instance.

Pour plus d'informations, consultez la page Présentation des spécifications d'instance.

InstanceMaintainTime

Map

Non

Oui

La fenêtre de maintenance de l'instance.

Pour plus d'informations, consultez les propriétés de InstanceMaintainTime.

InstanceName

String

Non

Oui

Le nom de l'instance.

Le nom de l'instance doit comporter entre 2 et 128 caractères. Il doit commencer par une lettre ou un caractère chinois et peut contenir des lettres, des chiffres, des caractères chinois, des traits de soulignement (_), des tirets (-) et des points (.).

NodeType

String

Non

Non

Le type de nœud.

Valeurs valides :

  • MASTER_SLAVE : Haute disponibilité (HA) (double réplica).

  • STAND_ALONE : Réplica unique.

  • double : Double réplica.

  • single : Réplica unique.

Remarque

Pour les instances cloud-native, sélectionnez MASTER_SLAVE ou STAND_ALONE. Pour les instances classiques, sélectionnez double ou single.

Password

String

Non

Oui

Le mot de passe.

Le mot de passe doit comporter entre 8 et 30 caractères et contenir des lettres majuscules, des lettres minuscules et des chiffres.

Period

Integer

Non

Oui

Le cycle de facturation.

Valeurs valides : 1 à 9, 12, 24, 36, 60.

Unité : mois.

PeriodUnit

String

Non

Oui

L'unité de durée.

Valeurs valides :

  • Year : Année.

  • Month : Mois.

ProductType

String

Non

Non

Le type de produit.

Valeurs valides :

  • Local : Instance Redis open source (classique) ou optimisée pour la mémoire (classique).

  • Tair_rdb : Optimisée pour la mémoire (cloud-native).

  • Tair_scm : Mémoire persistante.

  • Tair_essd : Basée sur disque.

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

Remarque

Définissez la propriété ProductType pour accélérer les requêtes de paramètres.

ReadOnlyCount

Integer

Non

Non

Le nombre de nœuds en lecture seule dans la zone principale.

Remarque

Le paramètre ReadOnlyCount s'applique uniquement aux instances cloud-native avec la fonctionnalité de séparation lecture/écriture activée. Si l'instance utilise une architecture en cluster, ce paramètre indique le nombre de nœuds en lecture seule (dans les zones principales et secondaires) pour un shard unique.

ResourceGroupId

String

Non

Oui

L'ID du groupe de ressources.

Aucune

SecondaryZoneId

String

Non

Oui

L'ID de la zone secondaire.

Vous pouvez appeler l'opération DescribeZones - Interroger les zones prises en charge.

Remarque

Ce paramètre répartit les nœuds de données principaux et secondaires sur différentes zones, permettant ainsi la reprise après sinistre interzones et tolérant les pannes au niveau du centre de données.

SecurityGroupId

String

Non

Oui

L'ID du groupe de sécurité.

Définissez un maximum de 10 ID. Séparez les ID par des virgules (,).

ShardCount

Integer

Non

Non

Le nombre de shards.

Ce paramètre s'applique uniquement aux instances à architecture en cluster basées sur disque. Utilisez ce paramètre pour personnaliser le nombre de shards.

SSLEnabled

String

Non

Oui

Le statut SSL.

Valeurs valides :

  • Disable : Désactivez SSL.

  • Enable : Activez SSL.

  • Update : Mettez à jour le certificat.

SubscriptionDeletionForce

Boolean

Non

Non

Cette option s'applique uniquement aux instances par abonnement. Pour les instances par abonnement, si cette option est définie sur true, l'instance est convertie en instance de paiement à l'utilisation avant sa suppression. Si elle est définie sur false, le système ne force pas la suppression. Cette opération entraîne des frais supplémentaires. Choisissez avec soin.

Aucune

Tags

List

Non

Oui

Les tags.

Chaque instance prend en charge un maximum de 20 tags.

Pour plus d'informations, consultez les propriétés de Tags.

TairConfig

Map

Non

Non

La configuration Tair.

Pour plus d'informations, consultez les propriétés de TairConfig.

TLSProtocol

String

Non

Non

La version TLS de l'instance.

Valeurs valides :

  • TLSv1

  • TLSv1.1

  • TLSv1.2

  • TLSv1.3

VpcId

String

Non

Non

L'ID du VPC.

Aucune

VpcPasswordFree

Boolean

Non

Non

Activez ou désactivez l'accès sans mot de passe aux instances dans un VPC.

Valeurs valides :

  • true : Activer.

  • false (par défaut) : Désactiver.

VSwitchId

String

Non

Non

L'ID du vSwitch dans le VPC.

Aucune

ZoneId

String

Non

Non

L'ID de la zone.

Ce paramètre est requis lors de la création d'une instance dans un VPC.

Lorsque vous créez une instance multi-zones, vous pouvez appeler l'opération API DescribeZones pour obtenir les ID multi-zones pris en charge.

Syntaxe de BackupPolicy

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

Propriétés de BackupPolicy

Propriété

Type

Obligatoire

Modifiable

Description

Contraintes

PreferredBackupPeriod

String

Oui

Oui

Le cycle de sauvegarde.

Valeurs valides :

  • Monday : lundi.

  • Tuesday : mardi.

  • Wednesday : mercredi.

  • Thursday : jeudi.

  • Friday : vendredi.

  • Saturday : samedi.

  • Sunday : dimanche.

PreferredBackupTime

String

Oui

Oui

L'heure de la sauvegarde.

Format : HH:mmZ-HH:mmZ.

EnableBackupLog

Integer

Non

Oui

Active ou désactive la sauvegarde incrémentielle.

Valeurs valides :

  • 1 : activer.

  • 0 (par défaut) : désactiver.

Syntaxe d'InstanceMaintainTime

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

Propriétés d'InstanceMaintainTime

Propriété

Type

Obligatoire

Modifiable

Description

Contraintes

MaintainEndTime

String

Non

Non

L'heure de fin de la fenêtre de maintenance.

Format : HH:mmZ (UTC). Par exemple, pour terminer à 02:00 (UTC+8), définissez ce paramètre sur 18:00Z.

Remarque

L'intervalle entre l'heure de début et l'heure de fin doit être d'une heure. Par exemple, si MaintainStartTime est 17:00Z, MaintainEndTime est 18:00Z.

MaintainStartTime

String

Non

Non

L'heure de début de la fenêtre de maintenance.

Format : HH:mmZ (UTC). Par exemple, pour démarrer à 01:00 (UTC+8), définissez ce paramètre sur 17:00Z.

Syntaxe de Tags

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

Propriétés de Tags

Propriété

Type

Obligatoire

Modifiable

Description

Contraintes

Key

String

Oui

Non

La clé du tag.

La clé du tag doit être unique au sein du même compte et de la même région.

Value

String

Non

Non

La valeur du tag.

Aucune

Syntaxe de Connections

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

Propriétés de Connections

Propriété

Type

Obligatoire

Modifiable

Description

Contraintes

ClassicInnerConnection

Map

Non

Oui

L'adresse réseau interne classique.

Pour plus d'informations, consultez Propriétés de ClassicInnerConnection.

DirectConnection

Map

Non

Oui

L'adresse de connexion directe. Il s'agit d'une instance en cluster. Demandez des points de terminaison de connexion directe selon vos besoins.

Pour plus d'informations, consultez Propriétés de DirectConnection.

PublicConnection

Map

Non

Oui

L'adresse publique.

Pour plus d'informations, consultez Propriétés de PublicConnection.

VpcPrivateConnection

Map

Non

Oui

L'adresse réseau privée VPC.

Pour plus d'informations, consultez Propriétés de VpcPrivateConnection.

Syntaxe de VpcPrivateConnection

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

Propriétés de VpcPrivateConnection

Propriété

Type

Obligatoire

Modifiable

Description

Contraintes

ConnectionPort

Integer

Oui

Oui

Le port de service ApsaraDB de l'instance.

Valeurs valides : 1024 à 65535.

ConnectionString

String

Non

Oui

Le préfixe du point de terminaison public.

Le préfixe doit comporter entre 8 et 64 caractères, commencer par une lettre minuscule et contenir uniquement des lettres minuscules et des chiffres.

Syntaxe de PublicConnection

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

Propriétés de PublicConnection

Propriété

Type

Obligatoire

Modifiable

Description

Contraintes

ConnectionPort

Integer

Oui

Oui

Le port de service ApsaraDB de l'instance.

Valeurs valides : 1024 à 65535.

ConnectionString

String

Non

Oui

Le préfixe du point de terminaison public.

Le préfixe doit comporter entre 8 et 64 caractères, commencer par une lettre minuscule et contenir uniquement des lettres minuscules et des chiffres.

Syntaxe de DirectConnection

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

Propriétés de DirectConnection

Propriété

Type

Obligatoire

Modifiable

Description

Contraintes

ConnectionPort

Integer

Oui

Oui

Le port de service ApsaraDB de l'instance.

Valeurs valides : 1024 à 65535.

ConnectionString

String

Non

Oui

Le préfixe du point de terminaison public.

Le préfixe doit comporter entre 8 et 64 caractères, commencer par une lettre minuscule et contenir uniquement des lettres minuscules et des chiffres.

Syntaxe de ClassicInnerConnection

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

Propriétés de ClassicInnerConnection

Propriété

Type

Obligatoire

Modifiable

Description

Contraintes

ConnectionPort

Integer

Oui

Oui

Le port de service ApsaraDB de l'instance.

Valeurs valides : 1024 à 65535.

ConnectionString

String

Non

Oui

Le préfixe du point de terminaison public.

Le préfixe doit comporter entre 8 et 64 caractères, commencer par une lettre minuscule et contenir uniquement des lettres minuscules et des chiffres.

Syntaxe de TairConfig

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

Propriétés de TairConfig

Propriété

Type

Obligatoire

Modifiable

Description

Contraintes

ShardCount

Integer

Non

Non

Le nombre de nœuds de données dans l'instance.

Valeurs valides :

  • 1 : valeur par défaut. Cela indique que l'instance créée utilise une architecture standard et ne possède qu'un seul nœud de données.

  • 2 à 32 : transmettez une valeur dans cette plage pour créer une instance d'architecture en cluster avec le nombre spécifié de nœuds de données.

Storage

Integer

Non

Non

La capacité de stockage du disque cloud.

La capacité de stockage varie en fonction des spécifications de l'instance. Pour plus d'informations, consultez Instances basées sur ESSD/SSD.

StorageType

String

Non

Non

La classe de stockage.

Valeurs valides :

  • essd_pl0

  • essd_pl1

  • essd_pl2

  • essd_pl3

Valeurs de retour

Fn::GetAtt

  • InstanceId : ID de l'instance.

  • OrderId : ID de la commande d'instance.

  • ConnectionDomain : Adresse de connexion privée de l'instance.

  • Port : Port du service Redis.

  • InstanceName : Nom de l'instance.

  • InstanceClass : Type d'instance.

  • VpcId : ID du VPC.

  • Capacity : Capacité de stockage de l'instance.

  • InstanceType : Version du moteur de base de données de l'instance.

  • ChargeType : Méthode de facturation de l'instance.

  • PackageType : Type de plan.

  • Connections : Nombre maximal de connexions prises en charge par l'instance.

  • ArchitectureType : Type d'architecture.

  • NodeType : Type de nœud.

  • HasRenewChangeOrder : Indique si le compte Alibaba Cloud comporte des commandes de renouvellement ou d'extension en attente.

  • ResourceGroupId : ID du groupe de ressources.

  • QPS : Nombre de requêtes par seconde (QPS). Il s'agit de la valeur théorique pour le type d'instance actuel.

  • ZoneId : ID de la zone à laquelle appartient l'instance.

  • Bandwidth : Bande passante de l'instance. Unité : Mbps.

  • EngineVersion : Version du moteur.

  • NetworkType : Type de réseau.

  • VSwitchId : ID du vSwitch.

  • PrivateIp : Adresse IP privée de l'instance.

  • PublicConnectionString : Chaîne de connexion publique de l'instance.

  • VpcPrivateConnectionPort : Port de connexion privée du VPC.

  • ClassicInnerConnectionString : Chaîne de connexion interne classique de l'instance.

  • VpcPrivateConnectionString : Chaîne de connexion privée du VPC de l'instance.

  • PublicConnectionPort : Port de connexion publique de l'instance.

  • DirectConnectionString : Chaîne de connexion directe de l'instance.

  • DirectConnectionPort : Port de connexion directe de l'instance.

  • ClassicInnerConnectionPort : Port de connexion interne classique de l'instance.

Exemples

Scénario 1 : Créer une instance Redis.

Création rapide

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: 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                     
{
  "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": "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"
        ]
      }
    }
  }
}

Scénario 2 : Créer une instance Redis et ajouter une liste d'autorisation IP.

Création rapide

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: 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                     
{
  "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": "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"
        ]
      }
    }
  }
}

Scénario 3 : Utiliser DTS pour synchroniser le cache entre MySQL et Redis.

Création rapide

ROSTemplateFormatVersion: '2015-09-01'
Description:
  zh-cn: 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.
  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: VSwitch Availability Zone
    AssociationProperty: ALIYUN::ECS::Instance::ZoneId
  RDSDBUser:
    Type: String
    Label:
      en: RDS DB Username
      zh-cn: RDS DB Username
    Description:
      en: Username of database.
      zh-cn: Username of 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: Must contain 2 to 16 lowercase letters and underscores. It must start with a letter and end with an alphanumeric character.
    Default: demouser123
    MinLength: 2
    MaxLength: 16
  DbName:
    Type: String
    Label:
      en: RDS DB Name
      zh-cn: RDS DB Name
    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: Must contain 2 to 16 lowercase letters and underscores. It must start with a letter and end with an alphanumeric character.
    Default: demodb
    Required: true
    MinLength: 2
    MaxLength: 16
  RDSDBPassword:
    Type: String
    Label:
      en: RDS DB Password
      zh-cn: RDS DB Password
    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: 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.
    ConstraintDescription:
      en: Must be 8 to 32 characters long. It must contain letters, numbers, and underscores (_).
      zh-cn: Must be 8 to 32 characters long. It must contain letters, numbers, and underscores (_).
    AssociationProperty: ALIYUN::RDS::Instance::AccountPassword
    MinLength: 8
    MaxLength: 32
    NoEcho: true
  DBInstanceClass:
    Type: String
    Label:
      en: Instance Class
      zh-cn: Instance Class
    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: Dts Job Name
    Description:
      en: Set a name that reflects its business purpose for easy identification. Uniqueness is not required.
      zh-cn: Set a name that reflects its business purpose for easy identification. Uniqueness is not required.
    Default: mysql2redis_dts
  RedisInstanceClass:
    Type: String
    Label:
      en: Tair Specifications
      zh-cn: Tair Specifications
    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'>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>.
    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: Instance Password
    Description:
      en: Must be 8 to 32 characters long. It can contain uppercase and lowercase letters, numbers, and special symbols: ! @ # $ % ^ & * ( ) _ + - =
      zh-cn: Must be 8 to 32 characters long. It can contain uppercase and lowercase letters, numbers, and special symbols: ! @ # $ % ^ & * ( ) _ + - =
    ConstraintDescription:
      en: Must be 8 to 32 characters long. It can contain uppercase and lowercase letters, numbers, and special symbols: ! @ # $ % ^ & * ( ) _ + - =
      zh-cn: Must be 8 to 32 characters long. It can contain uppercase and lowercase letters, numbers, and special symbols: ! @ # $ % ^ & * ( ) _ + - =
    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: RDS Instance Address.
    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: Tair Instance Address.
    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: Infrastructure Configuration (Required)
      - 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": "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.",
    "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": "VSwitch Availability Zone"
      },
      "AssociationProperty": "ALIYUN::ECS::Instance::ZoneId"
    },
    "RDSDBUser": {
      "Type": "String",
      "Label": {
        "en": "RDS DB Username",
        "zh-cn": "RDS DB Username"
      },
      "Description": {
        "en": "Username of database.",
        "zh-cn": "Username of 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": "Must contain 2 to 16 lowercase letters and underscores. It must start with a letter and end with an alphanumeric character."
      },
      "Default": "demouser123",
      "MinLength": 2,
      "MaxLength": 16
    },
    "DbName": {
      "Type": "String",
      "Label": {
        "en": "RDS DB Name",
        "zh-cn": "RDS DB Name"
      },
      "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": "Must contain 2 to 16 lowercase letters and underscores. It must start with a letter and end with an alphanumeric character."
      },
      "Default": "demodb",
      "Required": true,
      "MinLength": 2,
      "MaxLength": 16
    },
    "RDSDBPassword": {
      "Type": "String",
      "Label": {
        "en": "RDS DB Password",
        "zh-cn": "RDS DB Password"
      },
      "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": "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."
      },
      "ConstraintDescription": {
        "en": "Must be 8 to 32 characters long. It must contain letters, numbers, and underscores (_).",
        "zh-cn": "Must be 8 to 32 characters long. It must contain letters, numbers, and underscores (_)."
      },
      "AssociationProperty": "ALIYUN::RDS::Instance::AccountPassword",
      "MinLength": 8,
      "MaxLength": 32,
      "NoEcho": true
    },
    "DBInstanceClass": {
      "Type": "String",
      "Label": {
        "en": "Instance Class",
        "zh-cn": "Instance Class"
      },
      "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": "Dts Job Name"
      },
      "Description": {
        "en": "Set a name that reflects its business purpose for easy identification. Uniqueness is not required.",
        "zh-cn": "Set a name that reflects its business purpose for easy identification. Uniqueness is not required."
      },
      "Default": "mysql2redis_dts"
    },
    "RedisInstanceClass": {
      "Type": "String",
      "Label": {
        "en": "Tair Specifications",
        "zh-cn": "Tair Specifications"
      },
      "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'>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>."
      },
      "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": "Instance Password"
      },
      "Description": {
        "en": "Must be 8 to 32 characters long. It can contain uppercase and lowercase letters, numbers, and special symbols: ! @ # $ % ^ & * ( ) _ + - =",
        "zh-cn": "Must be 8 to 32 characters long. It can contain uppercase and lowercase letters, numbers, and special symbols: ! @ # $ % ^ & * ( ) _ + - ="
      },
      "ConstraintDescription": {
        "en": "Must be 8 to 32 characters long. It can contain uppercase and lowercase letters, numbers, and special symbols: ! @ # $ % ^ & * ( ) _ + - =",
        "zh-cn": "Must be 8 to 32 characters long. It can contain uppercase and lowercase letters, numbers, and special symbols: ! @ # $ % ^ & * ( ) _ + - ="
      },
      "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": "RDS Instance Address."
      },
      "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": "Tair Instance Address."
      },
      "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": "Infrastructure Configuration (Required)"
            }
          }
        },
        {
          "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"
      ]
    }
  }
}

Pour plus d'exemples, consultez les modèles publics contenant cette ressource.