ALIYUN::EMR::StarRocksInstance

ALIYUN::EMR::StarRocksInstance类型用于创建 Serverless StarRocks 实例。

语法

{
  "Type": "ALIYUN::EMR::StarRocksInstance",
  "Properties": {
    "AdminPassword": String,
    "ClusterZoneId": String,
    "InstanceName": String,
    "PayType": String,
    "PackageType": String,
    "RunMode": String,
    "VpcId": String,
    "Version": String,
    "AutoRenew": Boolean,
    "BackendNodeGroups": List,
    "Duration": Integer,
    "Encrypted": Boolean,
    "FrontendNodeGroups": List,
    "KmsKeyId": String,
    "OrderId": Integer,
    "ObserverNodeGroups": List,
    "OssAccessingRoleName": String,
    "PromotionOptionNo": String,
    "PricingCycle": String,
    "ResourceGroupId": String,
    "ResourceType": String,
    "Tags": List,
    "Vswitches": List
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

AdminPassword

String

实例管理员密码。

ClusterZoneId

String

主可用区 ID。

InstanceName

String

实例名称。

PayType

String

付费类型

取值:

  • PrePaid:包年包月

  • PostPaid:按量付费

PackageType

String

实例系列

取值:

  • trial:入门版

  • official:标准版

RunMode

String

集群的运行模式。

取值:

  • shared_nothing:存算一体模式

  • shared_data:存算分离模式

  • lakehouse:数据湖分析模式

VpcId

String

VPC ID。

Version

String

实例主版本。

AutoRenew

Boolean

是否开启自动续费。

仅在 PayType 为 PrePaid 时有意义。默认不开启。

BackendNodeGroups

List

BE 或者 CN 计算组信息。

更多信息,请参见BackendNodeGroups属性

Duration

Integer

购买时长。

仅在 PayType 为 PrePaid 时有意义。

取值:

1、2、3、6、12、和 24,36,48,60。

Encrypted

Boolean

是否加密。

FrontendNodeGroups

List

FE 节点组信息。

更多信息,请参见FrontendNodeGroups属性

KmsKeyId

String

KMS 密钥 ID。

OrderId

Integer

订单 ID。

ObserverNodeGroups

List

Observer 计算组信息。

仅在需要开启多可用区容灾时填写该字段,且 Observer 的配置必须和 FE 节点组的规格保持一致。更多信息,请参见ObserverNodeGroups属性

OssAccessingRoleName

String

用于免密访问 OSS 的角色名称。

PromotionOptionNo

String

优惠券 ID。

PricingCycle

String

购买时长单位。

取值:

  • Month:月

  • Year:年

ResourceGroupId

String

资源组 ID。

ResourceType

String

资源类型。

Tags

List

标签。

最多支持添加20个标签。

更多信息,请参见Tags属性

Vswitches

List

VSwitch 信息和可用区信息列表。

更多信息,请参见Vswitches属性

FrontendNodeGroups语法

"FrontendNodeGroups": [
  {
    "Cu": Integer,
    "ZoneId": String,
    "DiskNumber": Integer,
    "SpecType": String,
    "StoragePerformanceLevel": String,
    "ResidentNodeNumber": Integer,
    "StorageSize": Integer,
    "LocalStorageInstanceType": String
  }
]

FrontendNodeGroups属性

属性名称

类型

必须

允许更新

描述

约束

Cu

Integer

CU 数量。

CU (Compute Unit) 是服务的基本计量单元,1 CU=1 核 CPU+4GiB 内存。

DiskNumber

Integer

磁盘数量。

LocalStorageInstanceType

String

本地 SSD 实例规格。

FE 计算组无需设置该字段。

ResidentNodeNumber

Integer

节点数量。

SpecType

String

计算组规格类型。

取值:

  • standard:标准版

  • ramEnhanced:内存增强型。

StoragePerformanceLevel

String

云盘的性能级别。

取值:

  • pl0

  • pl1

  • pl2

  • pl3

StorageSize

Integer

存储大小。

单位为 GiB。

ZoneId

String

可用区 ID。

Vswitches语法

"Vswitches": [
  {
    "ZoneId": String,
    "VSwitchId": String
  }
]

Vswitches属性

属性名称

类型

必须

允许更新

描述

约束

VSwitchId

String

交换机 ID。

ZoneId

String

可用区 ID。

ObserverNodeGroups语法

"ObserverNodeGroups": [
  {
    "Cu": Integer,
    "ZoneId": String,
    "DiskNumber": Integer,
    "SpecType": String,
    "StoragePerformanceLevel": String,
    "ResidentNodeNumber": Integer,
    "StorageSize": Integer,
    "LocalStorageInstanceType": String
  }
]

ObserverNodeGroups属性

属性名称

类型

必须

允许更新

描述

约束

Cu

Integer

CU 数量。

CU (Compute Unit) 是服务的基本计量单元,1 CU=1 核 CPU+4GiB 内存。

DiskNumber

Integer

磁盘数量。

LocalStorageInstanceType

String

本地 SSD 实例规格。

Observer 计算组无需设置该字段。

ResidentNodeNumber

Integer

节点数量。

SpecType

String

计算组规格类型。

取值:

  • standard:标准版

StoragePerformanceLevel

String

云盘的性能级别。

取值:

  • pl0

  • pl1

  • pl2

  • pl3

StorageSize

Integer

存储大小。

单位为 GiB。

ZoneId

String

可用区 ID。

Tags语法

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

Tags属性

属性名称

类型

必须

允许更新

描述

约束

Key

String

标签键。

Value

String

标签值。

BackendNodeGroups语法

"BackendNodeGroups": [
  {
    "Cu": Integer,
    "ZoneId": String,
    "DiskNumber": Integer,
    "SpecType": String,
    "StoragePerformanceLevel": String,
    "ResidentNodeNumber": Integer,
    "StorageSize": Integer,
    "LocalStorageInstanceType": String
  }
]

BackendNodeGroups属性

属性名称

类型

必须

允许更新

描述

约束

Cu

Integer

CU 数量。

CU (Compute Unit) 是服务的基本计量单元,1 CU=1 核 CPU+4GiB 内存,仅在 SpecType 为内存增强型时 1 CU=1 核 CPU+8GiB 内存。

DiskNumber

Integer

磁盘数量。

LocalStorageInstanceType

String

节点组本地 SSD 实例规格。

仅在基于 Ecs 实例且 SpecType 为本地 SSD/大规格存储时该值才有意义。

ResidentNodeNumber

Integer

节点数量。

SpecType

String

计算组规格类型。

包括以下类型:

  • standard,标准版。

  • localSSD ,本地 SSD。

  • bigData,大规格存储。

  • ramEnhanced,内存增强型。

  • networkEnhanced,网络增强型。

StoragePerformanceLevel

String

云盘的性能级别。

包含以下取值:

  • pl0:单盘最高随机读写 IOPS 1 万。

  • pl1:单盘最高随机读写 IOPS 5 万。

  • pl2:单盘最高随机读写 IOPS 10 万。

  • pl3:单盘最高随机读写 IOPS 100 万。

StorageSize

Integer

存储大小。

单位为 GiB。

ZoneId

String

可用区 ID。

返回值

Fn::GetAtt

  • ResourceGroupId:资源组 ID。

  • MonitorType:监控服务类型。

  • Encrypted:是否加密。

  • SgId:安全组 ID。

  • Vswitches:交换机列表。

  • Version:集群版本。

  • PackageType:实例系列。

  • Tags:实例所绑定的标签。

  • EnableSsl:是否开启 SSL。

  • Architecture:实例架构。

  • KmsKeyId:KMS 密钥 ID。

  • EnableAutoMinorVersionUpgrade:是否允许自动小版本升级

  • MaintainablePeriod:实例可维护时间段

  • InstanceId:实例 ID。

  • AclId:网络 ACL(Network Access Control List)ID。

  • CreateTime:实例的创建时间。

  • MinorVersion:小版本版本号。

  • PayType:付费类型

  • EnabledAuditLoader:是否开启审计插件。

  • InstanceName:实例名称。

  • VpcId:VPC ID。

  • RunMode:集群的运行模式

  • OssLocation:OSS 地址。

  • IsolateLeader:是否开启读写分离

  • ExpireTime:集群到期时间。

  • RunningTime:集群当前已经运行的时间。

  • SecurityGroupManaged:是否托管安全组。

示例

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  ClusterZoneId:
    Type: String
    Description:
      en: Primary ZoneId of StarRocks instance.
    Required: true
    AssociationProperty: ZoneId
  PayType:
    Type: String
    Description:
      en: |
        The pay type of the StarRocks instance:
        - **prePaid
        - **postPaid
    AllowedValues:
      - PayAsYouGo
      - PostPaid
      - PayOnDemand
      - Postpaid
      - PostPay
      - POSTPAY
      - postPaid
      - Subscription
      - PrePaid
      - PrePay
      - Prepaid
      - PREPAY
      - prePaid
    Required: true
    Default: Postpaid
  FrontendNodeGroups:
    AssociationPropertyMetadata:
      Parameters:
        Cu:
          Type: Number
          Description:
            en: Number of CUs. CU (Compute Unit) is the basic measurement unit of the service, where 1 CU = 1 CPU core + 4 GiB memory.
          Required: false
        ZoneId:
          AssociationProperty: ZoneId
          Type: String
          Description:
            en: Zone ID.
          Required: false
        DiskNumber:
          Type: Number
          Description:
            en: The number of disks.
          Required: false
          MinValue: 0
          MaxValue: 1
        SpecType:
          Type: String
          Description:
            en: |-
              Compute group specification types include the following:
              - **standard
              - **ramEnhanced.
          AllowedValues:
            - standard
            - ramEnhanced
          Required: false
        StoragePerformanceLevel:
          Type: String
          Description:
            en: |-
              Performance levels of cloud disks include the following values:
              - **pl0: Maximum random read/write IOPS per disk is 10,000.
              - **pl1: Maximum random read/write IOPS per disk is 50,000.
              - **pl2: Maximum random read/write IOPS per disk is 100,000.
              - **pl3: Maximum random read/write IOPS per disk is 1,000,000.
          Required: false
        ResidentNodeNumber:
          Type: Number
          Description:
            en: Resident node number of node group.
          Required: false
          MinValue: 1
          MaxValue: 11
        StorageSize:
          Type: Number
          Description:
            en: Storage size, measured in GiB.
          Required: false
          MinValue: 100
          MaxValue: 65000
        LocalStorageInstanceType:
          Type: String
          Description:
            en: Local SSD instance specifications.
          Required: false
    AssociationProperty: List[Parameters]
    Type: Json
    Description:
      en: List of FE Node Group Information.
    Required: false
    MinLength: 0
    MaxLength: 50
    Default:
      - StoragePerformanceLevel: pl1
        SpecType: standard
        StorageSize: 100
        ResidentNodeNumber: 3
        Cu: 8
  Vswitches:
    AssociationPropertyMetadata:
      Parameters:
        ZoneId:
          AssociationProperty: ZoneId
          Type: String
          Description:
            en: Zone ID of VSwitch.
          Required: false
        VSwitchId:
          AssociationPropertyMetadata:
            VpcId: ${VpcId}
            ZoneId: ${ZoneId}
          AssociationProperty: ALIYUN::VPC::VSwitch::VSwitchId
          Type: String
          Description:
            en: ID of VSwitch.
          Required: true
    AssociationProperty: List[Parameters]
    Type: Json
    Description:
      en: The VSwitches info of the StarRocks instance.
    Required: false
    MinLength: 0
    MaxLength: 3
  InstanceName:
    Type: String
    Description:
      en: The name of the StarRocks instance.
    Required: true
  VpcId:
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Type: String
    Description:
      en: The VPC ID of the StarRocks instance.
    Required: true
  Version:
    Type: String
    Description:
      en: The version of the StarRocks instance.
    Required: true
  RunMode:
    Type: String
    Description:
      en: |-
        The run mode of the instance:
        - **shared_nothing: Storage and calculation.
        - **shared_data: Storage and calculation separation.
        - **lakehouse: Data lake analysis.
    AllowedValues:
      - shared_nothing
      - shared_data
      - lakehouse
    Required: true
  PackageType:
    Type: String
    Description:
      en: |-
        The package type of the instance:
        - **trial: Starter Edition
        - **official: Standard
    AllowedValues:
      - trial
      - official
    Required: true
  OssAccessingRoleName:
    Type: String
    Description:
      en: Role name used for password-free access to OSS.
    Required: false
    Default: AliyunEMRStarRocksAccessingOSSRole
  BackendNodeGroups:
    AssociationPropertyMetadata:
      Parameters:
        Cu:
          Type: Number
          Description:
            en: Number of CUs. CU (Compute Unit) is the basic measurement unit of the service, where 1 CU = 1 CPU core + 4 GiB memory.
          Required: false
        ZoneId:
          AssociationProperty: ZoneId
          Type: String
          Description:
            en: Zone ID.
          Required: false
        DiskNumber:
          Type: Number
          Description:
            en: The number of disks.
          Required: false
          MinValue: 1
          MaxValue: 8
        SpecType:
          Type: String
          Description:
            en: |-
              Compute group specification types include the following:
              - **standard
              - **localSSD
              - **bigData
              - **ramEnhanced
              - **networkEnhanced.
          AllowedValues:
            - standard
            - localSSD
            - bigData
            - ramEnhanced
            - networkEnhanced
          Required: false
        StoragePerformanceLevel:
          Type: String
          Description:
            en: |-
              Performance levels of cloud disks include the following values:
              - **pl0: Maximum random read/write IOPS per disk is 10,000.
              - **pl1: Maximum random read/write IOPS per disk is 50,000.
              - **pl2: Maximum random read/write IOPS per disk is 100,000.
              - **pl3: Maximum random read/write IOPS per disk is 1,000,000.
          AllowedValues:
            - pl0
            - pl1
            - pl2
            - pl3
          Required: false
        ResidentNodeNumber:
          Type: Number
          Description:
            en: Resident node number of node group.
          Required: false
          MinValue: 1
          MaxValue: 100
        StorageSize:
          Type: Number
          Description:
            en: Storage size, measured in GiB.
          Required: false
          MinValue: 100
          MaxValue: 65000
        LocalStorageInstanceType:
          Type: String
          Description:
            en: Local SSD instance specifications.
          Required: false
    AssociationProperty: List[Parameters]
    Type: Json
    Description:
      en: List of BE or CN compute group information.
    Required: false
    MinLength: 0
    MaxLength: 50
    Default:
      - StoragePerformanceLevel: pl1
        DiskNumber: 1
        SpecType: standard
        StorageSize: 100
        ResidentNodeNumber: 3
        Cu: 8
  AdminPassword:
    Type: String
    Description:
      en: Password of admin user.
    Required: true
Resources:
  ExtensionResource:
    Type: ALIYUN::EMR::StarRocksInstance
    Properties:
      ClusterZoneId:
        Ref: ClusterZoneId
      PayType:
        Ref: PayType
      FrontendNodeGroups:
        Ref: FrontendNodeGroups
      Vswitches:
        Ref: Vswitches
      InstanceName:
        Ref: InstanceName
      VpcId:
        Ref: VpcId
      Version:
        Ref: Version
      RunMode:
        Ref: RunMode
      PackageType:
        Ref: PackageType
      OssAccessingRoleName:
        Ref: OssAccessingRoleName
      BackendNodeGroups:
        Ref: BackendNodeGroups
      AdminPassword:
        Ref: AdminPassword
Outputs:
  ResourceGroupId:
    Description: The ID of the resource group to which the StarRocks instance belongs..
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - ResourceGroupId
  MonitorType:
    Description: Monitor Type.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - MonitorType
  Encrypted:
    Description: Whether encrypted.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - Encrypted
  SgId:
    Description: Security Group ID of StarRocks instance.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - SgId
  Vswitches:
    Description: The VSwitches info of the StarRocks instance.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - Vswitches
  Version:
    Description: The version of the StarRocks instance.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - Version
  PackageType:
    Description: The package type of the StarRocks instance.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - PackageType
  Tags:
    Description: Tag list of the StarRocks instance.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - Tags
  EnableSsl:
    Description: Enable SSL.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - EnableSsl
  Architecture:
    Description: Architecture of StarRocks instance.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - Architecture
  KmsKeyId:
    Description: The ID of the Key Management Service (KMS) key.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - KmsKeyId
  EnableAutoMinorVersionUpgrade:
    Description: Whether minor version automatic upgrades are supported.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - EnableAutoMinorVersionUpgrade
  MaintainablePeriod:
    Description: StarRocks Instance maintainable period.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - MaintainablePeriod
  InstanceId:
    Description: The ID of the StarRocks instance.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - InstanceId
  AclId:
    Description: Access control ID.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - AclId
  CreateTime:
    Description: The creation time of the StarRocks instance.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - CreateTime
  MinorVersion:
    Description: StarRocks Instance minor version.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - MinorVersion
  PayType:
    Description: The pay type of the StarRocks instance.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - PayType
  EnabledAuditLoader:
    Description: Whether enable audit loader.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - EnabledAuditLoader
  InstanceName:
    Description: The name of the StarRocks instance.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - InstanceName
  VpcId:
    Description: The VPC ID of the StarRocks instance.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - VpcId
  RunMode:
    Description: The run mode of the StarRocks instance.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - RunMode
  OssLocation:
    Description: OSS Location.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - OssLocation
  IsolateLeader:
    Description: Whether leader FE is isolated.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - IsolateLeader
  ExpireTime:
    Description: StarRocks Instance expire time.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - ExpireTime
  RunningTime:
    Description: StarRocks Instance running time.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - RunningTime
  SecurityGroupManaged:
    Description: Whether security group is managed.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - SecurityGroupManaged
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "ClusterZoneId": {
      "Type": "String",
      "Description": {
        "en": "Primary ZoneId of StarRocks instance."
      },
      "Required": true,
      "AssociationProperty": "ZoneId"
    },
    "PayType": {
      "Type": "String",
      "Description": {
        "en": "The pay type of the StarRocks instance:\n- **prePaid\n- **postPaid\n"
      },
      "AllowedValues": [
        "PayAsYouGo",
        "PostPaid",
        "PayOnDemand",
        "Postpaid",
        "PostPay",
        "POSTPAY",
        "postPaid",
        "Subscription",
        "PrePaid",
        "PrePay",
        "Prepaid",
        "PREPAY",
        "prePaid"
      ],
      "Required": true,
      "Default": "Postpaid"
    },
    "FrontendNodeGroups": {
      "AssociationPropertyMetadata": {
        "Parameters": {
          "Cu": {
            "Type": "Number",
            "Description": {
              "en": "Number of CUs. CU (Compute Unit) is the basic measurement unit of the service, where 1 CU = 1 CPU core + 4 GiB memory."
            },
            "Required": false
          },
          "ZoneId": {
            "AssociationProperty": "ZoneId",
            "Type": "String",
            "Description": {
              "en": "Zone ID."
            },
            "Required": false
          },
          "DiskNumber": {
            "Type": "Number",
            "Description": {
              "en": "The number of disks."
            },
            "Required": false,
            "MinValue": 0,
            "MaxValue": 1
          },
          "SpecType": {
            "Type": "String",
            "Description": {
              "en": "Compute group specification types include the following:\n- **standard\n- **ramEnhanced."
            },
            "AllowedValues": [
              "standard",
              "ramEnhanced"
            ],
            "Required": false
          },
          "StoragePerformanceLevel": {
            "Type": "String",
            "Description": {
              "en": "Performance levels of cloud disks include the following values:\n- **pl0: Maximum random read/write IOPS per disk is 10,000.\n- **pl1: Maximum random read/write IOPS per disk is 50,000.\n- **pl2: Maximum random read/write IOPS per disk is 100,000.\n- **pl3: Maximum random read/write IOPS per disk is 1,000,000."
            },
            "Required": false
          },
          "ResidentNodeNumber": {
            "Type": "Number",
            "Description": {
              "en": "Resident node number of node group."
            },
            "Required": false,
            "MinValue": 1,
            "MaxValue": 11
          },
          "StorageSize": {
            "Type": "Number",
            "Description": {
              "en": "Storage size, measured in GiB."
            },
            "Required": false,
            "MinValue": 100,
            "MaxValue": 65000
          },
          "LocalStorageInstanceType": {
            "Type": "String",
            "Description": {
              "en": "Local SSD instance specifications."
            },
            "Required": false
          }
        }
      },
      "AssociationProperty": "List[Parameters]",
      "Type": "Json",
      "Description": {
        "en": "List of FE Node Group Information."
      },
      "Required": false,
      "MinLength": 0,
      "MaxLength": 50,
      "Default": [
        {
          "StoragePerformanceLevel": "pl1",
          "SpecType": "standard",
          "StorageSize": 100,
          "ResidentNodeNumber": 3,
          "Cu": 8
        }
      ]
    },
    "Vswitches": {
      "AssociationPropertyMetadata": {
        "Parameters": {
          "ZoneId": {
            "AssociationProperty": "ZoneId",
            "Type": "String",
            "Description": {
              "en": "Zone ID of VSwitch."
            },
            "Required": false
          },
          "VSwitchId": {
            "AssociationPropertyMetadata": {
              "VpcId": "${VpcId}",
              "ZoneId": "${ZoneId}"
            },
            "AssociationProperty": "ALIYUN::VPC::VSwitch::VSwitchId",
            "Type": "String",
            "Description": {
              "en": "ID of VSwitch."
            },
            "Required": true
          }
        }
      },
      "AssociationProperty": "List[Parameters]",
      "Type": "Json",
      "Description": {
        "en": "The VSwitches info of the StarRocks instance."
      },
      "Required": false,
      "MinLength": 0,
      "MaxLength": 3
    },
    "InstanceName": {
      "Type": "String",
      "Description": {
        "en": "The name of the StarRocks instance."
      },
      "Required": true
    },
    "VpcId": {
      "AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
      "Type": "String",
      "Description": {
        "en": "The VPC ID of the StarRocks instance."
      },
      "Required": true
    },
    "Version": {
      "Type": "String",
      "Description": {
        "en": "The version of the StarRocks instance."
      },
      "Required": true
    },
    "RunMode": {
      "Type": "String",
      "Description": {
        "en": "The run mode of the instance:\n- **shared_nothing: Storage and calculation.\n- **shared_data: Storage and calculation separation.\n- **lakehouse: Data lake analysis."
      },
      "AllowedValues": [
        "shared_nothing",
        "shared_data",
        "lakehouse"
      ],
      "Required": true
    },
    "PackageType": {
      "Type": "String",
      "Description": {
        "en": "The package type of the instance:\n- **trial: Starter Edition\n- **official: Standard"
      },
      "AllowedValues": [
        "trial",
        "official"
      ],
      "Required": true
    },
    "OssAccessingRoleName": {
      "Type": "String",
      "Description": {
        "en": "Role name used for password-free access to OSS."
      },
      "Required": false,
      "Default": "AliyunEMRStarRocksAccessingOSSRole"
    },
    "BackendNodeGroups": {
      "AssociationPropertyMetadata": {
        "Parameters": {
          "Cu": {
            "Type": "Number",
            "Description": {
              "en": "Number of CUs. CU (Compute Unit) is the basic measurement unit of the service, where 1 CU = 1 CPU core + 4 GiB memory."
            },
            "Required": false
          },
          "ZoneId": {
            "AssociationProperty": "ZoneId",
            "Type": "String",
            "Description": {
              "en": "Zone ID."
            },
            "Required": false
          },
          "DiskNumber": {
            "Type": "Number",
            "Description": {
              "en": "The number of disks."
            },
            "Required": false,
            "MinValue": 1,
            "MaxValue": 8
          },
          "SpecType": {
            "Type": "String",
            "Description": {
              "en": "Compute group specification types include the following:\n- **standard\n- **localSSD\n- **bigData\n- **ramEnhanced\n- **networkEnhanced."
            },
            "AllowedValues": [
              "standard",
              "localSSD",
              "bigData",
              "ramEnhanced",
              "networkEnhanced"
            ],
            "Required": false
          },
          "StoragePerformanceLevel": {
            "Type": "String",
            "Description": {
              "en": "Performance levels of cloud disks include the following values:\n- **pl0: Maximum random read/write IOPS per disk is 10,000.\n- **pl1: Maximum random read/write IOPS per disk is 50,000.\n- **pl2: Maximum random read/write IOPS per disk is 100,000.\n- **pl3: Maximum random read/write IOPS per disk is 1,000,000."
            },
            "AllowedValues": [
              "pl0",
              "pl1",
              "pl2",
              "pl3"
            ],
            "Required": false
          },
          "ResidentNodeNumber": {
            "Type": "Number",
            "Description": {
              "en": "Resident node number of node group."
            },
            "Required": false,
            "MinValue": 1,
            "MaxValue": 100
          },
          "StorageSize": {
            "Type": "Number",
            "Description": {
              "en": "Storage size, measured in GiB."
            },
            "Required": false,
            "MinValue": 100,
            "MaxValue": 65000
          },
          "LocalStorageInstanceType": {
            "Type": "String",
            "Description": {
              "en": "Local SSD instance specifications."
            },
            "Required": false
          }
        }
      },
      "AssociationProperty": "List[Parameters]",
      "Type": "Json",
      "Description": {
        "en": "List of BE or CN compute group information."
      },
      "Required": false,
      "MinLength": 0,
      "MaxLength": 50,
      "Default": [
        {
          "StoragePerformanceLevel": "pl1",
          "DiskNumber": 1,
          "SpecType": "standard",
          "StorageSize": 100,
          "ResidentNodeNumber": 3,
          "Cu": 8
        }
      ]
    },
    "AdminPassword": {
      "Type": "String",
      "Description": {
        "en": "Password of admin user."
      },
      "Required": true
    }
  },
  "Resources": {
    "ExtensionResource": {
      "Type": "ALIYUN::EMR::StarRocksInstance",
      "Properties": {
        "ClusterZoneId": {
          "Ref": "ClusterZoneId"
        },
        "PayType": {
          "Ref": "PayType"
        },
        "FrontendNodeGroups": {
          "Ref": "FrontendNodeGroups"
        },
        "Vswitches": {
          "Ref": "Vswitches"
        },
        "InstanceName": {
          "Ref": "InstanceName"
        },
        "VpcId": {
          "Ref": "VpcId"
        },
        "Version": {
          "Ref": "Version"
        },
        "RunMode": {
          "Ref": "RunMode"
        },
        "PackageType": {
          "Ref": "PackageType"
        },
        "OssAccessingRoleName": {
          "Ref": "OssAccessingRoleName"
        },
        "BackendNodeGroups": {
          "Ref": "BackendNodeGroups"
        },
        "AdminPassword": {
          "Ref": "AdminPassword"
        }
      }
    }
  },
  "Outputs": {
    "ResourceGroupId": {
      "Description": "The ID of the resource group to which the StarRocks instance belongs..",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "ResourceGroupId"
        ]
      }
    },
    "MonitorType": {
      "Description": "Monitor Type.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "MonitorType"
        ]
      }
    },
    "Encrypted": {
      "Description": "Whether encrypted.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "Encrypted"
        ]
      }
    },
    "SgId": {
      "Description": "Security Group ID of StarRocks instance.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "SgId"
        ]
      }
    },
    "Vswitches": {
      "Description": "The VSwitches info of the StarRocks instance.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "Vswitches"
        ]
      }
    },
    "Version": {
      "Description": "The version of the StarRocks instance.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "Version"
        ]
      }
    },
    "PackageType": {
      "Description": "The package type of the StarRocks instance.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "PackageType"
        ]
      }
    },
    "Tags": {
      "Description": "Tag list of the StarRocks instance.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "Tags"
        ]
      }
    },
    "EnableSsl": {
      "Description": "Enable SSL.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "EnableSsl"
        ]
      }
    },
    "Architecture": {
      "Description": "Architecture of StarRocks instance.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "Architecture"
        ]
      }
    },
    "KmsKeyId": {
      "Description": "The ID of the Key Management Service (KMS) key.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "KmsKeyId"
        ]
      }
    },
    "EnableAutoMinorVersionUpgrade": {
      "Description": "Whether minor version automatic upgrades are supported.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "EnableAutoMinorVersionUpgrade"
        ]
      }
    },
    "MaintainablePeriod": {
      "Description": "StarRocks Instance maintainable period.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "MaintainablePeriod"
        ]
      }
    },
    "InstanceId": {
      "Description": "The ID of the StarRocks instance.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "InstanceId"
        ]
      }
    },
    "AclId": {
      "Description": "Access control ID.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "AclId"
        ]
      }
    },
    "CreateTime": {
      "Description": "The creation time of the StarRocks instance.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "CreateTime"
        ]
      }
    },
    "MinorVersion": {
      "Description": "StarRocks Instance minor version.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "MinorVersion"
        ]
      }
    },
    "PayType": {
      "Description": "The pay type of the StarRocks instance.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "PayType"
        ]
      }
    },
    "EnabledAuditLoader": {
      "Description": "Whether enable audit loader.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "EnabledAuditLoader"
        ]
      }
    },
    "InstanceName": {
      "Description": "The name of the StarRocks instance.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "InstanceName"
        ]
      }
    },
    "VpcId": {
      "Description": "The VPC ID of the StarRocks instance.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "VpcId"
        ]
      }
    },
    "RunMode": {
      "Description": "The run mode of the StarRocks instance.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "RunMode"
        ]
      }
    },
    "OssLocation": {
      "Description": "OSS Location.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "OssLocation"
        ]
      }
    },
    "IsolateLeader": {
      "Description": "Whether leader FE is isolated.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "IsolateLeader"
        ]
      }
    },
    "ExpireTime": {
      "Description": "StarRocks Instance expire time.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "ExpireTime"
        ]
      }
    },
    "RunningTime": {
      "Description": "StarRocks Instance running time.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "RunningTime"
        ]
      }
    },
    "SecurityGroupManaged": {
      "Description": "Whether security group is managed.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "SecurityGroupManaged"
        ]
      }
    }
  }
}