ALIYUN::MONGODB::ShardingInstance类型用于创建或者克隆MongoDB分片集群实例。

语法

{
  "Type": "ALIYUN::MONGODB::ShardingInstance",
  "Properties": {
    "EngineVersion": String,
    "ZoneId": String,
    "AutoRenew": Boolean,
    "VSwitchId": String,
    "Period": Integer,
    "SecurityIPArray": String,
    "Mongos": List,
    "StorageEngine": String,
    "RestoreTime": String,
    "AccountPassword": String,
    "VpcId": String,
    "ProtocolType": String,
    "ChargeType": String,
    "NetworkType": String,
    "ConfigServer": List,
    "SrcDBInstanceId": String,
    "ReplicaSet": List,
    "Tags": List,
    "TDEStatus": Boolean,
    "DBInstanceDescription": String,
    "ResourceGroupId": String,
    "SecondaryZoneId": String,
    "HiddenZoneId": String,
    "StorageType": String
  }
}

属性

属性名称类型必须允许更新描述约束
EngineVersionString数据库版本号。取值:
  • 3.4
  • 4.0
  • 4.2
说明 克隆实例时,该值必须与源实例保持一致。
ZoneIdString可用区ID。
AutoRenewBoolean设置实例是否自动续费。取值:
  • true:自动续费。
  • false(默认值):不自动续费,即手动续费。
说明 当ChargeType参数值为PrePaid时,该参数有效。
VSwitchIdString交换机ID。NetworkType参数取值为VPC时,该参数有效。
PeriodInteger实例的购买时长。取值:1~9、12、24、36。

单位:月。

说明 当ChargeType参数值为PrePaid时,该参数可用且必须指定。
SecurityIPArrayString实例的IP白名单。以半角逗号(,)隔开,不可重复,最多支持1000个IP。
支持格式:
  • %
  • 0.0.0.0/0
  • 10.23.XX.XX(IP)
  • 10.23.XX.XX/24(CIDR模式,无类域间路由。/24表示地址前缀的长度,取值范围:1~32。)
说明 %和0.0.0.0/0表示任何IP地址都可以访问实例的数据库,属于高危设置,请谨慎操作。
MongosListMongos节点。节点数量:2~32。

更多信息,请参见Mongos属性

StorageEngineString实例使用的存储引擎。 取值:
  • WiredTiger(默认值):适用于大多数业务场景。
  • RocksDB:适用于大量写且少读的场景。
  • TerarkDB:适用于多读少写或批量写大量读的场景。
说明 克隆实例时,该值必须与源实例保持一致。
RestoreTimeString克隆实例时所恢复的时间点。格式为yyyy-MM-ddTHH:mm:ssZ(UTC时间)。只有克隆实例时才能指定该参数,且必须和SrcDBInstanceId参数同时指定。
说明 支持选择7天内的任一时间点进行克隆。
AccountPasswordStringRoot账号的密码。 长度为8~32个字符,必须包含大写英文字母、小写英文字母、数字和特殊字符中至少三种,支持的特殊字符为:!#$%^&*()_+-=
VpcIdString专有网络ID。当NetworkType参数取值为VPC时,该参数可用。
ProtocolTypeString访问协议的类型。取值:
  • mongodb:MongoDB协议。
  • dynamodb:DynamoDB协议。
ChargeTypeString实例的付费类型。取值:
  • PostPaid(默认值):后付费(按量付费)。
  • PrePaid:预付费(包年包月)。
    说明 取值为PrePaid时,还需要指定Period参数。
NetworkTypeString实例的网络类型。 取值:
  • CLASSIC(默认值):经典网络。
  • VPC:专有网络。
    说明 取值为VPC时,还需要指定VpcId和VSwitchId。
ConfigServerListConfigServer规格配置。更多信息,请参见ConfigServer属性
SrcDBInstanceIdString源实例ID。只有克隆实例时才能指定该参数,且必须和RestoreTime同时指定。
ReplicaSetListShard节点。节点数量:2~32。

更多信息,请参见ReplicaSet属性

TagsList标签。最多支持添加20个标签。

更多信息,请参见Tags属性

TDEStatusBoolean是否启用透明数据加密(TDE)。取值:
  • true:启用TDE。
    说明 启用TDE后,您将无法禁用它。
  • false(默认值):未启用TDE。
ResourceGroupIdString实例所属的资源组ID。
DBInstanceDescriptionString实例名称。长度为2~256个字符。以英文字母或汉字开头,可包含英文字母、汉字、数字、下划线(_)和短划线(-)。
SecondaryZoneIdString配置从节点(Secondary节点)所在的可用区。取值:
  • cn-hangzhou-g:杭州可用区G。
  • cn-hangzhou-h:杭州可用区H。
  • cn-hangzhou-i:杭州可用区I。
  • cn-hongkong-b:中国香港可用区B。
  • cn-hongkong-c:中国香港可用区C。
  • cn-hongkong-d:中国香港可用区D。
  • cn-wulanchabu-a:乌兰察布可用区A。
  • cn-wulanchabu-b:乌兰察布可用区B。
  • cn-wulanchabu-c:乌兰察布可用区C。
  • ap-southeast-1a:新加坡可用区A。
  • ap-southeast-1b:新加坡可用区B。
  • ap-southeast-1c:新加坡可用区C。
  • ap-southeast-5a:雅加达可用区A。
  • ap-southeast-5b:雅加达可用区B。
  • ap-southeast-5c:雅加达可用区C。
  • eu-central-1a:法兰克福可用区A。
  • eu-central-1b:法兰克福可用区B。
  • eu-central-1c:法兰克福可用区C。
说明
  • 当EngineVersion参数值为4.4或5.0时,该参数可用且为必填参数。
  • 该参数取值不能与ZoneId和HiddenZoneId参数值相同。
HiddenZoneIdString配置隐藏节点(Hidden节点)所在的可用区。取值:
  • cn-hangzhou-g:杭州可用区G。
  • cn-hangzhou-h:杭州可用区H。
  • cn-hangzhou-i:杭州可用区I。
  • cn-hongkong-b:中国香港可用区B。
  • cn-hongkong-c:中国香港可用区C。
  • cn-hongkong-d:中国香港可用区D。
  • cn-wulanchabu-a:乌兰察布可用区A。
  • cn-wulanchabu-b:乌兰察布可用区B。
  • cn-wulanchabu-c:乌兰察布可用区C。
  • ap-southeast-1a:新加坡可用区A。
  • ap-southeast-1b:新加坡可用区B。
  • ap-southeast-1c:新加坡可用区C。
  • ap-southeast-5a:雅加达可用区A。
  • ap-southeast-5b:雅加达可用区B。
  • ap-southeast-5c:雅加达可用区C。
  • eu-central-1a:法兰克福可用区A。
  • eu-central-1b:法兰克福可用区B。
  • eu-central-1c:法兰克福可用区C。
说明
  • 当EngineVersion参数值为4.4或5.0时,该参数可用且为必填参数。
  • 该参数值不能与ZoneId和SecondaryZoneId参数值相同。
StorageTypeString存储类型。取值:
  • cloud_essd1:ESSD PL1云盘。
  • cloud_essd2:ESSD PL2云盘。
  • cloud_essd3:ESSD PL3云盘。
  • local_ssd:SSD本地盘。

Mongos语法

"Mongos": [
  {
    "Class": String
  }
]

Mongos属性

属性名称类型必须允许更新描述约束
ClassStringMongos节点的规格。关于取值的更多信息,请参见 实例规格概述

ConfigServer语法

"ConfigServer": [
  {
    "Storage": Integer,
    "Class": String
  }
]

ConfigServer属性

属性名称类型必须允许更新描述约束
StorageIntegerConfigServer的存储空间。取值:20。

单位:GB。

说明 存储空间取值固定为20 GB。
ClassStringConfigServer的规格。取值:dds.cs.mid。
说明 规格固定为1核2 GB,数量固定为1个。

ReplicaSet语法

"ReplicaSet": [
  {
    "Storage": Integer,
    "Class": String,
    "ReadonlyReplicas": Integer
  }
]

ReplicaSet属性

属性名称类型必须允许更新描述约束
StorageIntegerShard节点的存储空间。取值范围:10~2000。

单位:GB。

每10 GB递增。

ClassStringShard节点的规格。关于取值的更多信息,请参见 实例规格概述
ReadonlyReplicasInteger创建只读节点的个数。取值范围:1~5。

Tags语法

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

Tags属性

属性名称类型必须允许更新描述约束
KeyString标签键。长度为1~128个字符,不能以aliyunacs:开头,不能包含http://https://
ValueString标签值。长度为0~128个字符,不能以aliyunacs:开头,不能包含http://https://

返回值

Fn::GetAtt

  • DBInstanceStatus:实例状态。
  • DBInstanceId:实例ID。
  • OrderId:订单ID。

示例

  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
      ZoneId:
        Type: String
        AssociationProperty: ALIYUN::ECS::ZoneId
    Resources:
      MongoDbShardingInstance:
        Type: ALIYUN::MONGODB::ShardingInstance
        Properties:
          ZoneId:
            Ref: ZoneId
          EngineVersion: '4.0'
          Mongos:
            - Class: dds.mongos.mid
            - Class: dds.mongos.mid
          ReplicaSet:
            - Class: dds.shard.mid
              Storage: 10
            - Class: dds.shard.mid
              Storage: 20
          ConfigServer:
            - Class: dds.cs.mid
              Storage: 20
          TDEStatus: false
    Outputs:
      DBInstanceStatus:
        Description: Status of mongodb instance.
        Value:
          Fn::GetAtt:
            - MongoDbShardingInstance
            - DBInstanceStatus
      DBInstanceId:
        Description: The instance id of created mongodb instance.
        Value:
          Fn::GetAtt:
            - MongoDbShardingInstance
            - DBInstanceId
      OrderId:
        Description: Order Id of created instance.
        Value:
          Fn::GetAtt:
            - MongoDbShardingInstance
            - OrderId
  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
        "ZoneId": {
          "Type": "String",
          "AssociationProperty": "ALIYUN::ECS::ZoneId"
        }
      },
      "Resources": {
        "MongoDbShardingInstance": {
          "Type": "ALIYUN::MONGODB::ShardingInstance",
          "Properties": {
            "ZoneId": {
              "Ref": "ZoneId"
            },
            "EngineVersion": "4.0",
            "Mongos": [
              {
                "Class": "dds.mongos.mid"
              },
              {
                "Class": "dds.mongos.mid"
              }
            ],
            "ReplicaSet": [
              {
                "Class": "dds.shard.mid",
                "Storage": 10
              },
              {
                "Class": "dds.shard.mid",
                "Storage": 20
              }
            ],
            "ConfigServer": [
              {
                "Class": "dds.cs.mid",
                "Storage": 20
              }
            ],
            "TDEStatus": false
          }
        }
      },
      "Outputs": {
        "DBInstanceStatus": {
          "Description": "Status of mongodb instance.",
          "Value": {
            "Fn::GetAtt": [
              "MongoDbShardingInstance",
              "DBInstanceStatus"
            ]
          }
        },
        "DBInstanceId": {
          "Description": "The instance id of created mongodb instance.",
          "Value": {
            "Fn::GetAtt": [
              "MongoDbShardingInstance",
              "DBInstanceId"
            ]
          }
        },
        "OrderId": {
          "Description": "Order Id of created instance.",
          "Value": {
            "Fn::GetAtt": [
              "MongoDbShardingInstance",
              "OrderId"
            ]
          }
        }
      }
    }

更多示例,请参见:JSON示例YAML示例