Todos los productos
Search
Centro de documentos

Resource Orchestration Service:ALIYUN::EHPC::Cluster

Última actualización: Sep 04, 2026

ALIYUN::EHPC::Cluster se usa para crear un clúster de Elastic High Performance Computing (E-HPC).

Sintaxis

{
  "Type": "ALIYUN::EHPC::Cluster",
  "Properties": {
    "EcsOrderComputeCount": Integer,
    "OsTag": String,
    "HaEnable": Boolean,
    "VolumeType": String,
    "VolumeId": String,
    "EcsOrderManagerCount": Integer,
    "EcsOrderManagerInstanceType": String,
    "EcsOrderComputeInstanceType": String,
    "Application": List,
    "KeyPairName": String,
    "PeriodUnit": String,
    "Description": String,
    "AutoRenewPeriod": Integer,
    "JobQueue": String,
    "ImageId": String,
    "AutoRenew": Boolean,
    "EhpcVersion": String,
    "VSwitchId": String,
    "Password": String,
    "Name": String,
    "SchedulerType": String,
    "SccClusterId": String,
    "EcsChargeType": String,
    "ZoneId": String,
    "EcsOrderLoginCount": Integer,
    "DeployMode": String,
    "ImageOwnerAlias": String,
    "RemoteDirectory": String,
    "ComputeSpotPriceLimit": String,
    "ComputeSpotStrategy": String,
    "SecurityGroupName": String,
    "KeyPairName": String,
    "VolumeProtocol": String,
    "SecurityGroupId": String,
    "Period": Integer,
    "PostInstallScript": List,
    "AccountType": String,
    "VolumeMountpoint": String,
    "EcsOrderLoginInstanceType": String,
    "SystemDiskLevel": String,
    "IsComputeEss": Boolean,
    "SystemDiskSize": Integer,
    "SystemDiskType": String,
    "AdditionalVolumes": List,
    "RemoteVisEnable": Boolean,
    "InputFileUrl": String,
    "WithoutElasticIp": Boolean,
    "ResourceGroupId": String,
    "ClientVersion": String,
    "ComputeEnableHt": Boolean,
    "RamNodeTypes": List,
    "VpcId": String,
    "RamRoleName": String,
    "NetworkInterfaceTrafficMode": String
  }
}

Propiedades

Propiedad

Tipo

Obligatorio

Editable

Descripción

Restricción

EcsOrderComputeCount

Integer

Sí

No

Número de nodos de computación en el clúster.

Valores válidos: 1 a 99.

OsTag

String

No

No

Etiqueta de la imagen del sistema operativo.

Ejemplo: CentOS_7.2_64.

HaEnable

Boolean

No

No

Indica si se debe habilitar la función de alta disponibilidad.

Valores válidos:

  • true: habilita la función de alta disponibilidad. Si habilita esta función, el clúster usa un nodo de administración principal y uno secundario.

  • false (predeterminado): deshabilita la función de alta disponibilidad.

VolumeType

String

No

No

Tipo de almacenamiento compartido.

Establezca el valor en NAS. El valor NAS especifica un sistema de archivos File Storage NAS (NAS).

KeyPairName

String

No

No

Nombre del key pair.

Debe especificar una de las propiedades Password o KeyPairName. Si especifica ambas, la propiedad Password tiene mayor prioridad.

VolumeId

String

No

No

ID del sistema de archivos NAS.

Ninguna.

EcsOrderManagerCount

Integer

No

No

Número de nodos de administración en el clúster.

Valores válidos:

  • 1

  • 2

  • 4

EcsOrderManagerInstanceType

String

Sí

No

Tipo de instancia de los nodos de administración en el clúster.

Ninguna.

Application

List

No

No

Software.

Para más información, consulte Application property.

EcsOrderComputeInstanceType

String

Sí

No

Tipo de instancia de los nodos de computación en el clúster.

Ninguna.

PeriodUnit

String

No

No

Ciclo de facturación de los nodos en el clúster.

Valores válidos:

  • Week

  • Month

  • Year

Description

String

No

Sí

Descripción del clúster.

La descripción debe tener entre 2 y 128 caracteres.

AutoRenewPeriod

Integer

No

No

Periodo de renovación automática.

Esta propiedad surte efecto cuando AutoRenew se establece en true.

JobQueue

String

No

No

Cola a la que desea agregar los nodos de computación.

Ninguna.

ImageId

String

No

Sí

ID de la imagen.

Debe especificar esta propiedad cuando ImageOwnerAlias se establece en self, others o marketplace.

Nota

Si establece ImageOwnerAlias en system, el ID de la imagen base varía únicamente según el valor de OsTag.

AutoRenew

Boolean

No

No

Indica si se debe habilitar la renovación automática.

Valores válidos:

  • true

  • false

EhpcVersion

String

No

No

Versión de E-HPC.

De forma predeterminada, se usa la versión más reciente.

VSwitchId

String

Sí

No

ID del vSwitch.

E-HPC solo admite redes de tipo virtual private cloud (VPC).

Password

String

No

No

Contraseña root del nodo de inicio de sesión.

La contraseña debe tener entre 8 y 30 caracteres. Debe contener como mínimo tres de los siguientes tipos de caracteres: letras mayúsculas, letras minúsculas, dígitos y caracteres especiales. Se admiten los siguientes caracteres especiales: ( ) ` ~ ! @ # $ % ^ & * - + = | { } [ ] : ; ' < > , . ? /.

Debe especificar una de las propiedades Password o KeyPairName. Si especifica ambas, la propiedad Password tiene mayor prioridad.

Name

String

Sí

Sí

Nombre del clúster.

El nombre debe tener entre 2 y 64 caracteres y comenzar con una letra. Puede contener letras, dígitos, guiones (-) y guiones bajos (_).

SchedulerType

String

No

No

Tipo de programador.

Valores válidos:

  • pbs (predeterminado)

  • slurm

  • opengridscheduler

  • deadline

SccClusterId

String

No

No

ID de la instancia de Super Computing Cluster (SCC).

Si especifica esta propiedad, la instancia SCC existente se gestiona en un nuevo clúster SCC.

EcsChargeType

String

No

No

Método de facturación de las instancias de Elastic Compute Service (ECS) en el clúster.

Valores válidos:

  • PostPaid

  • PrePaid

    Nota

    Si establece esta propiedad en PrePaid, el sistema habilita la renovación automática de forma predeterminada. Una vez liberada la instancia, el sistema deshabilita la renovación automática.

ZoneId

String

No

No

ID de la zona.

Ninguna.

EcsOrderLoginCount

Integer

Sí

No

Número de nodos de inicio de sesión en el clúster.

Valores válidos: 1 a 99.

DeployMode

String

No

No

Modo de despliegue.

Valores válidos:

  • Standard (predeterminado): el nodo de cuenta, el nodo de programación, el nodo de inicio de sesión y el nodo de computación se despliegan por separado.

  • Simple: el nodo de cuenta y el nodo de programación se despliegan en el mismo nodo. El nodo de inicio de sesión y el nodo de computación se despliegan por separado.

  • Tiny: el nodo de cuenta, el nodo de programación y el nodo de inicio de sesión se despliegan en el mismo nodo. El nodo de computación se despliega por separado.

ImageOwnerAlias

String

No

Sí

Tipo de imagen.

Valores válidos:

  • system: imagen pública

  • self: imagen personalizada

  • others: imagen compartida

  • marketplace: imagen de Alibaba Cloud Marketplace

RemoteDirectory

String

No

No

Directorio remoto donde se monta el sistema de archivos NAS.

La ruta de montaje consta del destino de montaje y el directorio remoto con el siguiente formato: NasMountpoint:/RemoteDirectory.

ComputeSpotPriceLimit

String

No

No

Precio máximo por hora para el nodo de computación.

El valor de esta propiedad es un número de punto flotante dentro del rango de precios vigente al momento de la compra.

ComputeSpotStrategy

String

No

No

Política de puja para el nodo de computación.

Valores válidos:

  • NoSpot (predeterminado): el nodo de computación se crea como una instancia pay-as-you-go regular.

  • SpotWithPriceLimit: el nodo de computación se crea como una preemptible instance con un precio máximo por hora definido por el usuario.

  • SpotAsPriceGo: el nodo de computación se crea como una preemptible instance cuyo precio de puja se basa en el precio de mercado al momento de la compra.

SecurityGroupName

String

No

No

Nombre del security group.

Si no usa un security group existente, el sistema crea uno nuevo basado en el valor de esta propiedad. Al nuevo security group se le aplica la política predeterminada.

VolumeProtocol

String

No

No

Tipo de protocolo que usa el sistema de archivos NAS.

Valores válidos:

  • NFS

  • SMB

SecurityGroupId

String

No

No

ID del security group.

Ninguna.

Period

Integer

No

No

Duración de la suscripción de los nodos en el clúster.

Debe especificar esta propiedad cuando EcsChargeType se establece en PrePaid.

PostInstallScript

List

No

No

URL de descarga y parámetros de ejecución del script.

Puede especificar hasta 16 conjuntos de URL de descarga y parámetros de ejecución. Para más información, consulte PostInstallScript properties.

AccountType

String

No

No

Tipo de servicio de cuenta de dominio.

Valores válidos:

  • nis (predeterminado)

  • ldap

VolumeMountpoint

String

No

No

Destino de montaje del sistema de archivos NAS. El destino de montaje es de tipo VPC.

El valor de esta propiedad varía según el valor de VolumeId:

  • Si deja VolumeId vacío, puede dejar VolumeMountpoint vacío. En este caso, se crea un destino de montaje de tipo VPC al crear el clúster.

  • Si especifica VolumeId, debe especificar VolumeMountpoint.

EcsOrderLoginInstanceType

String

Sí

No

Tipo de instancia de los nodos de inicio de sesión en el clúster.

Ninguna.

SystemDiskLevel

String

No

No

Nivel de rendimiento (PL) del disco SSD mejorado (ESSD) que desea usar como disco del sistema.

Valores válidos:

  • PL0: un ESSD ofrece hasta 10,000 IOPS de lectura/escritura aleatoria.

  • PL1 (predeterminado): un ESSD ofrece hasta 50,000 IOPS de lectura/escritura aleatoria.

  • PL2: un ESSD ofrece hasta 100,000 IOPS de lectura/escritura aleatoria.

  • PL3: un ESSD ofrece hasta 1,000,000 IOPS de lectura/escritura aleatoria.

IsComputeEss

Boolean

No

No

Indica si se debe habilitar el escalado automático.

Valores válidos:

  • true

  • false (predeterminado)

SystemDiskSize

Integer

No

No

Tamaño del disco del sistema.

Valores válidos: 40 a 500.

Unidad: GB.

Valor predeterminado: 40.

SystemDiskType

String

No

No

Categoría del disco del sistema.

Valores válidos:

  • cloud: disco básico

  • cloud_efficiency: disco ultra

  • cloud_ssd (predeterminado): SSD estándar

  • cloud_essd: ESSD

AdditionalVolumes

List

No

No

Detalles del sistema de archivos NAS montado.

Para más información, consulte AdditionalVolumes properties.

RemoteVisEnable

Boolean

No

No

Indica si se debe habilitar Virtual Network Computing (VNC) para gestionar un servicio de visualización.

Valores válidos:

  • true

  • false (predeterminado)

InputFileUrl

String

No

No

URL del archivo de trabajo cargado en un bucket de Object Storage Service (OSS).

Ejemplo: https://ehpc-tianshui.oss-cn-beijing.aliyuncs.com/test-u****/testlist_ehpc.sh.

WithoutElasticIp

Boolean

No

No

Indica si se debe usar una dirección IP elástica (EIP) para los nodos de inicio de sesión.

Valores válidos:

  • true

  • false (predeterminado)

ResourceGroupId

String

No

No

ID del resource group.

Ninguna.

ClientVersion

String

No

No

Versión del cliente usado para el clúster.

De forma predeterminada, se usa la versión más reciente.

ComputeEnableHt

Boolean

No

No

Indica si se debe habilitar hyper-threading para los nodos de computación.

Valores válidos:

  • true (predeterminado)

  • false

RamNodeTypes

List

No

Sí

Detalles del tipo de nodo del rol de Resource Access Management (RAM) para la instancia.

Ninguna.

VpcId

String

No

No

ID de la VPC a la que pertenece el clúster.

Puede llamar a la operación DescribeVpcs para consultar las VPC disponibles.

RamRoleName

String

No

Sí

Nombre del rol RAM de la instancia.

Puede llamar a la operación ListRoles de RAM para consultar los roles RAM de instancia disponibles.

NetworkInterfaceTrafficMode

String

No

No

Modo de comunicación de la elastic network interface (ENI).

Valores válidos:

  • Standard: usa el modo de comunicación TCP.

  • HighPerformance: usa el modo de comunicación de acceso directo a memoria remota (RDMA) con Elastic RDMA Interface (ERI) habilitado.

Sintaxis de Application

"Application": [
  {
    "Tag": String
  }
]

Propiedad de Application

Propiedad

Tipo

Obligatorio

Editable

Descripción

Restricción

Tag

String

Sí

No

Etiqueta del software.

Ejemplo: OpenMPI_11.1.

Sintaxis de PostInstallScript

"PostInstallScript": [
  {
    "Url": String,
    "Args": String
  }
]

Propiedades de PostInstallScript

Propiedad

Tipo

Obligatorio

Editable

Descripción

Restricción

Url

String

No

No

URL usada para descargar el script después de crear el clúster.

Ninguna.

Args

String

No

No

Parámetros de ejecución del script después de crear el clúster.

Ninguna.

Sintaxis de AdditionalVolumes

"AdditionalVolumes": [
  {
    "RemoteDirectory": String,
    "Location": String,
    "VolumeId": String,
    "LocalDirectory": String,
    "VolumeProtocol": String,
    "JobQueue": String,
    "VolumeType": String,
    "VolumeMountpoint": String
  }
]

Propiedades de AdditionalVolumes

Propiedad

Tipo

Obligatorio

Editable

Descripción

Restricción

RemoteDirectory

String

No

No

Directorio remoto donde se monta el sistema de archivos NAS.

Ninguna.

Location

String

No

No

Tipo de clúster.

Establezca el valor en PublicCloud.

VolumeId

String

Sí

No

ID del sistema de archivos NAS.

Ninguna.

LocalDirectory

String

Sí

No

Directorio local donde se monta el sistema de archivos NAS.

Ninguna.

VolumeProtocol

String

No

No

Tipo de protocolo que usa el sistema de archivos NAS.

Valores válidos:

  • NFS (predeterminado)

  • SMB

JobQueue

String

No

No

Cola a la que desea agregar los nodos de computación.

Ninguna.

VolumeType

String

No

No

Tipo de almacenamiento compartido.

Establezca el valor en NAS.

VolumeMountpoint

String

Sí

No

Destino de montaje del sistema de archivos NAS. El destino de montaje es de tipo VPC.

Ninguna.

Valores de retorno

Fn::GetAtt

  • EcsInfo: número de instancias ECS y tipos de instancia para cada nodo en el clúster. Ejemplo: {"Manager": {"Count": 2, "InstanceType": "ecs.n1.large"}, "Compute": {"Count": 8, "InstanceType": "ecs.n1.large"}, "Login": {"Count": 1, "InstanceType": "ecs.n1.large"}}.

  • SecurityGroupId: ID del security group.

  • ClusterId: ID del clúster.

  • Name: nombre del clúster.

Ejemplos

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  VpcCidrBlock:
    Type: String
    AllowedValues:
      - 192.168.0.0/16
      - 172.16.0.0/12
      - 10.0.0.0/8
    Label:
      en: VPC CIDR Block
       
    Default: 192.168.0.0/16
  VSwitchCidrBlock:
    Type: String
    Description:
       
      en: Must be a sub-network segment of the proprietary network and is not occupied by other VSwitches.
    Label:
       
      en: vSwitch CIDR Block
    Default: 192.168.0.0/24
  ZoneId:
    Type: String
    AssociationProperty: ALIYUN::ECS::Instance:ZoneId
    Label:
       
      en: Availability Zone
  Password:
    NoEcho: true
    Type: String
    Label:
      en: Login Password
       
    MinLength: 8
    MaxLength: 30
  EcsOrderLoginInstanceType:
    AssociationProperty: ALIYUN::ECS::Instance::InstanceType
    AssociationPropertyMetadata:
      ZoneId: ZoneId
    Type: String
    Label:
      en: Login Instance Specifications
       
  EcsOrderManagerInstanceType:
    AssociationProperty: ALIYUN::ECS::Instance::InstanceType
    AssociationPropertyMetadata:
      ZoneId: ZoneId
    Type: String
    Label:
      en: Manager Instance Specifications
       
  EcsOrderComputeInstanceType:
    AssociationProperty: ALIYUN::ECS::Instance::InstanceType
    AssociationPropertyMetadata:
      ZoneId: ZoneId
    Type: String
    Label:
      en: Compute Instance Specifications
       
  BucketName:
    Type: String
    Label:
      en: Bucket Name
       
    Default: test-ehpc
  BucketAccessControl:
    Type: String
    Label:
      en: Access Control
       
    AllowedValues:
      - private
      - public-read
      - public-read-write
    Default: public-read
  BucketStorageClass:
    Type: String
    Label:
      en: Storage Type
       
    AllowedValues:
      - Standard
      - IA
      - Archive
    Default: Standard
Resources:
  Vpc:
    Type: ALIYUN::ECS::VPC
    Properties:
      CidrBlock:
        Ref: VpcCidrBlock
      VpcName:
        Fn::Join:
          - '-'
          - - Vpc
            - Ref: ALIYUN::StackId
  VSwitch:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      ZoneId:
        Ref: ZoneId
      VpcId:
        Ref: Vpc
      CidrBlock:
        Ref: VSwitchCidrBlock
      VSwitchName:
        Fn::Join:
          - '-'
          - - VSwitch
            - StackId
            - Ref: ALIYUN::StackId
  AccessGroup:
    Type: ALIYUN::NAS::AccessGroup
    Properties:
      AccessGroupType: Vpc
      AccessGroupName:
        Fn::Join:
          - '-'
          - - AccessGroup
            - Ref: ALIYUN::StackId
  FileSystem:
    Type: ALIYUN::NAS::FileSystem
    Properties:
      ProtocolType: NFS
      StorageType: Capacity
  MountTarget:
    Type: ALIYUN::NAS::MountTarget
    Properties:
      VpcId:
        Ref: Vpc
      FileSystemId:
        Ref: FileSystem
      VSwitchId:
        Ref: VSwitch
      NetworkType: Vpc
      AccessGroupName:
        Ref: AccessGroup
  AccessRule:
    Type: ALIYUN::NAS::AccessRule
    Properties:
      SourceCidrIp: 0.0.0.0/0
      AccessGroupName:
        Ref: AccessGroup
  Cluster:
    Type: ALIYUN::EHPC::Cluster
    DependsOn:
      - AccessRule
      - FileSystem
      - MountTarget
      - OssBucket
    Properties:
      EcsOrderComputeCount: 1
      OsTag: CentOS_7.2_64
      Name:
        Fn::Join:
          - '-'
          - - Cluster
            - Ref: ALIYUN::StackId
      EhpcVersion: 1.0.0
      VolumeId:
        Ref: FileSystem
      EcsOrderLoginCount: 1
      VSwitchId:
        Ref: VSwitch
      VolumeMountpoint:
        Ref: MountTarget
      EcsOrderLoginInstanceType:
        Ref: EcsOrderLoginInstanceType
      EcsOrderManagerInstanceType:
        Ref: EcsOrderManagerInstanceType
      EcsOrderComputeInstanceType:
        Ref: EcsOrderComputeInstanceType
      Password:
        Ref: Password
      Application:
        - Tag: VMD_1.9.3
        - Tag: LAMMPS-OPENMPI-31Mar17
  OssBucket:
    Type: ALIYUN::OSS::Bucket
    Properties:
      BucketName:
        Ref: BucketName
      AccessControl:
        Ref: BucketAccessControl
      StorageClass:
        Ref: BucketStorageClass
      Tags:
        Value: '021'
        Key: best_practice
Outputs:
  MountTargetDomain:
    Description:
      en: Mount point domain name
       
    Value:
      Fn::GetAtt:
        - MountTarget
        - MountTargetDomain
  FileSystemId:
    Description:
      en: ID of the file system created
       
    Value:
      Fn::GetAtt:
        - FileSystem
        - FileSystemId
Description:
  en: EHPC Industrial Simulation
   
Metadata:
  ALIYUN::ROS::Interface:
    ParameterGroups:
      - Parameters:
          - ZoneId
          - VpcCidrBlock
          - VSwitchCidrBlock
        Label:
          default:
            en: VPC
             
      - Parameters:
          - EcsOrderComputeInstanceType
          - EcsOrderLoginInstanceType
          - EcsOrderManagerInstanceType
          - Password
        Label:
          default:
            en: EHPC
             
      - Parameters:
          - BucketName
          - BucketAccessControl
          - BucketStorageClass
        Label:
          default:
            en: OSS
             
    TemplateTags:
      - acs:solution:E-HPC:Perform a manufacturing simulation by using E-HPC
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "VpcCidrBlock": {
      "Type": "String",
      "AllowedValues": [
        "192.168.0.0/16",
        "172.16.0.0/12",
        "10.0.0.0/8"
      ],
      "Label": {
        "en": "VPC CIDR Block",
         
      },
      "Default": "192.168.0.0/16"
    },
    "VSwitchCidrBlock": {
      "Type": "String",
      "Description": {
         
        "en": "Must be a sub-network segment of the proprietary network and is not occupied by other VSwitches."
      },
      "Label": {
         
        "en": "vSwitch CIDR Block"
      },
      "Default": "192.168.0.0/24"
    },
    "ZoneId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::Instance:ZoneId",
      "Label": {
         
        "en": "Availability Zone"
      }
    },
    "Password": {
      "NoEcho": true,
      "Type": "String",
      "Label": {
        "en": "Login Password",
         
      },
      "MinLength": 8,
      "MaxLength": 30
    },
    "EcsOrderLoginInstanceType": {
      "AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
      "AssociationPropertyMetadata": {
        "ZoneId": "ZoneId"
      },
      "Type": "String",
      "Label": {
        "en": "Login Instance Specifications",
         
      }
    },
    "EcsOrderManagerInstanceType": {
      "AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
      "AssociationPropertyMetadata": {
        "ZoneId": "ZoneId"
      },
      "Type": "String",
      "Label": {
        "en": "Manager Instance Specifications",
         
      }
    },
    "EcsOrderComputeInstanceType": {
      "AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
      "AssociationPropertyMetadata": {
        "ZoneId": "ZoneId"
      },
      "Type": "String",
      "Label": {
        "en": "Compute Instance Specifications",
         
      }
    },
    "BucketName": {
      "Type": "String",
      "Label": {
        "en": "Bucket Name",
         
      },
      "Default": "test-ehpc"
    },
    "BucketAccessControl": {
      "Type": "String",
      "Label": {
        "en": "Access Control",
         
      },
      "AllowedValues": [
        "private",
        "public-read",
        "public-read-write"
      ],
      "Default": "public-read"
    },
    "BucketStorageClass": {
      "Type": "String",
      "Label": {
        "en": "Storage Type",
         
      },
      "AllowedValues": [
        "Standard",
        "IA",
        "Archive"
      ],
      "Default": "Standard"
    }
  },
  "Resources": {
    "Vpc": {
      "Type": "ALIYUN::ECS::VPC",
      "Properties": {
        "CidrBlock": {
          "Ref": "VpcCidrBlock"
        },
        "VpcName": {
          "Fn::Join": [
            "-",
            [
              "Vpc",
              {
                "Ref": "ALIYUN::StackId"
              }
            ]
          ]
        }
      }
    },
    "VSwitch": {
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "VpcId": {
          "Ref": "Vpc"
        },
        "CidrBlock": {
          "Ref": "VSwitchCidrBlock"
        },
        "VSwitchName": {
          "Fn::Join": [
            "-",
            [
              "VSwitch",
              "StackId",
              {
                "Ref": "ALIYUN::StackId"
              }
            ]
          ]
        }
      }
    },
    "AccessGroup": {
      "Type": "ALIYUN::NAS::AccessGroup",
      "Properties": {
        "AccessGroupType": "Vpc",
        "AccessGroupName": {
          "Fn::Join": [
            "-",
            [
              "AccessGroup",
              {
                "Ref": "ALIYUN::StackId"
              }
            ]
          ]
        }
      }
    },
    "FileSystem": {
      "Type": "ALIYUN::NAS::FileSystem",
      "Properties": {
        "ProtocolType": "NFS",
        "StorageType": "Capacity"
      }
    },
    "MountTarget": {
      "Type": "ALIYUN::NAS::MountTarget",
      "Properties": {
        "VpcId": {
          "Ref": "Vpc"
        },
        "FileSystemId": {
          "Ref": "FileSystem"
        },
        "VSwitchId": {
          "Ref": "VSwitch"
        },
        "NetworkType": "Vpc",
        "AccessGroupName": {
          "Ref": "AccessGroup"
        }
      }
    },
    "AccessRule": {
      "Type": "ALIYUN::NAS::AccessRule",
      "Properties": {
        "SourceCidrIp": "0.0.0.0/0",
        "AccessGroupName": {
          "Ref": "AccessGroup"
        }
      }
    },
    "Cluster": {
      "Type": "ALIYUN::EHPC::Cluster",
      "DependsOn": [
        "AccessRule",
        "FileSystem",
        "MountTarget",
        "OssBucket"
      ],
      "Properties": {
        "EcsOrderComputeCount": 1,
        "OsTag": "CentOS_7.2_64",
        "Name": {
          "Fn::Join": [
            "-",
            [
              "Cluster",
              {
                "Ref": "ALIYUN::StackId"
              }
            ]
          ]
        },
        "EhpcVersion": "1.0.0",
        "VolumeId": {
          "Ref": "FileSystem"
        },
        "EcsOrderLoginCount": 1,
        "VSwitchId": {
          "Ref": "VSwitch"
        },
        "VolumeMountpoint": {
          "Ref": "MountTarget"
        },
        "EcsOrderLoginInstanceType": {
          "Ref": "EcsOrderLoginInstanceType"
        },
        "EcsOrderManagerInstanceType": {
          "Ref": "EcsOrderManagerInstanceType"
        },
        "EcsOrderComputeInstanceType": {
          "Ref": "EcsOrderComputeInstanceType"
        },
        "Password": {
          "Ref": "Password"
        },
        "Application": [
          {
            "Tag": "VMD_1.9.3"
          },
          {
            "Tag": "LAMMPS-OPENMPI-31Mar17"
          }
        ]
      }
    },
    "OssBucket": {
      "Type": "ALIYUN::OSS::Bucket",
      "Properties": {
        "BucketName": {
          "Ref": "BucketName"
        },
        "AccessControl": {
          "Ref": "BucketAccessControl"
        },
        "StorageClass": {
          "Ref": "BucketStorageClass"
        },
        "Tags": {
          "Value": "021",
          "Key": "best_practice"
        }
      }
    }
  },
  "Outputs": {
    "MountTargetDomain": {
      "Description": {
        "en": "Mount point domain name",
         
      },
      "Value": {
        "Fn::GetAtt": [
          "MountTarget",
          "MountTargetDomain"
        ]
      }
    },
    "FileSystemId": {
      "Description": {
        "en": "ID of the file system created",
         
      },
      "Value": {
        "Fn::GetAtt": [
          "FileSystem",
          "FileSystemId"
        ]
      }
    }
  },
  "Description": {
    "en": "EHPC Industrial Simulation",
     
  },
  "Metadata": {
    "ALIYUN::ROS::Interface": {
      "ParameterGroups": [
        {
          "Parameters": [
            "ZoneId",
            "VpcCidrBlock",
            "VSwitchCidrBlock"
          ],
          "Label": {
            "default": {
              "en": "VPC",
               
            }
          }
        },
        {
          "Parameters": [
            "EcsOrderComputeInstanceType",
            "EcsOrderLoginInstanceType",
            "EcsOrderManagerInstanceType",
            "Password"
          ],
          "Label": {
            "default": {
              "en": "EHPC",
               
            }
          }
        },
        {
          "Parameters": [
            "BucketName",
            "BucketAccessControl",
            "BucketStorageClass"
          ],
          "Label": {
            "default": {
              "en": "OSS",
               
            }
          }
        }
      ],
      "TemplateTags": [
        "acs:solution:E-HPC:Perform a manufacturing simulation by using E-HPC"
      ]
    }
  }
}