Todos los productos
Search
Centro de documentos

Resource Orchestration Service:ALIYUN::REDIS::Instance

Última actualización: Sep 21, 2026

El tipo ALIYUN::REDIS::Instance crea instancias de Redis.

Sintaxis

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

Propiedades

Propiedad

Tipo

Obligatorio

Editable

Descripción

Restricciones

AutoRenewDuration

Integer

No

Sí

La duración de la renovación automática.

Valores válidos: de 1 a 12.

Unidad: meses.

Cuando la instancia está por vencer, se renueva automáticamente durante el tiempo que indica este parámetro.

Nota

Este parámetro es válido cuando ChargeType se establece en PrePaid.

BackupPolicy

Map

No

Sí

La política de copia de seguridad.

Para más información, consulte BackupPolicy properties.

ChargeType

String

No

Sí

El método de facturación de la instancia.

Valores válidos:

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

  • PrePaid: suscripción.

Connections

Map

No

Sí

La dirección de conexión.

Para más información, consulte Connections properties.

DeletionForce

Boolean

No

Sí

Elimina la instancia al recuperarla.

Valores válidos:

  • true: elimina la instancia al recuperarla.

  • false (predeterminado): no elimina la instancia al recuperarla.

DeletionProtection

Boolean

No

Sí

Indica si la protección contra eliminación está habilitada.

Valores válidos:

  • true: habilitada.

  • false: deshabilitada.

EngineVersion

String

No

Sí

La versión del motor de base de datos.

Valores válidos:

  • 2.8

    Nota

    Descontinuada. Seleccione otra versión.

  • 4.0

  • 5.0

EvictionPolicy

String

No

No

La política de expulsión de datos.

Valores válidos:

  • noeviction: no elimina ninguna clave. Devuelve un error en las operaciones de escritura.

  • allkeys-lru: elimina primero las claves menos utilizadas recientemente.

  • volatile-lru: elimina las claves menos utilizadas solo entre aquellas que tienen configurada una expiración.

  • allkeys-random: elimina claves de forma aleatoria.

  • volatile-random: elimina claves de forma aleatoria solo entre aquellas que tienen configurada una expiración.

  • volatile-ttl: elimina las claves con el tiempo de vida (TTL) más corto solo entre aquellas que tienen configurada una expiración.

InstanceClass

String

No

Sí

El tipo de instancia.

Para más información, consulte Instance Specifications Overview.

InstanceMaintainTime

Map

No

Sí

La ventana de mantenimiento de la instancia.

Para más información, consulte InstanceMaintainTime properties.

InstanceName

String

No

Sí

El nombre de la instancia.

El nombre de la instancia debe tener entre 2 y 128 caracteres. Debe comenzar con una letra o un carácter chino. Puede contener letras, números, caracteres chinos, guiones bajos (_), guiones (-) y puntos (.).

NodeType

String

No

No

El tipo de nodo.

Valores válidos:

  • MASTER_SLAVE: alta disponibilidad (HA) (réplica doble).

  • STAND_ALONE: réplica única.

  • double: réplica doble.

  • single: réplica única.

Nota

Para instancias nativas de la nube, seleccione MASTER_SLAVE o STAND_ALONE. Para instancias clásicas, seleccione double o single.

Password

String

No

Sí

La contraseña.

La contraseña debe tener entre 8 y 30 caracteres. Debe incluir letras mayúsculas, letras minúsculas y números.

Period

Integer

No

Sí

El ciclo de facturación.

Valores válidos: de 1 a 9, 12, 24, 36 y 60.

Unidad: meses.

PeriodUnit

String

No

Sí

La unidad de duración.

Valores válidos:

  • Year: año.

  • Month: mes.

ProductType

String

No

No

El tipo de producto.

Valores válidos:

  • Local: instancia de edición de código abierto de Redis (clásica) u optimizada para memoria (clásica).

  • Tair_rdb: optimizada para memoria (nativa de la nube).

  • Tair_scm: memoria persistente.

  • Tair_essd: basada en disco.

  • OnECS: instancia de edición de código abierto de Redis (nativa de la nube).

Nota

Establezca la propiedad ProductType para acelerar las consultas de parámetros.

ReadOnlyCount

Integer

No

No

El número de nodos de solo lectura en la zona principal.

Nota

El parámetro ReadOnlyCount aplica únicamente a instancias nativas de la nube con división de lectura y escritura habilitada. Si la instancia utiliza una arquitectura de clúster, este parámetro indica el número de nodos de solo lectura (en zonas principales y secundarias) para un único fragmento.

ResourceGroupId

String

No

Sí

El ID del resource group.

Ninguna

SecondaryZoneId

String

No

Sí

El ID de la zona secundaria.

Puede llamar a la operación DescribeZones - Query Supported Zones.

Nota

Este parámetro distribuye los nodos de datos principales y secundarios en distintas zonas. Esto permite la recuperación ante desastres entre zonas y tolera fallas a nivel de centro de datos.

SecurityGroupId

String

No

Sí

El ID del security group.

Establezca un máximo de 10 ID. Sepárelos con comas (,).

ShardCount

Integer

No

No

El número de fragmentos.

Este parámetro aplica únicamente a instancias basadas en disco con arquitectura de clúster. Utilícelo para personalizar el número de fragmentos.

SSLEnabled

String

No

Sí

El estado de SSL.

Valores válidos:

  • Disable: deshabilita SSL.

  • Enable: habilita SSL.

  • Update: actualiza el certificado.

SubscriptionDeletionForce

Boolean

No

No

Esta opción aplica únicamente a instancias de suscripción. En dichas instancias, si esta opción es true, la instancia se convierte a pay-as-you-go antes de eliminarse. Si es false, el sistema no fuerza la eliminación. Esta operación genera cargos adicionales. Elija con cuidado.

Ninguna

Tags

List

No

Sí

Las etiquetas.

Cada instancia admite un máximo de 20 etiquetas.

Para más información, consulte Tags properties.

TairConfig

Map

No

No

La configuración de Tair.

Para más información, consulte TairConfig properties.

TLSProtocol

String

No

No

La versión de TLS de la instancia.

Valores válidos:

  • TLSv1

  • TLSv1.1

  • TLSv1.2

  • TLSv1.3

VpcId

String

No

No

El ID de la VPC.

Ninguna

VpcPasswordFree

Boolean

No

No

Habilita o deshabilita el acceso sin contraseña a las instancias dentro de una VPC.

Valores válidos:

  • true: habilita.

  • false (predeterminado): deshabilita.

VSwitchId

String

No

No

El ID del vSwitch en la VPC.

Ninguna

ZoneId

String

No

No

El ID de la zona.

Este parámetro es obligatorio al crear una instancia en una VPC.

Cuando cree una instancia multizona, puede llamar a la operación de API DescribeZones para obtener los ID de multizona compatibles.

Sintaxis de BackupPolicy

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

Propiedades de BackupPolicy

Propiedad

Tipo

Obligatorio

Editable

Descripción

Restricciones

PreferredBackupPeriod

String

Sí

Sí

El ciclo de copia de seguridad.

Valores válidos:

  • Monday: lunes.

  • Tuesday: martes.

  • Wednesday: miércoles.

  • Thursday: jueves.

  • Friday: viernes.

  • Saturday: sábado.

  • Sunday: domingo.

PreferredBackupTime

String

Sí

Sí

La hora de la copia de seguridad.

Formato: HH:mmZ-HH:mmZ.

EnableBackupLog

Integer

No

Sí

Habilita o deshabilita la copia de seguridad incremental.

Valores válidos:

  • 1: habilita.

  • 0 (predeterminado): deshabilita.

Sintaxis de InstanceMaintainTime

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

Propiedades de InstanceMaintainTime

Propiedad

Tipo

Obligatorio

Editable

Descripción

Restricciones

MaintainEndTime

String

No

No

La hora de finalización de la ventana de mantenimiento.

Formato: HH:mmZ (UTC). Por ejemplo, para finalizar a las 02:00 (UTC+8), establezca este parámetro en 18:00Z.

Nota

El intervalo entre la hora de inicio y la de finalización debe ser de 1 hora. Por ejemplo, si MaintainStartTime es 17:00Z, MaintainEndTime debe ser 18:00Z.

MaintainStartTime

String

No

No

La hora de inicio de la ventana de mantenimiento.

Formato: HH:mmZ (UTC). Por ejemplo, para iniciar a las 01:00 (UTC+8), establezca este parámetro en 17:00Z.

Sintaxis de Tags

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

Propiedades de Tags

Propiedad

Tipo

Obligatorio

Editable

Descripción

Restricciones

Key

String

Sí

No

La clave de la etiqueta.

La clave de la etiqueta debe ser única dentro de la misma cuenta y región.

Value

String

No

No

El valor de la etiqueta.

Ninguna

Sintaxis de Connections

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

Propiedades de Connections

Propiedad

Tipo

Obligatorio

Editable

Descripción

Restricciones

ClassicInnerConnection

Map

No

Sí

La dirección de red interna clásica.

Para más información, consulte ClassicInnerConnection properties.

DirectConnection

Map

No

Sí

La dirección de conexión directa. Corresponde a una instancia de clúster. Solicite endpoints de conexión directa según sea necesario.

Para más información, consulte DirectConnection Properties.

PublicConnection

Map

No

Sí

La dirección pública.

Para más información, consulte PublicConnection properties.

VpcPrivateConnection

Map

No

Sí

La dirección de red privada de la VPC.

Para más información, consulte VpcPrivateConnection properties.

Sintaxis de VpcPrivateConnection

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

Propiedades de VpcPrivateConnection

Propiedad

Tipo

Obligatorio

Editable

Descripción

Restricciones

ConnectionPort

Integer

Sí

Sí

El puerto de servicio de ApsaraDB de la instancia.

Valores válidos: de 1024 a 65535.

ConnectionString

String

No

Sí

El prefijo del endpoint público.

El prefijo debe tener entre 8 y 64 caracteres, comenzar con una letra minúscula y contener únicamente letras minúsculas y números.

Sintaxis de PublicConnection

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

Propiedades de PublicConnection

Propiedad

Tipo

Obligatorio

Editable

Descripción

Restricciones

ConnectionPort

Integer

Sí

Sí

El puerto de servicio de ApsaraDB de la instancia.

Valores válidos: de 1024 a 65535.

ConnectionString

String

No

Sí

El prefijo del endpoint público.

El prefijo debe tener entre 8 y 64 caracteres, comenzar con una letra minúscula y contener únicamente letras minúsculas y números.

Sintaxis de DirectConnection

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

Propiedades de DirectConnection

Propiedad

Tipo

Obligatorio

Editable

Descripción

Restricciones

ConnectionPort

Integer

Sí

Sí

El puerto de servicio de ApsaraDB de la instancia.

Valores válidos: de 1024 a 65535.

ConnectionString

String

No

Sí

El prefijo del endpoint público.

El prefijo debe tener entre 8 y 64 caracteres, comenzar con una letra minúscula y contener únicamente letras minúsculas y números.

Sintaxis de ClassicInnerConnection

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

Propiedades de ClassicInnerConnection

Propiedad

Tipo

Obligatorio

Editable

Descripción

Restricciones

ConnectionPort

Integer

Sí

Sí

El puerto de servicio de ApsaraDB de la instancia.

Valores válidos: de 1024 a 65535.

ConnectionString

String

No

Sí

El prefijo del endpoint público.

El prefijo debe tener entre 8 y 64 caracteres, comenzar con una letra minúscula y contener únicamente letras minúsculas y números.

Sintaxis de TairConfig

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

Propiedades de TairConfig

Propiedad

Tipo

Obligatorio

Editable

Descripción

Restricciones

ShardCount

Integer

No

No

Número de nodos de datos en la instancia.

Valores válidos:

  • 1: valor predeterminado. Indica que la instancia creada utiliza una arquitectura estándar y cuenta con un solo nodo de datos.

  • 2 a 32: pase un valor dentro de este rango para crear una instancia con arquitectura de clúster y el número especificado de nodos de datos.

Storage

Integer

No

No

Capacidad de almacenamiento del disco en la nube.

La capacidad de almacenamiento varía según las especificaciones de la instancia. Para obtener más información, consulte ESSD/SSD-based instances.

StorageType

String

No

No

Clase de almacenamiento.

Valores válidos:

  • essd_pl0

  • essd_pl1

  • essd_pl2

  • essd_pl3

Valores de retorno

Fn::GetAtt

  • InstanceId: identificador de la instancia.

  • OrderId: identificador del pedido de la instancia.

  • ConnectionDomain: dirección de conexión privada de la instancia.

  • Port: puerto del servicio de Redis.

  • InstanceName: nombre de la instancia.

  • InstanceClass: tipo de la instancia.

  • VpcId: identificador de la VPC.

  • Capacity: capacidad de almacenamiento de la instancia.

  • InstanceType: versión del motor de base de datos de la instancia.

  • ChargeType: método de facturación de la instancia.

  • PackageType: tipo de plan.

  • Connections: número máximo de conexiones que admite la instancia.

  • ArchitectureType: tipo de arquitectura.

  • NodeType: tipo de nodo.

  • HasRenewChangeOrder: indica si la cuenta de Alibaba Cloud tiene pedidos pendientes de renovación o ampliación.

  • ResourceGroupId: identificador del resource group.

  • QPS: número de consultas por segundo (QPS). Corresponde al valor teórico para el tipo de instancia actual.

  • ZoneId: identificador de la zona a la que pertenece la instancia.

  • Bandwidth: ancho de banda de la instancia. Unidad: Mbps.

  • EngineVersion: versión del motor.

  • NetworkType: tipo de red.

  • VSwitchId: identificador del vSwitch.

  • PrivateIp: dirección IP privada de la instancia.

  • PublicConnectionString: cadena de conexión pública de la instancia.

  • VpcPrivateConnectionPort: puerto de conexión privada de la VPC.

  • ClassicInnerConnectionString: cadena de conexión interna clásica de la instancia.

  • VpcPrivateConnectionString: cadena de conexión privada de la VPC de la instancia.

  • PublicConnectionPort: puerto de conexión pública de la instancia.

  • DirectConnectionString: cadena de conexión directa de la instancia.

  • DirectConnectionPort: puerto de conexión directa de la instancia.

  • ClassicInnerConnectionPort: puerto de conexión interna clásica de la instancia.

Ejemplos

Escenario 1: crear una instancia de Redis.

Creación rápida

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

Escenario 2: crear una instancia de Redis y agregar una lista blanca de direcciones IP.

Creación rápida

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

Escenario 3: usar DTS para sincronizar la caché entre MySQL y Redis.

Creación rápida

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

Para consultar más ejemplos, revise las plantillas públicas que contienen este recurso.