Group and display parameters by using a ROS template

更新时间:
复制 MD 格式

You can define parameter groups in a Resource Orchestration Service (ROS) template to control how parameters are organized and displayed in the console.

Table format

The following example demonstrates how to aggregate and display parameters in a table.

Sample template

Set the GroupType parameter in the Metadata section to display parameters in either a table or a flat layout.

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  Boolean:
    Type: Boolean
    Default: false
  Number:
    Type: Number
    Default: 3
    Description: Number Desc
  Input:
    Type: String
    Default: '12'
  RegionId:
    Type: String
    AssociationProperty: RegionId
    Description: Description
  cidrBlock:
    Type: String
    AssociationProperty: ALIYUN::VPC::VSwitch::CidrBlock
    Default: ''
    AssociationPropertyMetadata:
      VpcId: ${vpcId}
  VPCId:
    Type: String
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Default: vpc-ssss
    AssociationPropertyMetadata:
      RegionId: ${RegionId}
  vSwitchId:
    Type: String
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    Default: vsw-ssss
    AssociationPropertyMetadata:
      RegionId: ${RegionId}
      VPCId: ${VPCId}
  InstanceType:
    Type: String
    AssociationProperty: ALIYUN::ECS::Instance::InstanceType
    Default: ecs.s.s.1
    AssociationPropertyMetadata:
      RegionId: ${RegionId}
Metadata:
  ALIYUN::ROS::Interface:
    ParameterGroups:
      - Label: Network Settings
        Parameters:
          - VPCId
          - vSwitchId
      - Label: Table Group Settings
        GroupType: Table
        Parameters:
          - RegionId
          - Label: Grid Item 1
            Items:
              - Boolean
              - Key: Number
            Description: Description for Grid Item 1
          - Input
          - InstanceType

The Metadata section supports the following parameters:

  • Label: The display name for the group.

  • GroupType: The display format for the group. Valid values:

    • Table: Displays parameters in a table format.

    • Normal (default): Displays parameters in a flat layout.

    • Payment: Displays parameters in a flat layout.

  • Description: The description for the group.

  • PaymentId: If your template has multiple payment-type parameter groups, specify a unique ID for each to ensure correct parameter matching.

  • Parameters: The list of parameters in the group. It can include the following sub-parameters:

    • Items: The elements assigned to a grid item in a grid layout.

    • Label: The label for this group.

    • Description: The description for this group.

Console display example

When you use the sample template to create a stack or stack group, the ROS console aggregates and displays the parameters in a table. The form area for the parameter group includes a RegionId drop-down list (for example, China (Hangzhou)), a Grid Item 1 switch and its numeric input field, an Input text box, and an instance type selector. The instance type selector displays the available instance types in a table. The columns include Instance Family, Instance Type, vCPU, Memory, Processor Base/Turbo Frequency, Reference Price, and Processor Model. Examples include burstable performance instance t5 (ecs.t5-lc2m1.nano, 1 vCPU / 0.5 GiB) and shared basic xn4 (ecs.xn4.small, 1 vCPU / 1 GiB). Paging is also supported.

Grouped layout

The following example demonstrates how to combine and group parameters for a more compact display.

Use the Metadata key in your template to define a combined layout for your parameters.

Limitations:

  • A parameter can belong to only one group.

  • Parameters defined in a resource plan are not displayed in the groups.

  • Hidden parameters are not displayed in the groups.

Sample template

ROSTemplateFormatVersion: '2015-09-01'
Description:
  en: Select the region where you want to deploy resources, and the VPC and NAT Gateway under your account. The SLB instances, ECS instances, and other cloud resources that are required for SensorsData are automatically created and the software is installed.
  zh-cn: 选择需要部署的地域以及账号下的VPC和NAT, 然后会自动创建SensorsData所需的SLB、ECS以及其他云资源并进行软件的安装。
Parameters:
  CustomerId:
    Type: String
    Label:
      zh-cn: 客户名称
      en: Customer ID
    MinLength: 4
    MaxLength: 100
  DataSinkDomainName:
    Type: String
    Default: null
    Label:
      en: Data sink domain name
      zh-cn: 数据接收域名
    Description:
      zh-cn: 如果已经预先准备好域名,请输入您数据接收的域名<br>如果还未准备域名请留空,更多信息,请参见 </font><a href='https://manual.sensorsdata.cn/sa/latest/%E6%9C%8D%E5%8A%A1%E8%BD%AC%E5%8F%91%E9%85%8D%E7%BD%AE-22258255.html' target='_blank'><b> 手动登录环境进行配置</b><font color='blue'></a><br> <b><font color='red'>请注意:此处输入的域名只会进行神策部署后的配置,依然需要您自行备案和 DNS 解析!</b></font>
      en: If you have a domain name, enter the domain name that you want to use for data ingestion.<br>If you do not have a domain name, leave this parameter empty. For more information, see </font><a href='https://manual.sensorsdata.cn/sa/latest/%E6%9C%8D%E5%8A%A1%E8%BD%AC%E5%8F%91%E9%85%8D%E7%BD%AE-22258255.html' target='_blank'><b> Manually configure the environment</b><font color='blue'></a><br> <b><font color='red'>Note: The domain name that you enter is used only for post-deployment configurations. You must separately apply for an ICP filing and configure DNS resolution for the domain name.</b></font>
  QueryDomainName:
    Type: String
    Default: null
    Label:
      en: Analysis page domain name
      zh-cn: 分析页面域名
    Description:
      zh-cn: 如果已经预先准备好域名,请输入您登录分析页面的域名<br> 如果还未准备域名请留空,更多信息,请参见 </font><a href='https://manual.sensorsdata.cn/sa/latest/%E6%9C%8D%E5%8A%A1%E8%BD%AC%E5%8F%91%E9%85%8D%E7%BD%AE-22258255.html' target='_blank'><b> 手动登录环境进行配置</b><font color='blue'></a> <br> <b><font color='red'>请注意:此处输入的域名只会进行神策部署后的配置,依然需要您自行备案和DNS解析!</b></font>
      en: If you have a domain name, enter the domain name that you want to use to log on to the analysis page.<br> If you do not have a domain name, leave this parameter empty. For more information, see </font><a href='https://manual.sensorsdata.cn/sa/latest/%E6%9C%8D%E5%8A%A1%E8%BD%AC%E5%8F%91%E9%85%8D%E7%BD%AE-22258255.html' target='_blank'><b> Manually configure the environment</b><font color='blue'></a> <br> <b><font color='red'>Note: The domain name that you enter is used only for post-deployment configurations. You must separately apply for an ICP filing and configure DNS resolution for the domain name.</b></font>
  ZoneId:
    Type: String
    AssociationProperty: ALIYUN::ECS::ZoneId
    Label:
      en: Availability Zone
      zh-cn: 请选择可用区
  VpcId:
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Type: String
    Description:
      zh-cn: 希望神策集群和现有业务同一个VPC可选已有的VPC</br>需要和其它业务网络隔离可以点击跳转新建VPC,后续有需要再打通。
      en: If you want the cluster to be in the same VPC as your existing services, select an existing VPC.If you want to isolate the network from other services, create a new VPC. You can connect them later if required.
    Label:
      en: VPC ID
      zh-cn: 选择VPC
  VSwitchCidrBlock:
    Type: String
    Label:
      en: VSwitch IPv4 CIDR block
      zh-cn: 填写交换机子网IPv4网段
    Description:
      zh-cn: 必须是所属专有网络的子网段,并且没有被其他交换机占用
      en: The CIDR block must be a subnet of the VPC and must not be used by another VSwitch.
    Default: 192.168.XX.XX/24
  SystemDiskCategory:
    Type: String
    AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
    AssociationPropertyMetadata:
      ZoneId: ${ZoneId}
      InstanceType: ${EcsInstanceType}
      LocaleKey: DiskCategory
    Description: Select ultra disk, SSD cloud disk, or ESSD cloud disk. <b><font color='red'>We recommend that you select ultra disk.</b></font>
    Label:
      en: System disk category
      zh-cn: 系统盘规格
    AllowedValues:
      - cloud_essd
      - cloud_ssd
      - cloud_efficiency
  SystemDiskSize:
    Type: Number
    Description:
      en: 'The size of the system disk. Unit: GiB. Valid values: 50 to 500.'
      zh-cn: 实例系统盘大小,单位为GiB。取值范围:50~500。
    Label:
      en: System disk size
      zh-cn: 系统盘大小
    MinValue: 50
    MaxValue: 500
    Default: 50
  MetaDiskCategory:
    Type: String
    AssociationProperty: ALIYUN::ECS::Disk::DataDiskCategory
    AssociationPropertyMetadata:
      ZoneId: ${ZoneId}
      InstanceType: ${EcsInstanceType}
      LocaleKey: DiskCategory
    Description: For high random read/write operations, select an SSD cloud disk or ESSD cloud disk. <b><font color='red'>We recommend that you select an SSD cloud disk.</b></font>
    ConstraintDescription: Reselect a category for the metadata disk. Due to high random read/write operations, you must select at least the SSD category.
    Label:
      en: Metadata disk category
      zh-cn: 元数据盘规格
    AllowedValues:
      - cloud_essd
      - cloud_ssd
  MetaDiskSize:
    Type: Number
    Description:
      en: 'The size of the metadata disk. Unit: GiB. Valid values: 250 to 32768.'
      zh-cn: 元数据盘大小,单位为GiB。可选范围:250~32768
    Label:
      en: Metadata disk size
      zh-cn: 元数据盘空间
    MinValue: 250
    MaxValue: 32768
    Default: 250
  RndDiskCategory:
    Type: String
    AssociationProperty: ALIYUN::ECS::Disk::DataDiskCategory
    AssociationPropertyMetadata:
      ZoneId: ${ZoneId}
      InstanceType: ${EcsInstanceType}
      LocaleKey: DiskCategory
    Description: For high random read/write operations, select an SSD cloud disk or ESSD cloud disk. <b><font color='red'>We recommend that you select an SSD cloud disk.</b></font>
    ConstraintDescription: Reselect a category for the random data disk. Due to high random read/write operations, you must select at least the SSD category.
    Label:
      en: Random data disk category
      zh-cn: 随机数据盘规格
    AllowedValues:
      - cloud_essd
      - cloud_ssd
  RndDiskSize:
    Type: Number
    Description:
      en: 'The size of the random data disk. Unit: GiB. Valid values: 250 to 32768.'
      zh-cn: 随机数据盘大小,单位为GiB。取值范围:250-32768
    Label:
      en: Random data disk size
      zh-cn: 随机数据盘空间
    MinValue: 250
    MaxValue: 32768
    Default: 250
  SeqDiskCategory:
    Type: String
    AssociationProperty: ALIYUN::ECS::Disk::DataDiskCategory
    AssociationPropertyMetadata:
      ZoneId: ${ZoneId}
      InstanceType: ${EcsInstanceType}
      LocaleKey: DiskCategory
    Description: For workloads with primarily sequential read/write operations, select ultra disk, SSD cloud disk, or ESSD cloud disk. <b><font color='red'>We recommend that you select ultra disk.</b></font>
    Label:
      en: Sequence data disk category
      zh-cn: 顺序数据盘规格
    AllowedValues:
      - cloud_essd
      - cloud_ssd
      - cloud_efficiency
  SeqDiskSize:
    Type: Number
    Description:
      en: 'The size of the sequence data disk. Unit: GiB. Valid values: 1000 to 32768.'
      zh-cn: 顺序数据盘大小,单位为GiB。取值范围:1000~32768
    Label:
      en: Sequence data disk size
      zh-cn: 顺序数据盘空间
    MinValue: 1000
    MaxValue: 32768
    Default: 1000
  StdataDiskCategory:
    Type: String
    AssociationProperty: ALIYUN::ECS::Disk::DataDiskCategory
    AssociationPropertyMetadata:
      ZoneId: ${ZoneId}
      InstanceType: ${EcsInstanceType}
      LocaleKey: DiskCategory
    Description: For workloads with primarily sequential read/write operations, select ultra disk, SSD cloud disk, or ESSD cloud disk. <b><font color='red'>We recommend that you select ultra disk.</b></font>
    Label:
      en: Data receiving disk category
      zh-cn: 数据接收盘规格
    AllowedValues:
      - cloud_essd
      - cloud_ssd
      - cloud_efficiency
  StdataDiskSize:
    Type: Number
    Description:
      en: 'The size of the data receiving disk. Unit: GiB. Valid values: 300 to 32768.'
      zh-cn: 数据接收盘大小,单位为GiB。取值范围:300~32768
    Label:
      en: Data receiving disk size
      zh-cn: 数据接收盘空间
    MinValue: 300
    MaxValue: 32768
    Default: 300
  EcsInstanceType:
    Type: String
    Label:
      en: Instance type
      zh-cn: 根据地域-可用区的不同,可选择下表中神策为Mini低配3节点集群推荐的ECS规格
    AssociationProperty: ALIYUN::ECS::Instance::InstanceType
    AssociationPropertyMetadata:
      ZoneId: ${ZoneId}
      InstanceChargeType: ${InstanceChargeType}
    AllowedValues:
      - ecs.r5.2xlarge
      - ecs.r7.2xlarge
      - ecs.r7a.2xlarge
      - ecs.g7.4xlarge
      - ecs.g7a.4xlarge
      - ecs.g7.4xlarge
      - ecs.g7se.4xlarge
      - ecs.g5.4xlarge
      - ecs.g5ne.4xlarge
      - ecs.r7se.2xlarge
  ECSPeriodUnit:
    AssociationPropertyMetadata:
      LocaleKey: PricingCycle
      Visible:
        Condition:
          Fn::Not:
            Fn::Equals:
              - ${InstanceChargeType}
              - PostPaid
    Type: String
    Default: Year
    Label:
      zh-cn: 购买周期
      en: Subscription period
    AllowedValues:
      - Month
      - Year
  ECSPeriod:
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Not:
            Fn::Equals:
              - ${InstanceChargeType}
              - PostPaid
    Default: 1
    Label:
      zh-cn: 购买时长
      en: Subscription duration
    AllowedValues:
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      - 9
      - 10
      - 11
    Type: Number
  InstanceChargeType:
    Default: PrePaid
    Type: String
    Label:
      zh-cn: ECS实例的付费模式
      en: Billing method for ECS
    AllowedValues:
      - PostPaid
      - PrePaid
    AssociationPropertyMetadata:
      LocaleKey: InstanceChargeType
  NatGatewayBandwidth:
    Label:
      en: NAT Gateway bandwidth
      zh-cn: NAT网关带宽
    Description:
      zh-cn: 神策将在选择的VPC下创建一个NAT网关出网访问。带宽取值范围:1~200 Mbps,推荐保持默认的5 Mbps即可
      en: A NAT Gateway is created in the selected VPC for outbound Internet access. The bandwidth can range from 1 to 200 Mbit/s. We recommend that you use the default value of 5 Mbit/s.
    ConstraintDescription:
      zh-cn: NAT网关带宽,ECS出网通过NAT。取值范围:1~200, 单位:Mbps
      en: 'The bandwidth of the NAT Gateway, which is used for outbound traffic from ECS instances. Valid values: 1 to 200. Unit: Mbit/s.'
    Default: 5
    Type: Number
    MinValue: 1
    MaxValue: 200
  DatasinkServerCertificateId:
    Type: String
    AssociationProperty: ALIYUN::CAS::Certificate::CertificateId
    Label:
      en: Certificate for the data sink domain name
      zh-cn: 数据接收域名证书
    Default: null
    Description:
      zh-cn: 请选择或者新建您准备给<b><font color='red'>数据接收域名</b></font>的SSL证书。请注意以下几点:</br> 1、选择 SSL 证书后,将会自动配置SLB数据接收的端口443为HTTPS协议</br>2、如果未选择证书,将会自动配置SLB数据接收的端口443为HTTP协议</br> <b><font color='red'>考虑到常见埋点需求,数据接收域名推荐配置证书!</b></font>
      en: Select or create an SSL certificate for the <b><font color='red'>data sink domain name</b></font>. Note the following points:  1. Selecting an SSL certificate automatically configures port 443 on the SLB instance for HTTPS.2. If you do not select a certificate, port 443 on the SLB instance uses HTTP. <b><font color='red'>For common data tracking requirements, we recommend that you configure a certificate for the data sink domain name.</b></font>
  QueryServerCertificateId:
    Type: String
    AssociationProperty: ALIYUN::CAS::Certificate::CertificateId
    Label:
      en: Certificate for the analysis page domain name
      zh-cn: 分析页面域名证书
    Default: null
    Description:
      zh-cn: 请选择或者新建您准备给<b><font color='red'>后台分析页面域名</b></font>的SSL证书。请注意以下几点:</br> 1、选择SSL证书后,将会自动配置SLB分析页面的端口8107为HTTPS协议</br> 2、如果未选择证书,将默认配置SLB分析页面的端口8107为HTTP协议</br> 若分析页面域名和数据接收域名相同,可以选择同一个证书
      en: Select or create an SSL certificate for the <b><font color='red'>backend analysis page domain name</b></font>. Note the following points:  1. Selecting an SSL certificate automatically configures port 8107 on the SLB instance for HTTPS. 2. If you do not select a certificate, port 8107 on the SLB instance defaults to HTTP. If the domain name for the analysis page is the same as the data sink domain name, you can select the same certificate.
  LoadBalancerSpec:
    Type: String
    AssociationProperty: ALIYUN::SLB::Instance::InstanceType
    Label:
      en: Specifications
      zh-cn: 规格
    Default: slb.s3.large
    AllowedValues:
      - slb.s2.medium
      - slb.s3.small
      - slb.s3.medium
      - slb.s3.large
      - slb.s3.xlarge
      - slb.s3.xxlarge
Resources:
  EcsVSwitch:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      VSwitchName:
        Fn::Join:
          - '-'
          - - sensorsdata-vsw
            - StackId
            - Ref: ALIYUN::StackId
      VpcId:
        Ref: VpcId
      CidrBlock:
        Ref: VSwitchCidrBlock
      ZoneId:
        Ref: ZoneId
  EcsSecurityGroup:
    Type: ALIYUN::ECS::SecurityGroup
    Properties:
      SecurityGroupName:
        Fn::Join:
          - '-'
          - - SensorsData-sg
            - StackId
            - Ref: ALIYUN::StackId
      VpcId:
        Ref: VpcId
      SecurityGroupIngress:
        - PortRange: 22/22
          Priority: 1
          SourceCidrIp: 192.144.XX.XX/32,49.232.XX.XX/32,47.93.XX.XX/32,123.59.XX.XX/32,107.150.XX.XX/32,128.1.XX.XX/32,100.104.XX.XX/16
          IpProtocol: tcp
          NicType: internet
      SecurityGroupEgress:
        - PortRange: '-1/-1'
          Priority: 1
          IpProtocol: all
          DestCidrIp: 0.0.0.0/0
          NicType: internet
        - PortRange: '-1/-1'
          Priority: 1
          IpProtocol: all
          DestCidrIp: 0.0.0.0/0
          NicType: intranet
  EcsInstanceGroup:
    Type: ALIYUN::ECS::InstanceGroup
    Properties:
      IoOptimized: optimized
      DiskMappings:
        - Category:
            Ref: MetaDiskCategory
          Size:
            Ref: MetaDiskSize
          Device: /dev/xvdb
        - Category:
            Ref: RndDiskCategory
          Size:
            Ref: RndDiskSize
          Device: /dev/xvdc
        - Category:
            Ref: SeqDiskCategory
          Size:
            Ref: SeqDiskSize
          Device: /dev/xvdd
        - Category:
            Ref: SeqDiskCategory
          Size:
            Ref: SeqDiskSize
          Device: /dev/xvde
        - Category:
            Ref: SeqDiskCategory
          Size:
            Ref: SeqDiskSize
          Device: /dev/xvdf
        - Category:
            Ref: StdataDiskCategory
          Size:
            Ref: StdataDiskSize
          Device: /dev/xvdg
      PeriodUnit:
        Ref: ECSPeriodUnit
      Period:
        Ref: ECSPeriod
      SystemDiskCategory:
        Ref: SystemDiskCategory
      SystemDiskSize:
        Ref: SystemDiskSize
      InstanceChargeType:
        Ref: InstanceChargeType
      SecurityGroupId:
        Ref: EcsSecurityGroup
      VSwitchId:
        Ref: EcsVSwitch
      MaxAmount: 3
      VpcId:
        Ref: VpcId
      ImageId: centos_7_9
      InstanceType:
        Ref: EcsInstanceType
      Password: Sensorsdata@2015
      AllocatePublicIP: false
      InstanceName:
        Fn::Join:
          - '-'
          - - sensorsdata-ecs[1,2]
            - StackId
            - Ref: ALIYUN::StackId
      SecurityEnhancementStrategy: Active
  Slb:
    Type: ALIYUN::SLB::LoadBalancer
    Properties:
      LoadBalancerName:
        Fn::Join:
          - '-'
          - - sensorsdata-lb
            - StackId
            - Ref: ALIYUN::StackId
      VpcId:
        Ref: VpcId
      VSwitchId:
        Ref: EcsVSwitch
      AddressType: internet
      LoadBalancerSpec:
        Ref: LoadBalancerSpec
      PayType: PayOnDemand
      AddressIPVersion: ipv4
      InternetChargeType: paybytraffic
  SlbBackendServerAttachment:
    DependsOn:
      - EcsInstanceGroup
    Type: ALIYUN::SLB::BackendServerAttachment
    Properties:
      BackendServerList:
        Fn::GetAtt:
          - EcsInstanceGroup
          - InstanceIds
      LoadBalancerId:
        Ref: Slb
  Slb443Listener:
    DependsOn: Slb
    Type: ALIYUN::SLB::Listener
    Properties:
      Persistence:
        CookieTimeout: 3600
        StickySession: 'on'
        PersistenceTimeout: 180
        XForwardedFor: 'on'
        StickySessionType: insert
      ListenerPort: 443
      Scheduler: wrr
      Bandwidth: -1
      HealthCheck:
        HttpCode: http_2xx,http_3xx,http_4xx,http_5xx
        HealthCheckType: http
        UnhealthyThreshold: 3
        Timeout: 5
        HealthyThreshold: 3
        Port: 8106
        URI: /
        Interval: 2
      LoadBalancerId:
        Ref: Slb
      BackendServerPort: 8106
      Protocol:
        Fn::If:
          - HttporHttps4Datasink
          - https
          - http
      ServerCertificateId:
        Ref: DatasinkServerCertificateId
  Slb8107Listener:
    DependsOn: Slb
    Type: ALIYUN::SLB::Listener
    Properties:
      Persistence:
        CookieTimeout: 1800
        StickySession: 'on'
        PersistenceTimeout: 180
        XForwardedFor: 'on'
        StickySessionType: insert
      ListenerPort: 8107
      Bandwidth: -1
      RequestTimeout: 180
      HealthCheck:
        HttpCode: http_2xx,http_3xx,http_4xx,http_5xx
        HealthCheckType: http
        UnhealthyThreshold: 3
        Timeout: 5
        HealthyThreshold: 3
        Port: 8107
        URI: /
        Interval: 2
      LoadBalancerId:
        Ref: Slb
      BackendServerPort: 8107
      Protocol:
        Fn::If:
          - HttporHttps4Query
          - https
          - http
      ServerCertificateId:
        Ref: QueryServerCertificateId
  EipSlb:
    Type: ALIYUN::VPC::EIP
    Properties:
      InternetChargeType: PayByTraffic
      Bandwidth: 20
      Name:
        Fn::Join:
          - '-'
          - - sensorsdata-lb-eip
            - StackId
            - Ref: ALIYUN::StackId
  EipSlbAssociation:
    Type: ALIYUN::VPC::EIPAssociation
    Properties:
      InstanceId:
        Ref: Slb
      AllocationId:
        Ref: EipSlb
  VpcNatGateway:
    Type: ALIYUN::VPC::NatGateway
    DependsOn: EcsVSwitch
    Properties:
      Description: Public NAT for the cluster.
      NatGatewayName:
        Fn::Join:
          - '-'
          - - sensorsdata-nat
            - StackId
            - Ref: ALIYUN::StackId
      VSwitchId:
        Fn::GetAtt:
          - EcsVSwitch
          - VSwitchId
      VpcId:
        Ref: VpcId
  EipNat:
    Type: ALIYUN::VPC::EIP
    Properties:
      InternetChargeType: PayByTraffic
      Bandwidth:
        Ref: NatGatewayBandwidth
      Name:
        Fn::Join:
          - '-'
          - - sensorsdata-nat-eip
            - StackId
            - Ref: ALIYUN::StackId
  EipNatAssociation:
    DependsOn: VpcNatGateway
    Type: ALIYUN::VPC::EIPAssociation
    Properties:
      InstanceId:
        Ref: VpcNatGateway
      AllocationId:
        Ref: EipNat
  SNatEntry:
    Type: ALIYUN::ECS::SNatEntry
    DependsOn: EipNatAssociation
    Properties:
      SNatIp:
        Fn::GetAtt:
          - EipNat
          - EipAddress
      SNatTableId:
        Fn::GetAtt:
          - VpcNatGateway
          - SNatTableId
      SourceCIDR:
        Ref: VSwitchCidrBlock
      SnatEntryName: SNAT forwarding for cluster outbound traffic.
  DNatEntry:
    Type: ALIYUN::ECS::ForwardEntry
    DependsOn: EipNatAssociation
    Properties:
      ForwardEntryName: SSH DNAT forwarding for the cluster.
      ExternalIp:
        Fn::GetAtt:
          - EipNat
          - EipAddress
      ForwardTableId:
        Fn::GetAtt:
          - VpcNatGateway
          - ForwardTableId
      ExternalPort: '12321'
      InternalIp:
        Fn::Select:
          - '0'
          - Fn::GetAtt:
              - EcsInstanceGroup
              - PrivateIps
      IpProtocol: TCP
      InternalPort: '22'
      PortBreak: 'true'
  Invocation:
    Type: ALIYUN::ECS::RunCommand
    Properties:
      InstanceIds:
        Fn::GetAtt:
          - EcsInstanceGroup
          - InstanceIds
      Type: RunShellScript
      CommandContent:
        Fn::Sub:
          - |
            #!/bin/bash
            cat >> /root/conf.txt << EOF
            SystemDiskCategory=${SystemDiskCategory}
            SystemDiskSize=${SystemDiskSize}
            MetaDiskCategory=${MetaDiskCategory}
            MetaDiskSize=${MetaDiskSize}
            RndDiskCategory=${RndDiskCategory}
            RndDiskSize=${RndDiskSize}
            SeqDiskCategory=${SeqDiskCategory}
            SeqDiskSize=${SeqDiskSize}
            StdataDiskCategory=${StdataDiskCategory}
            StdataDiskSize=${StdataDiskSize}
            CustomerId=${CustomerId}
            DataSinkDomainName=${DataSinkDomainName}
            QueryDomainName=${QueryDomainName}
            SlbEip=${SlbEip}
            InstanceIps=${InstanceIps}
            EOF
          - SlbEip:
              Fn::GetAtt:
                - EipSlb
                - EipAddress
            SystemDiskCategory:
              Ref: SystemDiskCategory
            SystemDiskSize:
              Ref: SystemDiskSize
            MetaDiskCategory:
              Ref: MetaDiskCategory
            MetaDiskSize:
              Ref: MetaDiskSize
            RndDiskCategory:
              Ref: RndDiskCategory
            RndDiskSize:
              Ref: RndDiskSize
            SeqDiskCategory:
              Ref: SeqDiskCategory
            SeqDiskSize:
              Ref: SeqDiskSize
            StdataDiskCategory:
              Ref: StdataDiskCategory
            StdataDiskSize:
              Ref: StdataDiskSize
            CustomerId:
              Ref: CustomerId
            DataSinkDomainName:
              Ref: DataSinkDomainName
            QueryDomainName:
              Ref: QueryDomainName
            InstanceIps:
              Fn::GetAtt:
                - EcsInstanceGroup
                - PrivateIps
Conditions:
  HttporHttps4Datasink:
    Fn::Not:
      Fn::Equals:
        - null
        - Ref: DatasinkServerCertificateId
  HttporHttps4Query:
    Fn::Not:
      Fn::Equals:
        - null
        - Ref: QueryServerCertificateId
Outputs:
  EipSlbAddress:
    Description:
      en: The cluster's public IP address. You must map the data sink and analysis page domain names to this IP address.
      zh-cn: 神策集群对外暴露的公网IP,需要解析到数据接收和查询的域名
    Value:
      Fn::GetAtt:
        - EipSlb
        - EipAddress
  EipEcsAddress:
    Description:
      en: The public IP address used to whitelist access to ECS instances.
      zh-cn: ECS 通过白名单公网访问的IP地址
    Value:
      Fn::GetAtt:
        - EipNat
        - EipAddress
Metadata:
  ALIYUN::ROS::Interface:
    ParameterGroups:
      - Parameters:
          - ZoneId
          - VpcId
          - VSwitchCidrBlock
          - NatGatewayBandwidth
        Label:
          default:
            zh-cn: 基础网络配置
            en: Network configuration
      - Parameters:
          - LoadBalancerSpec
          - DatasinkServerCertificateId
          - QueryServerCertificateId
        Label:
          default:
            en: SLB configuration
            zh-cn: SLB相关配置
      - Parameters:
          - Label:
              en: Charge type
              zh-cn: 付费模式
            Items:
              - InstanceChargeType
              - Key: ECSPeriodUnit
                ShowLabel: true
              - Key: ECSPeriod
                ShowLabel: true
          - EcsInstanceType
          - Label:
              en: System disk
              zh-cn: 系统盘
            Description: You can select ultra disk, SSD cloud disk, or ESSD cloud disk. <b><font color='red'>We recommend that you select ultra disk.</b></font>
            Items:
              - SystemDiskCategory
              - Key: SystemDiskSize
                ShowLabel: true
          - Label:
              en: Metadata disk
              zh-cn: 元数据盘
            Description: Due to high random read/write operations, you can select an SSD cloud disk or ESSD cloud disk. <b><font color='red'>We recommend that you select an SSD cloud disk.</b></font>
            Items:
              - MetaDiskCategory
              - Key: MetaDiskSize
                ShowLabel: true
          - Label:
              en: Random data disk
              zh-cn: 随机数据盘
            Description: Due to high random read/write operations, you can select an SSD cloud disk or ESSD cloud disk. <b><font color='red'>We recommend that you select an SSD cloud disk.</b></font>
            Items:
              - RndDiskCategory
              - Key: RndDiskSize
                ShowLabel: true
          - Label:
              en: Sequence data disk
              zh-cn: 顺序数据盘
            Description: For workloads that require mainly sequential read/write operations, you can select ultra disk, SSD cloud disk, or ESSD cloud disk. <b><font color='red'>We recommend that you select ultra disk.</b></font>
            Items:
              - SeqDiskCategory
              - Key: SeqDiskSize
                ShowLabel: true
          - Label:
              en: Data receiving disk
              zh-cn: 数据接收盘
            Description: For workloads that require mainly sequential read/write operations, you can select ultra disk, SSD cloud disk, or ESSD cloud disk. <b><font color='red'>We recommend that you select ultra disk.</b></font>
            Items:
              - StdataDiskCategory
              - Key: StdataDiskSize
                ShowLabel: true
        Label:
          default:
            en: ECS configuration
            zh-cn: 云服务器
      - Parameters:
          - CustomerId
          - DataSinkDomainName
          - QueryDomainName
        Label:
          default:
            zh-cn: 客户环境配置
            en: Environment configuration

The Metadata section supports the following parameters:

  • Items: The parameters within a specific group.

  • Label: The display name for the group.

  • Description: The description for the group.

  • ShowLabel: Specifies whether to display parameter labels within the group. Valid values:

    • true: Displays the labels.

    • false (default): Hides the labels.

  • Parameters: The list of parameters in the group, which supports the following sub-parameters:

    • Label: The label for this group.

    • Description: The description for this group.

Console display example

When you use the sample template to create a stack or stack group, the ROS console combines and displays the parameters in a compact layout. The recommended configurations for each disk are as follows: set the system disk size to 50 GB and select an ultra disk; set the metadata disk size to 250 GB and select an SSD cloud disk for its high random I/O; set the random data disk size to 250 GB and select an SSD cloud disk for its high random I/O; set the sequence data disk size to 1,000 GB and select an ultra disk for its primarily sequential I/O; and set the data receiving disk size to 300 GB and select an ultra disk for its primarily sequential I/O.