ALIYUN::REDIS::Whitelist タイプは、Redis インスタンスの IP ホワイトリストを設定します。
構文
{
"Type": "ALIYUN::REDIS::Whitelist",
"Properties": {
"InstanceId": String,
"SecurityIpGroupName": String,
"SecurityIpGroupAttribute": String,
"SecurityIps": String
}
}プロパティ
プロパティ名 | タイプ | 必須 | 更新可能 | 説明 | 制約 |
InstanceId | String | はい | いいえ | Redis インスタンス ID(グローバルに一意)。 | なし |
SecurityIpGroupName | String | いいえ | いいえ | ホワイトリストグループ名。デフォルト値:default。 | なし |
SecurityIpGroupAttribute | String | いいえ | いいえ | ホワイトリストグループの属性値。デフォルトは空です。コンソールでは、属性値が hidden のホワイトリストグループは表示されません。 | なし |
SecurityIps | String | はい | はい | IP ホワイトリストグループ内の IP アドレスリスト。IP アドレスは半角カンマで区切ります。形式例:0.0.0.0/0、10.23.12.24、または 10.23.12.24/24(CIDR (Classless Inter-Domain Routing) 形式。/24 はアドレス中のプレフィックス長を示し、1 ~ 32 の範囲です)。 | 最大 1000 |
戻り値
Fn::GetAtt
SecurityIpGroupName:ホワイトリストグループ名
SecurityIpGroupAttribute:ホワイトリストグループの属性値
SecurityIps:IP アドレスホワイトリスト
例
シナリオ 1:Redis の IP ホワイトリストを追加する
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
InstanceId:
Type: String
Description: Redis インスタンス ID(グローバルに一意)
AssociationProperty: ALIYUN::Redis::Instance::InstanceId
Resources:
Whitelist:
Type: ALIYUN::REDIS::Whitelist
Properties:
InstanceId:
Ref: InstanceId
SecurityIpGroupName: ros
SecurityIpGroupAttribute: show
SecurityIps: 0.0.0.0/0
Outputs:
SecurityIpGroupName:
Description: ホワイトリストグループ名
Value:
Fn::GetAtt:
- Whitelist
- SecurityIpGroupName
SecurityIpGroupAttribute:
Description: ホワイトリストグループの属性値
Value:
Fn::GetAtt:
- Whitelist
- SecurityIpGroupAttribute
SecurityIps:
Description: IP アドレスホワイトリスト
Value:
Fn::GetAtt:
- Whitelist
- SecurityIps
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"InstanceId": {
"Type": "String",
"Description": "Redis インスタンス ID(グローバルに一意)",
"AssociationProperty": "ALIYUN::Redis::Instance::InstanceId"
}
},
"Resources": {
"Whitelist": {
"Type": "ALIYUN::REDIS::Whitelist",
"Properties": {
"InstanceId": {
"Ref": "InstanceId"
},
"SecurityIpGroupName": "ros",
"SecurityIpGroupAttribute": "show",
"SecurityIps": "0.0.0.0/0"
}
}
},
"Outputs": {
"SecurityIpGroupName": {
"Description": "ホワイトリストグループ名",
"Value": {
"Fn::GetAtt": [
"Whitelist",
"SecurityIpGroupName"
]
}
},
"SecurityIpGroupAttribute": {
"Description": "ホワイトリストグループの属性値",
"Value": {
"Fn::GetAtt": [
"Whitelist",
"SecurityIpGroupAttribute"
]
}
},
"SecurityIps": {
"Description": "IP アドレスホワイトリスト",
"Value": {
"Fn::GetAtt": [
"Whitelist",
"SecurityIps"
]
}
}
}
}シナリオ 2:Redis インスタンスを作成し、IP ホワイトリストを追加する
ROSTemplateFormatVersion: '2015-09-01'
Description: {}
Parameters:
VpcId:
Type: String
AssociationProperty: ALIYUN::ECS::VPC::VPCId
ZoneId:
Type: String
Description: インスタンスを作成する前に、利用可能なゾーンが Redis リソースの仕様をサポートしていることを確認してください。
AssociationProperty: ALIYUN::ECS::Instance:ZoneId
Label: ゾーン 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": "インスタンスを作成する前に、利用可能なゾーンが Redis リソースの仕様をサポートしていることを確認してください。",
"en": "Before you create an instance, confirm that the Availability Zone supports the specifications of Redis resources."
},
"AssociationProperty": "ALIYUN::ECS::Instance:ZoneId",
"Label": {
"en": "Zone ID",
"zh-cn": "ゾーン"
}
},
"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"
]
}
}
}
}シナリオ 3:DTS を使用して MySQL と Redis 間でキャッシュ同期を実現する
ROSTemplateFormatVersion: '2015-09-01'
Description:
zh-cn: このテンプレートは DTS を使用して MySQL と Redis 間でキャッシュ同期を実現します。VPC、ECS、RDS、および Redis インスタンスの作成とセキュリティ構成、およびデータ整合性を確保するための使用者グループの確立を含みます。
en: This template achieves cache synchronization between MySQL and Redis via DTS, encompassing the creation and security configuration of VPC, ECS, RDS, and Redis instances, alongside the establishment of consumer groups to ensure data consistency.
Parameters:
ZoneId:
Type: String
Label:
en: VSwitch Availability Zone
zh-cn: VSwitch 利用可能ゾーン
AssociationProperty: ALIYUN::ECS::Instance::ZoneId
RDSDBUser:
Type: String
Label:
en: RDS DB Username
zh-cn: RDS データベースユーザー名
Description:
en: データベースのユーザー名。
zh-cn: データベースのユーザー名。
ConstraintDescription:
en: 小文字とアンダースコア (_) からなる 2 ~ 16 文字。先頭は英字、末尾は英数字でなければなりません。
zh-cn: 小文字とアンダースコア (_) からなる 2 ~ 16 文字。先頭は英字、末尾は英数字でなければなりません。
Default: demouser123
MinLength: 2
MaxLength: 16
DbName:
Type: String
Label:
en: RDS DB Name
zh-cn: RDS データベース名
ConstraintDescription:
en: 小文字とアンダースコア (_) からなる 2 ~ 16 文字。先頭は英字、末尾は英数字でなければなりません。
zh-cn: 小文字とアンダースコア (_) からなる 2 ~ 16 文字。先頭は英字、末尾は英数字でなければなりません。
Default: demodb
Required: true
MinLength: 2
MaxLength: 16
RDSDBPassword:
Type: String
Label:
en: RDS DB Password
zh-cn: RDS データベースパスワード
Description:
en: 'RDS データベースパスワードは、英字、数字、アンダースコア (_) からなり、8 ~ 32 文字で、3 種類以上の異なる文字種を含む必要があります。'
zh-cn: 'RDS データベースパスワードは、英字、数字、アンダースコア (_) からなり、8 ~ 32 文字で、3 種類以上の異なる文字種を含む必要があります。'
ConstraintDescription:
en: '英字、数字、アンダースコア (_) からなり、8 ~ 32 文字です。'
zh-cn: '英字、数字、アンダースコア (_) からなり、8 ~ 32 文字です。'
AssociationProperty: ALIYUN::RDS::Instance::AccountPassword
MinLength: 8
MaxLength: 32
NoEcho: true
DBInstanceClass:
Type: String
Label:
en: Instance Class
zh-cn: インスタンスタイプ
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 ジョブ名
Description:
en: 識別しやすいように、サービスに意味のある名前(一意である必要はありません)を設定することを推奨します。
zh-cn: 識別しやすいように、サービスに意味のある名前(一意である必要はありません)を設定することを推奨します。
Default: mysql2redis_dts
RedisInstanceClass:
Type: String
Label:
en: Tair Specifications
zh-cn: Tair 仕様
Description:
en: <font color='blue'>モデルを選択する前に、現在の利用可能ゾーンで在庫があるか確認してください。テストコストを抑えるため、メモリ 2 GB のモデル(例:tair.rdb.2g)の使用を推奨します。</font>詳細については、<a href='https://www.alibabacloud.com/help/redis/product-overview/enhanced-performance' target='_blank'><font color='red'>仕様照会</font></a>をご参照ください。
zh-cn: <font color='blue'>モデルを選択する前に、現在の利用可能ゾーンで在庫があるか確認してください。テストコストを抑えるため、メモリ 2 GB のモデル(例:tair.rdb.2g)の使用を推奨します。</font>詳細については、<a href='https://www.alibabacloud.com/help/redis/product-overview/enhanced-performance' target='_blank'><font color='red'>仕様照会</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: インスタンスパスワード
Description:
en: '8 ~ 32 文字。大文字、小文字、数字、および以下の特殊文字を含めることができます:! @ # $ % ^ & * ( ) _ + - ='
zh-cn: '8 ~ 32 文字。大文字、小文字、数字、および以下の特殊文字を含めることができます:! @ # $ % ^ & * ( ) _ + - ='
ConstraintDescription:
en: '8 ~ 32 文字。大文字、小文字、数字、および以下の特殊文字を含めることができます:! @ # $ % ^ & * ( ) _ + - ='
zh-cn: '8 ~ 32 文字。大文字、小文字、数字、および以下の特殊文字を含めることができます:! @ # $ % ^ & * ( ) _ + - ='
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 インスタンスアドレス。
zh-cn: 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 インスタンスアドレス。
zh-cn: 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
zh-cn: 基本リソース構成(必須)
- 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": "このテンプレートは DTS を使用して MySQL と Redis 間でキャッシュ同期を実現します。VPC、ECS、RDS、および Redis インスタンスの作成とセキュリティ構成、およびデータ整合性を確保するための使用者グループの確立を含みます。",
"en": "This template achieves cache synchronization between MySQL and Redis via DTS, encompassing the creation and security configuration of VPC, ECS, RDS, and Redis instances, alongside the establishment of consumer groups to ensure data consistency."
},
"Parameters": {
"ZoneId": {
"Type": "String",
"Label": {
"en": "VSwitch Availability Zone",
"zh-cn": "VSwitch 利用可能ゾーン"
},
"AssociationProperty": "ALIYUN::ECS::Instance::ZoneId"
},
"RDSDBUser": {
"Type": "String",
"Label": {
"en": "RDS DB Username",
"zh-cn": "RDS データベースアカウント"
},
"Description": {
"en": "データベースのユーザー名。",
"zh-cn": "データベースアカウントのユーザー名。"
},
"ConstraintDescription": {
"en": "小文字とアンダースコア (_) からなる 2 ~ 16 文字。先頭は英字、末尾は英数字でなければなりません。",
"zh-cn": "小文字とアンダースコア (_) からなる 2 ~ 16 文字。先頭は英字、末尾は英数字でなければなりません。"
},
"Default": "demouser123",
"MinLength": 2,
"MaxLength": 16
},
"DbName": {
"Type": "String",
"Label": {
"en": "RDS DB Name",
"zh-cn": "RDS データベース名"
},
"ConstraintDescription": {
"en": "小文字とアンダースコア (_) からなる 2 ~ 16 文字。先頭は英字、末尾は英数字でなければなりません。",
"zh-cn": "小文字とアンダースコア (_) からなる 2 ~ 16 文字。先頭は英字、末尾は英数字でなければなりません。"
},
"Default": "demodb",
"Required": true,
"MinLength": 2,
"MaxLength": 16
},
"RDSDBPassword": {
"Type": "String",
"Label": {
"en": "RDS DB Password",
"zh-cn": "RDS データベースパスワード"
},
"Description": {
"en": "RDS データベースパスワードは、英字、数字、アンダースコア(_)からなり、8 ~ 32 文字で、3 種類以上の異なる文字種を含む必要があります。",
"zh-cn": "RDS データベースのパスワードは、8 ~ 32 文字で、英字、数字、アンダースコア (_) からなり、3 種類以上の異なる文字種を含む必要があります。"
},
"ConstraintDescription": {
"en": "英字、数字、アンダースコア(_)からなり、8 ~ 32 文字です。",
"zh-cn": "パスワードは 8 ~ 32 文字で、英字、数字、アンダースコア (_) からなります。"
},
"AssociationProperty": "ALIYUN::RDS::Instance::AccountPassword",
"MinLength": 8,
"MaxLength": 32,
"NoEcho": true
},
"DBInstanceClass": {
"Type": "String",
"Label": {
"en": "Instance Class",
"zh-cn": "インスタンスタイプ"
},
"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": "同期タスク名"
},
"Description": {
"en": "識別しやすいように、サービスに意味のある名前(一意である必要はありません)を設定することを推奨します。",
"zh-cn": "識別しやすいように、サービスに意味のある名前(一意である必要はありません)を設定することを推奨します。"
},
"Default": "mysql2redis_dts"
},
"RedisInstanceClass": {
"Type": "String",
"Label": {
"en": "Tair Specifications",
"zh-cn": "Tair 仕様"
},
"Description": {
"en": "<font color='blue'>モデルを選択する前に、現在の利用可能ゾーンで在庫があるか確認してください。テストコストを抑えるため、メモリ 2G のモデル(例:tair.rdb.2g)の使用を推奨します。</font>詳細については、<a href='https://www.alibabacloud.com/help/redis/product-overview/enhanced-performance' target='_blank'><font color='red'>仕様照会</font></a>をご参照ください。",
"zh-cn": "<font color='blue'>インスタンスタイプを選択する前に、現在の利用可能ゾーンでそのタイプが利用可能かどうかを確認してください。テストコストを抑えるため、メモリ 2 GB の仕様(例:tair.rdb.2g)の使用を推奨します。</font>詳細については、<a href='https://www.alibabacloud.com/help/redis/product-overview/enhanced-performance' target='_blank'><font color='red'>インスタンスタイプ</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": "インスタンスパスワード"
},
"Description": {
"en": "8 ~ 32 文字。大文字、小文字、数字、および以下の特殊文字を含めることができます:! @ # $ % ^ & * ( ) _ + - =",
"zh-cn": "パスワードは 8 ~ 32 文字で、大文字、小文字、数字、および以下の特殊文字を含めることができます:!@#$%^&*()_+-="
},
"ConstraintDescription": {
"en": "8 ~ 32 文字。大文字、小文字、数字、および以下の特殊文字を含めることができます:! @ # $ % ^ & * ( ) _ + - =",
"zh-cn": "パスワードは 8 ~ 32 文字で、大文字、小文字、数字、および以下の特殊文字を含めることができます:!@#$%^&*()_+-="
},
"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 インスタンスアドレス。",
"zh-cn": "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 インスタンスアドレス。",
"zh-cn": "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",
"zh-cn": "基本リソース構成(必須)"
}
}
},
{
"Parameters": [
"DBInstanceClass",
"DbName",
"RDSDBUser",
"RDSDBPassword"
],
"Label": {
"default": "RDS"
}
},
{
"Parameters": [
"RedisInstanceClass",
"RedisPassword"
],
"Label": {
"default": "Tair"
}
},
{
"Parameters": [
"DtsJobName"
],
"Label": {
"default": "DTS"
}
}
],
"TemplateTags": [
"acs:technical-solution:database:build-cache-consistency-by-syncing-rds-and-redis-in-real-time-tech_solu_21"
]
}
}
}その他の例については、「このリソースを含む公開テンプレート」をご参照ください。