ALIYUN::Milvus::Instance

更新时间:
复制 MD 格式

ALIYUN::Milvus::Instance类型用于创建Milvus实例。

语法

{
  "Type": "ALIYUN::Milvus::Instance",
  "Properties": {
    "Components": List,
    "DbVersion": String,
    "DbAdminPassword": String,
    "InstanceName": String,
    "PaymentType": String,
    "VSwitchIds": List,
    "VpcId": String,
    "ZoneId": String,
    "AutoRenew": Boolean,
    "AutoBackup": Boolean,
    "AiFunction": Boolean,
    "AutoPay": Boolean,
    "BackupRestoreInfo": Map,
    "Configuration": String,
    "Encrypted": Boolean,
    "Ha": Boolean,
    "IsMultiAzStorage": Boolean,
    "KmsKeyId": String,
    "LoadReplicas": Integer,
    "MultiZoneMode": String,
    "PaymentDuration": Integer,
    "PromotionNo": String,
    "PaymentDurationUnit": String,
    "ResourceGroupId": String,
    "Tags": List
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

Components

List

是

否

实例的组件规格。

更多信息,请参考Components语法。

DbAdminPassword

String

是

否

数据库管理员密码。

密码长度必须为 8 到 30 个字符,且至少包含一个大写字母、一个小写字母、一个数字和一个 @#$%^*_+- 中的特殊字符。

DbVersion

String

是

否

数据库引擎版本。

无

InstanceName

String

是

否

实例的名称。

无

PaymentType

String

是

否

实例的计费方式。

取值:

  • PayAsYouGo:按量付费

  • Subscription:包年包月

VpcId

String

是

否

VPC ID。

无

VSwitchIds

List

是

否

交换机配置。

更多信息,请参考VSwitchIds属性。

ZoneId

String

是

否

实例的主可用区 ID。

无

AiFunction

Boolean

否

否

是否开启 AI 功能。

无

AutoBackup

Boolean

否

否

是否开启自动备份。

无

AutoPay

Boolean

否

否

是否自动支付订单。

无

AutoRenew

Boolean

否

否

订阅是否自动续费。

无

BackupRestoreInfo

Map

否

否

备份恢复信息。

更多信息,请参考BackupRestoreInfo属性。

Configuration

String

否

否

YAML 格式的实例配置。

无

Encrypted

Boolean

否

否

是否开启 OSS 加密。

无

Ha

Boolean

否

否

是否开启高可用。

无

IsMultiAzStorage

Boolean

否

否

是否开启多可用区存储。

无

KmsKeyId

String

否

否

用于加密的 KMS 密钥的 ID。

无

LoadReplicas

Integer

否

否

加载副本的数量。

无

MultiZoneMode

String

否

否

多可用区部署模式。

取值:

  • Single :

    单可用区

  • Two_ha :

    双可用区高可用版

  • Two :

    双可用区

PaymentDuration

Integer

否

否

订阅时长。

无

PaymentDurationUnit

String

否

否

订阅时长的单位。

取值:

  • Month :

    月

  • Year :

    年

PromotionNo

String

否

否

促销编号。

无

ResourceGroupId

String

否

否

资源组 ID。

无

Tags

List

否

否

要附加到 Milvus 实例的标签。

更多信息,请参考Tags属性。

Components语法

"Components": [
  {
    "CuType": String,
    "CuNum": Integer,
    "Type": String,
    "DiskSizeType": String,
    "Replica": Integer
  }
]

Components属性

属性名称

类型

必须

允许更新

描述

约束

CuNum

Integer

是

否

计算单元的数量。

无

Replica

Integer

是

否

组件副本的数量。

无

Type

String

是

否

组件类型。

取值:

  • proxy :

    proxy

  • mix_coordinator :

    mix_coordinator

  • data :

    data

  • query :

    query

  • standalone :

    standalone

  • index :

    index

CuType

String

否

否

计算单元类型。

无

DiskSizeType

String

否

否

磁盘大小类型。

取值:

  • Large

  • Normal

BackupRestoreInfo语法

"BackupRestoreInfo": {
  "BackupId": String,
  "SourceClusterId": String,
  "BackupName": String
}

BackupRestoreInfo属性

属性名称

类型

必须

允许更新

描述

约束

BackupId

String

否

否

备份 ID。

无

BackupName

String

否

否

备份名称。

无

SourceClusterId

String

否

否

源集群 ID。

无

Tags语法

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

Tags属性

属性名称

类型

必须

允许更新

描述

约束

Key

String

是

否

标签键

无

Value

String

否

否

标签值

无

VSwitchIds语法

"VSwitchIds": [
  {
    "VswId": String,
    "ZoneId": String
  }
]

VSwitchIds属性

属性名称

类型

必须

允许更新

描述

约束

VswId

String

是

否

交换机 ID。

无

ZoneId

String

是

否

交换机的可用区 ID。

无

返回值

Fn::GetAtt

  • InstanceId:实例的 ID。

示例

场景 1 :创建 Milvus 单机版实例

ROSTemplateFormatVersion: '2015-09-01'
Description:
  zh-cn: 在已有VPC网络下创建一个简单的Milvus单机版实例,使用standalone组件和按量付费模式。
  en: Create a simple Milvus standalone instance in an existing VPC network with standalone component and pay-as-you-go billing.
Parameters:
  ZoneId:
    Type: String
    Label:
      zh-cn: 可用区
      en: Availability Zone
    Description:
      zh-cn: 实例所在的可用区。
      en: The availability zone of the instance.
    AssociationProperty: ALIYUN::ECS::Instance::ZoneId
    AssociationPropertyMetadata:
      AutoSelectFirst: true
  VpcId:
    Type: String
    Label:
      zh-cn: VPC ID
      en: VPC ID
    Description:
      zh-cn: 实例所属的VPC。
      en: The VPC for the instance.
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
  VSwitchId:
    Type: String
    Label:
      zh-cn: 交换机ID
      en: VSwitch ID
    Description:
      zh-cn: 实例所属的交换机。
      en: The VSwitch for the instance.
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
      ZoneId: ${ZoneId}
  InstanceName:
    Type: String
    Label:
      zh-cn: 实例名称
      en: Instance Name
    Description:
      zh-cn: Milvus实例的名称。
      en: The name of the Milvus instance.
    Default: my-milvus-instance
    MinLength: 1
  DbAdminPassword:
    Type: String
    Label:
      zh-cn: 管理员密码
      en: Admin Password
    Description:
      zh-cn: 数据库管理员密码,8-30个字符,必须包含大写字母、小写字母、数字和特殊字符(@#$%^*_+-)。
      en: Database admin password, 8-30 characters, must contain uppercase, lowercase, digit and special character (@#$%^*_+-).
    NoEcho: true
    MinLength: 8
    MaxLength: 30
Resources:
  MilvusInstance:
    Type: ALIYUN::Milvus::Instance
    Properties:
      InstanceName:
        Ref: InstanceName
      DbAdminPassword:
        Ref: DbAdminPassword
      DbVersion: '2.5'
      PaymentType: PayAsYouGo
      ZoneId:
        Ref: ZoneId
      VpcId:
        Ref: VpcId
      VSwitchIds:
        - VswId:
            Ref: VSwitchId
          ZoneId:
            Ref: ZoneId
      Components:
        - Type: standalone
          CuNum: 2
          Replica: 1
Outputs:
  InstanceId:
    Description:
      zh-cn: Milvus实例ID。
      en: Milvus instance ID.
    Label:
      zh-cn: 实例ID
      en: Instance ID
    Value:
      Fn::GetAtt:
        - MilvusInstance
        - InstanceId
Metadata:
  ALIYUN::ROS::Interface:
    ParameterGroups:
      - Parameters:
          - ZoneId
          - VpcId
          - VSwitchId
          - InstanceName
          - DbAdminPassword
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": {
    "zh-cn": "在已有VPC网络下创建一个简单的Milvus单机版实例,使用standalone组件和按量付费模式。",
    "en": "Create a simple Milvus standalone instance in an existing VPC network with standalone component and pay-as-you-go billing."
  },
  "Parameters": {
    "ZoneId": {
      "Type": "String",
      "Label": {
        "zh-cn": "可用区",
        "en": "Availability Zone"
      },
      "Description": {
        "zh-cn": "实例所在的可用区。",
        "en": "The availability zone of the instance."
      },
      "AssociationProperty": "ALIYUN::ECS::Instance::ZoneId",
      "AssociationPropertyMetadata": {
        "AutoSelectFirst": true
      }
    },
    "VpcId": {
      "Type": "String",
      "Label": {
        "zh-cn": "VPC ID",
        "en": "VPC ID"
      },
      "Description": {
        "zh-cn": "实例所属的VPC。",
        "en": "The VPC for the instance."
      },
      "AssociationProperty": "ALIYUN::ECS::VPC::VPCId"
    },
    "VSwitchId": {
      "Type": "String",
      "Label": {
        "zh-cn": "交换机ID",
        "en": "VSwitch ID"
      },
      "Description": {
        "zh-cn": "实例所属的交换机。",
        "en": "The VSwitch for the instance."
      },
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
      "AssociationPropertyMetadata": {
        "VpcId": "${VpcId}",
        "ZoneId": "${ZoneId}"
      }
    },
    "InstanceName": {
      "Type": "String",
      "Label": {
        "zh-cn": "实例名称",
        "en": "Instance Name"
      },
      "Description": {
        "zh-cn": "Milvus实例的名称。",
        "en": "The name of the Milvus instance."
      },
      "Default": "my-milvus-instance",
      "MinLength": 1
    },
    "DbAdminPassword": {
      "Type": "String",
      "Label": {
        "zh-cn": "管理员密码",
        "en": "Admin Password"
      },
      "Description": {
        "zh-cn": "数据库管理员密码,8-30个字符,必须包含大写字母、小写字母、数字和特殊字符(@#$%^*_+-)。",
        "en": "Database admin password, 8-30 characters, must contain uppercase, lowercase, digit and special character (@#$%^*_+-)."
      },
      "NoEcho": true,
      "MinLength": 8,
      "MaxLength": 30
    }
  },
  "Resources": {
    "MilvusInstance": {
      "Type": "ALIYUN::Milvus::Instance",
      "Properties": {
        "InstanceName": {
          "Ref": "InstanceName"
        },
        "DbAdminPassword": {
          "Ref": "DbAdminPassword"
        },
        "DbVersion": "2.5",
        "PaymentType": "PayAsYouGo",
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "VpcId": {
          "Ref": "VpcId"
        },
        "VSwitchIds": [
          {
            "VswId": {
              "Ref": "VSwitchId"
            },
            "ZoneId": {
              "Ref": "ZoneId"
            }
          }
        ],
        "Components": [
          {
            "Type": "standalone",
            "CuNum": 2,
            "Replica": 1
          }
        ]
      }
    }
  },
  "Outputs": {
    "InstanceId": {
      "Description": {
        "zh-cn": "Milvus实例ID。",
        "en": "Milvus instance ID."
      },
      "Label": {
        "zh-cn": "实例ID",
        "en": "Instance ID"
      },
      "Value": {
        "Fn::GetAtt": [
          "MilvusInstance",
          "InstanceId"
        ]
      }
    }
  },
  "Metadata": {
    "ALIYUN::ROS::Interface": {
      "ParameterGroups": [
        {
          "Parameters": [
            "ZoneId",
            "VpcId",
            "VSwitchId",
            "InstanceName",
            "DbAdminPassword"
          ]
        }
      ]
    }
  }
}

场景 2 :创建多组件 Milvus 集群实例

ROSTemplateFormatVersion: '2015-09-01'
Description:
  zh-cn: 创建VPC网络和多组件Milvus集群实例(proxy、query、data、index、coordinator、streaming),启用高可用和自动备份,实现生产级向量数据库服务。
  en: Create a VPC network and multi-component Milvus cluster instance (proxy, query, data, index, coordinator, streaming) with high availability and auto backup enabled for production-grade vector database service.
Parameters:
  ZoneId:
    Type: String
    Label:
      zh-cn: 可用区
      en: Availability Zone
    Description:
      zh-cn: 实例所在的可用区。
      en: The availability zone of the instance.
    AssociationProperty: ALIYUN::ECS::Instance::ZoneId
    AssociationPropertyMetadata:
      AutoSelectFirst: true
  CommonName:
    Type: String
    Label:
      zh-cn: 资源名称前缀
      en: Resource Name Prefix
    Description:
      zh-cn: 所有资源名称的统一前缀。
      en: Unified name prefix for all resources.
    Default: milvus-cluster
    MinLength: 1
    MaxLength: 50
  DbAdminPassword:
    Type: String
    Label:
      zh-cn: 管理员密码
      en: Admin Password
    Description:
      zh-cn: 数据库管理员密码,8-30个字符,必须包含大写字母、小写字母、数字和特殊字符(@#$%^*_+-)。
      en: Database admin password, 8-30 characters, must contain uppercase, lowercase, digit and special character (@#$%^*_+-).
    NoEcho: true
    MinLength: 8
    MaxLength: 30
  QueryCuNum:
    Type: Number
    Label:
      zh-cn: Query节点CU数量
      en: Query Node CU Count
    Description:
      zh-cn: Query组件的计算单元数量。
      en: The number of compute units for the query component.
    Default: 4
    MinValue: 1
  DataCuNum:
    Type: Number
    Label:
      zh-cn: Data节点CU数量
      en: Data Node CU Count
    Description:
      zh-cn: Data组件的计算单元数量。
      en: The number of compute units for the data component.
    Default: 4
    MinValue: 1
  IndexCuNum:
    Type: Number
    Label:
      zh-cn: Index节点CU数量
      en: Index Node CU Count
    Description:
      zh-cn: Index组件的计算单元数量。
      en: The number of compute units for the index component.
    Default: 2
    MinValue: 1
Resources:
  Vpc:
    Type: ALIYUN::ECS::VPC
    Properties:
      VpcName:
        Fn::Sub: ${CommonName}-vpc
      CidrBlock: 192.168.0.0/16
  VSwitch:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      VSwitchName:
        Fn::Sub: ${CommonName}-vsw
      VpcId:
        Ref: Vpc
      CidrBlock: 192.168.0.0/24
      ZoneId:
        Ref: ZoneId
  MilvusInstance:
    Type: ALIYUN::Milvus::Instance
    DependsOn:
      - Vpc
      - VSwitch
    Properties:
      InstanceName:
        Fn::Sub: ${CommonName}-instance
      DbAdminPassword:
        Ref: DbAdminPassword
      DbVersion: '2.5'
      PaymentType: PayAsYouGo
      ZoneId:
        Ref: ZoneId
      VpcId:
        Ref: Vpc
      VSwitchIds:
        - VswId:
            Ref: VSwitch
          ZoneId:
            Ref: ZoneId
      Ha: true
      AutoBackup: true
      Components:
        - Type: proxy
          CuNum: 2
          Replica: 2
        - Type: query
          CuNum:
            Ref: QueryCuNum
          Replica: 2
        - Type: data
          CuNum:
            Ref: DataCuNum
          Replica: 2
        - Type: index
          CuNum:
            Ref: IndexCuNum
          Replica: 1
        - Type: mix_coordinator
          CuNum: 1
          Replica: 2
        - Type: streaming
          CuNum: 2
          Replica: 2
      Tags:
        - Key: Environment
          Value: Production
        - Key: Team
          Value: AI
        - Key: CreatedBy
          Value: ROS
Outputs:
  InstanceId:
    Description:
      zh-cn: Milvus实例ID。
      en: Milvus instance ID.
    Label:
      zh-cn: 实例ID
      en: Instance ID
    Value:
      Fn::GetAtt:
        - MilvusInstance
        - InstanceId
  VpcId:
    Description:
      zh-cn: VPC ID。
      en: VPC ID.
    Label:
      zh-cn: VPC ID
      en: VPC ID
    Value:
      Ref: Vpc
  VSwitchId:
    Description:
      zh-cn: 交换机ID。
      en: VSwitch ID.
    Label:
      zh-cn: 交换机ID
      en: VSwitch ID
    Value:
      Ref: VSwitch
Metadata:
  ALIYUN::ROS::Interface:
    ParameterGroups:
      - Parameters:
          - ZoneId
          - CommonName
          - DbAdminPassword
      - Parameters:
          - QueryCuNum
          - DataCuNum
          - IndexCuNum
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": {
    "zh-cn": "创建VPC网络和多组件Milvus集群实例(proxy、query、data、index、coordinator、streaming),启用高可用和自动备份,实现生产级向量数据库服务。",
    "en": "Create a VPC network and multi-component Milvus cluster instance (proxy, query, data, index, coordinator, streaming) with high availability and auto backup enabled for production-grade vector database service."
  },
  "Parameters": {
    "ZoneId": {
      "Type": "String",
      "Label": {
        "zh-cn": "可用区",
        "en": "Availability Zone"
      },
      "Description": {
        "zh-cn": "实例所在的可用区。",
        "en": "The availability zone of the instance."
      },
      "AssociationProperty": "ALIYUN::ECS::Instance::ZoneId",
      "AssociationPropertyMetadata": {
        "AutoSelectFirst": true
      }
    },
    "CommonName": {
      "Type": "String",
      "Label": {
        "zh-cn": "资源名称前缀",
        "en": "Resource Name Prefix"
      },
      "Description": {
        "zh-cn": "所有资源名称的统一前缀。",
        "en": "Unified name prefix for all resources."
      },
      "Default": "milvus-cluster",
      "MinLength": 1,
      "MaxLength": 50
    },
    "DbAdminPassword": {
      "Type": "String",
      "Label": {
        "zh-cn": "管理员密码",
        "en": "Admin Password"
      },
      "Description": {
        "zh-cn": "数据库管理员密码,8-30个字符,必须包含大写字母、小写字母、数字和特殊字符(@#$%^*_+-)。",
        "en": "Database admin password, 8-30 characters, must contain uppercase, lowercase, digit and special character (@#$%^*_+-)."
      },
      "NoEcho": true,
      "MinLength": 8,
      "MaxLength": 30
    },
    "QueryCuNum": {
      "Type": "Number",
      "Label": {
        "zh-cn": "Query节点CU数量",
        "en": "Query Node CU Count"
      },
      "Description": {
        "zh-cn": "Query组件的计算单元数量。",
        "en": "The number of compute units for the query component."
      },
      "Default": 4,
      "MinValue": 1
    },
    "DataCuNum": {
      "Type": "Number",
      "Label": {
        "zh-cn": "Data节点CU数量",
        "en": "Data Node CU Count"
      },
      "Description": {
        "zh-cn": "Data组件的计算单元数量。",
        "en": "The number of compute units for the data component."
      },
      "Default": 4,
      "MinValue": 1
    },
    "IndexCuNum": {
      "Type": "Number",
      "Label": {
        "zh-cn": "Index节点CU数量",
        "en": "Index Node CU Count"
      },
      "Description": {
        "zh-cn": "Index组件的计算单元数量。",
        "en": "The number of compute units for the index component."
      },
      "Default": 2,
      "MinValue": 1
    }
  },
  "Resources": {
    "Vpc": {
      "Type": "ALIYUN::ECS::VPC",
      "Properties": {
        "VpcName": {
          "Fn::Sub": "${CommonName}-vpc"
        },
        "CidrBlock": "192.168.0.0/16"
      }
    },
    "VSwitch": {
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "VSwitchName": {
          "Fn::Sub": "${CommonName}-vsw"
        },
        "VpcId": {
          "Ref": "Vpc"
        },
        "CidrBlock": "192.168.0.0/24",
        "ZoneId": {
          "Ref": "ZoneId"
        }
      }
    },
    "MilvusInstance": {
      "Type": "ALIYUN::Milvus::Instance",
      "DependsOn": [
        "Vpc",
        "VSwitch"
      ],
      "Properties": {
        "InstanceName": {
          "Fn::Sub": "${CommonName}-instance"
        },
        "DbAdminPassword": {
          "Ref": "DbAdminPassword"
        },
        "DbVersion": "2.5",
        "PaymentType": "PayAsYouGo",
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "VpcId": {
          "Ref": "Vpc"
        },
        "VSwitchIds": [
          {
            "VswId": {
              "Ref": "VSwitch"
            },
            "ZoneId": {
              "Ref": "ZoneId"
            }
          }
        ],
        "Ha": true,
        "AutoBackup": true,
        "Components": [
          {
            "Type": "proxy",
            "CuNum": 2,
            "Replica": 2
          },
          {
            "Type": "query",
            "CuNum": {
              "Ref": "QueryCuNum"
            },
            "Replica": 2
          },
          {
            "Type": "data",
            "CuNum": {
              "Ref": "DataCuNum"
            },
            "Replica": 2
          },
          {
            "Type": "index",
            "CuNum": {
              "Ref": "IndexCuNum"
            },
            "Replica": 1
          },
          {
            "Type": "mix_coordinator",
            "CuNum": 1,
            "Replica": 2
          },
          {
            "Type": "streaming",
            "CuNum": 2,
            "Replica": 2
          }
        ],
        "Tags": [
          {
            "Key": "Environment",
            "Value": "Production"
          },
          {
            "Key": "Team",
            "Value": "AI"
          },
          {
            "Key": "CreatedBy",
            "Value": "ROS"
          }
        ]
      }
    }
  },
  "Outputs": {
    "InstanceId": {
      "Description": {
        "zh-cn": "Milvus实例ID。",
        "en": "Milvus instance ID."
      },
      "Label": {
        "zh-cn": "实例ID",
        "en": "Instance ID"
      },
      "Value": {
        "Fn::GetAtt": [
          "MilvusInstance",
          "InstanceId"
        ]
      }
    },
    "VpcId": {
      "Description": {
        "zh-cn": "VPC ID。",
        "en": "VPC ID."
      },
      "Label": {
        "zh-cn": "VPC ID",
        "en": "VPC ID"
      },
      "Value": {
        "Ref": "Vpc"
      }
    },
    "VSwitchId": {
      "Description": {
        "zh-cn": "交换机ID。",
        "en": "VSwitch ID."
      },
      "Label": {
        "zh-cn": "交换机ID",
        "en": "VSwitch ID"
      },
      "Value": {
        "Ref": "VSwitch"
      }
    }
  },
  "Metadata": {
    "ALIYUN::ROS::Interface": {
      "ParameterGroups": [
        {
          "Parameters": [
            "ZoneId",
            "CommonName",
            "DbAdminPassword"
          ]
        },
        {
          "Parameters": [
            "QueryCuNum",
            "DataCuNum",
            "IndexCuNum"
          ]
        }
      ]
    }
  }
}

场景 3 :创建企业级向量数据库平台

ROSTemplateFormatVersion: '2015-09-01'
Description:
  zh-cn: 创建完整的企业级向量数据库平台,包含多可用区VPC网络、Milvus集群(多组件+多可用区存储+KMS加密+自定义配置+AI函数),实现高可用、安全加密的向量检索服务。
  en: Create a complete enterprise-level vector database platform including multi-AZ VPC network, Milvus cluster with multi-component, multi-AZ storage, KMS encryption, custom configuration and AI function for highly available and securely encrypted vector search service.
Parameters:
  ZoneId:
    Type: String
    Label:
      zh-cn: 主可用区
      en: Primary Availability Zone
    Description:
      zh-cn: 实例所在的主可用区。
      en: The primary availability zone of the instance.
    AssociationProperty: ALIYUN::ECS::Instance::ZoneId
    AssociationPropertyMetadata:
      AutoSelectFirst: true
  ZoneId2:
    Type: String
    Label:
      zh-cn: 备可用区
      en: Secondary Availability Zone
    Description:
      zh-cn: 多可用区部署的备可用区,需与主可用区不同。
      en: The secondary availability zone for multi-AZ deployment. Must be different from the primary zone.
    AssociationProperty: ALIYUN::ECS::Instance::ZoneId
  CommonName:
    Type: String
    Label:
      zh-cn: 资源名称前缀
      en: Resource Name Prefix
    Description:
      zh-cn: 所有资源名称的统一前缀。
      en: Unified name prefix for all resources.
    Default: milvus-platform
    MinLength: 1
    MaxLength: 50
  DbAdminPassword:
    Type: String
    Label:
      zh-cn: 管理员密码
      en: Admin Password
    Description:
      zh-cn: 数据库管理员密码,8-30个字符,必须包含大写字母、小写字母、数字和特殊字符(@#$%^*_+-)。
      en: Database admin password, 8-30 characters, must contain uppercase, lowercase, digit and special character (@#$%^*_+-).
    NoEcho: true
    MinLength: 8
    MaxLength: 30
  DbVersion:
    Type: String
    Label:
      zh-cn: 数据库引擎版本
      en: Database Engine Version
    Description:
      zh-cn: Milvus数据库引擎版本。
      en: The Milvus database engine version.
    Default: '2.5'
  QueryCuNum:
    Type: Number
    Label:
      zh-cn: Query节点CU数量
      en: Query Node CU Count
    Description:
      zh-cn: Query组件的计算单元数量。
      en: The number of compute units for the query component.
    Default: 8
    MinValue: 1
  DataCuNum:
    Type: Number
    Label:
      zh-cn: Data节点CU数量
      en: Data Node CU Count
    Description:
      zh-cn: Data组件的计算单元数量。
      en: The number of compute units for the data component.
    Default: 8
    MinValue: 1
  IndexCuNum:
    Type: Number
    Label:
      zh-cn: Index节点CU数量
      en: Index Node CU Count
    Description:
      zh-cn: Index组件的计算单元数量。
      en: The number of compute units for the index component.
    Default: 4
    MinValue: 1
  ProxyReplica:
    Type: Number
    Label:
      zh-cn: Proxy副本数
      en: Proxy Replica Count
    Description:
      zh-cn: Proxy组件的副本数量。
      en: The number of replicas for the proxy component.
    Default: 2
    MinValue: 1
  QueryReplica:
    Type: Number
    Label:
      zh-cn: Query副本数
      en: Query Replica Count
    Description:
      zh-cn: Query组件的副本数量。
      en: The number of replicas for the query component.
    Default: 2
    MinValue: 1
  LoadReplicas:
    Type: Number
    Label:
      zh-cn: 加载副本数
      en: Load Replicas
    Description:
      zh-cn: 数据加载的副本数量。
      en: The number of load replicas.
    Default: 2
    MinValue: 1
  EnableEncryption:
    Type: String
    Label:
      zh-cn: 是否启用OSS加密
      en: Enable OSS Encryption
    Description:
      zh-cn: 是否为Milvus实例启用OSS存储加密。
      en: Whether to enable OSS storage encryption for the Milvus instance.
    AllowedValues:
      - 'true'
      - 'false'
    Default: 'true'
  EnableAiFunction:
    Type: String
    Label:
      zh-cn: 是否启用AI函数
      en: Enable AI Function
    Description:
      zh-cn: 是否为Milvus实例启用AI函数功能。
      en: Whether to enable AI function for the Milvus instance.
    AllowedValues:
      - 'true'
      - 'false'
    Default: 'true'
Conditions:
  Encrypted:
    Fn::Equals:
      - Ref: EnableEncryption
      - 'true'
  AiFunction:
    Fn::Equals:
      - Ref: EnableAiFunction
      - 'true'
Resources:
  Vpc:
    Type: ALIYUN::ECS::VPC
    Properties:
      VpcName:
        Fn::Sub: ${CommonName}-vpc
      CidrBlock: 172.16.0.0/16
  VSwitchPrimary:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      VSwitchName:
        Fn::Sub: ${CommonName}-vsw-primary
      VpcId:
        Ref: Vpc
      CidrBlock: 172.16.0.0/24
      ZoneId:
        Ref: ZoneId
  VSwitchSecondary:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      VSwitchName:
        Fn::Sub: ${CommonName}-vsw-secondary
      VpcId:
        Ref: Vpc
      CidrBlock: 172.16.1.0/24
      ZoneId:
        Ref: ZoneId2
  MilvusInstance:
    Type: ALIYUN::Milvus::Instance
    DependsOn:
      - Vpc
      - VSwitchPrimary
      - VSwitchSecondary
    Properties:
      InstanceName:
        Fn::Sub: ${CommonName}-instance
      DbAdminPassword:
        Ref: DbAdminPassword
      DbVersion:
        Ref: DbVersion
      PaymentType: PayAsYouGo
      ZoneId:
        Ref: ZoneId
      VpcId:
        Ref: Vpc
      VSwitchIds:
        - VswId:
            Ref: VSwitchPrimary
          ZoneId:
            Ref: ZoneId
        - VswId:
            Ref: VSwitchSecondary
          ZoneId:
            Ref: ZoneId2
      Ha: true
      MultiZoneMode: Two
      IsMultiAzStorage: true
      AutoBackup: true
      Encrypted:
        Ref: EnableEncryption
      AiFunction:
        Ref: EnableAiFunction
      LoadReplicas:
        Ref: LoadReplicas
      Components:
        - Type: proxy
          CuNum: 2
          Replica:
            Ref: ProxyReplica
        - Type: query
          CuNum:
            Ref: QueryCuNum
          Replica:
            Ref: QueryReplica
          DiskSizeType: Large
        - Type: data
          CuNum:
            Ref: DataCuNum
          Replica: 2
        - Type: index
          CuNum:
            Ref: IndexCuNum
          Replica: 2
        - Type: mix_coordinator
          CuNum: 1
          Replica: 2
        - Type: streaming
          CuNum: 4
          Replica: 2
      Configuration: |-
        dataCoord:
          segment:
            maxSize: 1024
            sealProportion: 0.12
        queryCoord:
          balance:
            autoBalance: true
        common:
          security:
            superUsers: root
      Tags:
        - Key: Environment
          Value: Production
        - Key: Team
          Value: AI
        - Key: CreatedBy
          Value: ROS
        - Key: CostCenter
          Value: VectorSearch
        - Key: DataClassification
          Value: Confidential
Outputs:
  InstanceId:
    Description:
      zh-cn: Milvus实例ID。
      en: Milvus instance ID.
    Label:
      zh-cn: 实例ID
      en: Instance ID
    Value:
      Fn::GetAtt:
        - MilvusInstance
        - InstanceId
  VpcId:
    Description:
      zh-cn: VPC ID。
      en: VPC ID.
    Label:
      zh-cn: VPC ID
      en: VPC ID
    Value:
      Ref: Vpc
  VSwitchPrimaryId:
    Description:
      zh-cn: 主可用区交换机ID。
      en: Primary zone VSwitch ID.
    Label:
      zh-cn: 主交换机ID
      en: Primary VSwitch ID
    Value:
      Ref: VSwitchPrimary
  VSwitchSecondaryId:
    Description:
      zh-cn: 备可用区交换机ID。
      en: Secondary zone VSwitch ID.
    Label:
      zh-cn: 备交换机ID
      en: Secondary VSwitch ID
    Value:
      Ref: VSwitchSecondary
Metadata:
  ALIYUN::ROS::Interface:
    ParameterGroups:
      - Parameters:
          - ZoneId
          - ZoneId2
          - CommonName
          - DbAdminPassword
          - DbVersion
      - Parameters:
          - QueryCuNum
          - DataCuNum
          - IndexCuNum
          - ProxyReplica
          - QueryReplica
          - LoadReplicas
      - Parameters:
          - EnableEncryption
          - EnableAiFunction
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": {
    "zh-cn": "创建完整的企业级向量数据库平台,包含多可用区VPC网络、Milvus集群(多组件+多可用区存储+KMS加密+自定义配置+AI函数),实现高可用、安全加密的向量检索服务。",
    "en": "Create a complete enterprise-level vector database platform including multi-AZ VPC network, Milvus cluster with multi-component, multi-AZ storage, KMS encryption, custom configuration and AI function for highly available and securely encrypted vector search service."
  },
  "Parameters": {
    "ZoneId": {
      "Type": "String",
      "Label": {
        "zh-cn": "主可用区",
        "en": "Primary Availability Zone"
      },
      "Description": {
        "zh-cn": "实例所在的主可用区。",
        "en": "The primary availability zone of the instance."
      },
      "AssociationProperty": "ALIYUN::ECS::Instance::ZoneId",
      "AssociationPropertyMetadata": {
        "AutoSelectFirst": true
      }
    },
    "ZoneId2": {
      "Type": "String",
      "Label": {
        "zh-cn": "备可用区",
        "en": "Secondary Availability Zone"
      },
      "Description": {
        "zh-cn": "多可用区部署的备可用区,需与主可用区不同。",
        "en": "The secondary availability zone for multi-AZ deployment. Must be different from the primary zone."
      },
      "AssociationProperty": "ALIYUN::ECS::Instance::ZoneId"
    },
    "CommonName": {
      "Type": "String",
      "Label": {
        "zh-cn": "资源名称前缀",
        "en": "Resource Name Prefix"
      },
      "Description": {
        "zh-cn": "所有资源名称的统一前缀。",
        "en": "Unified name prefix for all resources."
      },
      "Default": "milvus-platform",
      "MinLength": 1,
      "MaxLength": 50
    },
    "DbAdminPassword": {
      "Type": "String",
      "Label": {
        "zh-cn": "管理员密码",
        "en": "Admin Password"
      },
      "Description": {
        "zh-cn": "数据库管理员密码,8-30个字符,必须包含大写字母、小写字母、数字和特殊字符(@#$%^*_+-)。",
        "en": "Database admin password, 8-30 characters, must contain uppercase, lowercase, digit and special character (@#$%^*_+-)."
      },
      "NoEcho": true,
      "MinLength": 8,
      "MaxLength": 30
    },
    "DbVersion": {
      "Type": "String",
      "Label": {
        "zh-cn": "数据库引擎版本",
        "en": "Database Engine Version"
      },
      "Description": {
        "zh-cn": "Milvus数据库引擎版本。",
        "en": "The Milvus database engine version."
      },
      "Default": "2.5"
    },
    "QueryCuNum": {
      "Type": "Number",
      "Label": {
        "zh-cn": "Query节点CU数量",
        "en": "Query Node CU Count"
      },
      "Description": {
        "zh-cn": "Query组件的计算单元数量。",
        "en": "The number of compute units for the query component."
      },
      "Default": 8,
      "MinValue": 1
    },
    "DataCuNum": {
      "Type": "Number",
      "Label": {
        "zh-cn": "Data节点CU数量",
        "en": "Data Node CU Count"
      },
      "Description": {
        "zh-cn": "Data组件的计算单元数量。",
        "en": "The number of compute units for the data component."
      },
      "Default": 8,
      "MinValue": 1
    },
    "IndexCuNum": {
      "Type": "Number",
      "Label": {
        "zh-cn": "Index节点CU数量",
        "en": "Index Node CU Count"
      },
      "Description": {
        "zh-cn": "Index组件的计算单元数量。",
        "en": "The number of compute units for the index component."
      },
      "Default": 4,
      "MinValue": 1
    },
    "ProxyReplica": {
      "Type": "Number",
      "Label": {
        "zh-cn": "Proxy副本数",
        "en": "Proxy Replica Count"
      },
      "Description": {
        "zh-cn": "Proxy组件的副本数量。",
        "en": "The number of replicas for the proxy component."
      },
      "Default": 2,
      "MinValue": 1
    },
    "QueryReplica": {
      "Type": "Number",
      "Label": {
        "zh-cn": "Query副本数",
        "en": "Query Replica Count"
      },
      "Description": {
        "zh-cn": "Query组件的副本数量。",
        "en": "The number of replicas for the query component."
      },
      "Default": 2,
      "MinValue": 1
    },
    "LoadReplicas": {
      "Type": "Number",
      "Label": {
        "zh-cn": "加载副本数",
        "en": "Load Replicas"
      },
      "Description": {
        "zh-cn": "数据加载的副本数量。",
        "en": "The number of load replicas."
      },
      "Default": 2,
      "MinValue": 1
    },
    "EnableEncryption": {
      "Type": "String",
      "Label": {
        "zh-cn": "是否启用OSS加密",
        "en": "Enable OSS Encryption"
      },
      "Description": {
        "zh-cn": "是否为Milvus实例启用OSS存储加密。",
        "en": "Whether to enable OSS storage encryption for the Milvus instance."
      },
      "AllowedValues": [
        "true",
        "false"
      ],
      "Default": "true"
    },
    "EnableAiFunction": {
      "Type": "String",
      "Label": {
        "zh-cn": "是否启用AI函数",
        "en": "Enable AI Function"
      },
      "Description": {
        "zh-cn": "是否为Milvus实例启用AI函数功能。",
        "en": "Whether to enable AI function for the Milvus instance."
      },
      "AllowedValues": [
        "true",
        "false"
      ],
      "Default": "true"
    }
  },
  "Conditions": {
    "Encrypted": {
      "Fn::Equals": [
        {
          "Ref": "EnableEncryption"
        },
        "true"
      ]
    },
    "AiFunction": {
      "Fn::Equals": [
        {
          "Ref": "EnableAiFunction"
        },
        "true"
      ]
    }
  },
  "Resources": {
    "Vpc": {
      "Type": "ALIYUN::ECS::VPC",
      "Properties": {
        "VpcName": {
          "Fn::Sub": "${CommonName}-vpc"
        },
        "CidrBlock": "172.16.0.0/16"
      }
    },
    "VSwitchPrimary": {
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "VSwitchName": {
          "Fn::Sub": "${CommonName}-vsw-primary"
        },
        "VpcId": {
          "Ref": "Vpc"
        },
        "CidrBlock": "172.16.0.0/24",
        "ZoneId": {
          "Ref": "ZoneId"
        }
      }
    },
    "VSwitchSecondary": {
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "VSwitchName": {
          "Fn::Sub": "${CommonName}-vsw-secondary"
        },
        "VpcId": {
          "Ref": "Vpc"
        },
        "CidrBlock": "172.16.1.0/24",
        "ZoneId": {
          "Ref": "ZoneId2"
        }
      }
    },
    "MilvusInstance": {
      "Type": "ALIYUN::Milvus::Instance",
      "DependsOn": [
        "Vpc",
        "VSwitchPrimary",
        "VSwitchSecondary"
      ],
      "Properties": {
        "InstanceName": {
          "Fn::Sub": "${CommonName}-instance"
        },
        "DbAdminPassword": {
          "Ref": "DbAdminPassword"
        },
        "DbVersion": {
          "Ref": "DbVersion"
        },
        "PaymentType": "PayAsYouGo",
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "VpcId": {
          "Ref": "Vpc"
        },
        "VSwitchIds": [
          {
            "VswId": {
              "Ref": "VSwitchPrimary"
            },
            "ZoneId": {
              "Ref": "ZoneId"
            }
          },
          {
            "VswId": {
              "Ref": "VSwitchSecondary"
            },
            "ZoneId": {
              "Ref": "ZoneId2"
            }
          }
        ],
        "Ha": true,
        "MultiZoneMode": "Two",
        "IsMultiAzStorage": true,
        "AutoBackup": true,
        "Encrypted": {
          "Ref": "EnableEncryption"
        },
        "AiFunction": {
          "Ref": "EnableAiFunction"
        },
        "LoadReplicas": {
          "Ref": "LoadReplicas"
        },
        "Components": [
          {
            "Type": "proxy",
            "CuNum": 2,
            "Replica": {
              "Ref": "ProxyReplica"
            }
          },
          {
            "Type": "query",
            "CuNum": {
              "Ref": "QueryCuNum"
            },
            "Replica": {
              "Ref": "QueryReplica"
            },
            "DiskSizeType": "Large"
          },
          {
            "Type": "data",
            "CuNum": {
              "Ref": "DataCuNum"
            },
            "Replica": 2
          },
          {
            "Type": "index",
            "CuNum": {
              "Ref": "IndexCuNum"
            },
            "Replica": 2
          },
          {
            "Type": "mix_coordinator",
            "CuNum": 1,
            "Replica": 2
          },
          {
            "Type": "streaming",
            "CuNum": 4,
            "Replica": 2
          }
        ],
        "Configuration": "dataCoord:\n  segment:\n    maxSize: 1024\n    sealProportion: 0.12\nqueryCoord:\n  balance:\n    autoBalance: true\ncommon:\n  security:\n    superUsers: root",
        "Tags": [
          {
            "Key": "Environment",
            "Value": "Production"
          },
          {
            "Key": "Team",
            "Value": "AI"
          },
          {
            "Key": "CreatedBy",
            "Value": "ROS"
          },
          {
            "Key": "CostCenter",
            "Value": "VectorSearch"
          },
          {
            "Key": "DataClassification",
            "Value": "Confidential"
          }
        ]
      }
    }
  },
  "Outputs": {
    "InstanceId": {
      "Description": {
        "zh-cn": "Milvus实例ID。",
        "en": "Milvus instance ID."
      },
      "Label": {
        "zh-cn": "实例ID",
        "en": "Instance ID"
      },
      "Value": {
        "Fn::GetAtt": [
          "MilvusInstance",
          "InstanceId"
        ]
      }
    },
    "VpcId": {
      "Description": {
        "zh-cn": "VPC ID。",
        "en": "VPC ID."
      },
      "Label": {
        "zh-cn": "VPC ID",
        "en": "VPC ID"
      },
      "Value": {
        "Ref": "Vpc"
      }
    },
    "VSwitchPrimaryId": {
      "Description": {
        "zh-cn": "主可用区交换机ID。",
        "en": "Primary zone VSwitch ID."
      },
      "Label": {
        "zh-cn": "主交换机ID",
        "en": "Primary VSwitch ID"
      },
      "Value": {
        "Ref": "VSwitchPrimary"
      }
    },
    "VSwitchSecondaryId": {
      "Description": {
        "zh-cn": "备可用区交换机ID。",
        "en": "Secondary zone VSwitch ID."
      },
      "Label": {
        "zh-cn": "备交换机ID",
        "en": "Secondary VSwitch ID"
      },
      "Value": {
        "Ref": "VSwitchSecondary"
      }
    }
  },
  "Metadata": {
    "ALIYUN::ROS::Interface": {
      "ParameterGroups": [
        {
          "Parameters": [
            "ZoneId",
            "ZoneId2",
            "CommonName",
            "DbAdminPassword",
            "DbVersion"
          ]
        },
        {
          "Parameters": [
            "QueryCuNum",
            "DataCuNum",
            "IndexCuNum",
            "ProxyReplica",
            "QueryReplica",
            "LoadReplicas"
          ]
        },
        {
          "Parameters": [
            "EnableEncryption",
            "EnableAiFunction"
          ]
        }
      ]
    }
  }
}