ALIYUN::NAS::MountTarget

ALIYUN::NAS::MountTarget类型用于创建挂载点。

语法

{
  "Type": "ALIYUN::NAS::MountTarget",
  "Properties": {
    "Status": String,
    "VpcId": String,
    "FileSystemId": String,
    "VSwitchId": String,
    "NetworkType": String,
    "AccessGroupName": String,
    "EnableIpv6": Boolean,
    "SecurityGroupId": String
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

Status

String

状态。

取值:

  • Active

  • Inactive

VpcId

String

VPC网络ID。

无。

FileSystemId

String

文件系统ID。

无。

VSwitchId

String

交换机ID。

无。

NetworkType

String

网络类型。

取值:

  • Vpc

  • Classic。

AccessGroupName

String

权限组名称。

无。

EnableIpv6

Boolean

是否创建IPv6挂载点。

取值:

  • true:创建IPv6挂载点。

  • false(默认值):不创建IPv6挂载点。

    说明

    当前仅极速型NAS中国内地各地域支持IPv6功能,且该文件系统需要开启IPv6功能。

SecurityGroupId

String

安全组ID。

示例值:

sg-bp1fg655nh68xyz9****

返回值

Fn::GetAtt

MountTargetDomain:挂载点域名。

示例

场景 1 :创建挂载点

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  VpcId:
    Type: String
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
  VSwitchId:
    Type: String
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
  FileSystemId:
    Type: String
    Description: File system ID
Resources:
  MountTarget:
    Type: ALIYUN::NAS::MountTarget
    Properties:
      Status: Active
      VpcId:
        Ref: VpcId
      FileSystemId:
        Ref: FileSystemId
      VSwitchId:
        Ref: VSwitchId
      NetworkType: Vpc
      AccessGroupName: TestAccessGroup
Outputs: {}
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "VpcId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::VPC::VPCId"
    },
    "VSwitchId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
      "AssociationPropertyMetadata": {
        "VpcId": "${VpcId}"
      }
    },
    "FileSystemId": {
      "Type": "String",
      "Description": "File system ID"
    }
  },
  "Resources": {
    "MountTarget": {
      "Type": "ALIYUN::NAS::MountTarget",
      "Properties": {
        "Status": "Active",
        "VpcId": {
          "Ref": "VpcId"
        },
        "FileSystemId": {
          "Ref": "FileSystemId"
        },
        "VSwitchId": {
          "Ref": "VSwitchId"
        },
        "NetworkType": "Vpc",
        "AccessGroupName": "TestAccessGroup"
      }
    }
  },
  "Outputs": {
  }
}

场景 2 :创建NAS文件系统、访问组、访问规则及挂载点

ROSTemplateFormatVersion: '2015-09-01'
Description:
  zh-cn: 创建NAS文件系统、访问组、访问规则及挂载目标,配置协议、存储类型、权限及网络设置。
  en: Create NAS file systems, access groups, access rules, and mount targets, configure
    protocols, storage types, permissions, and network settings.
Parameters:
  Description:
    Type: String
    Description: File system description.
    Default: mytest
  ProtocolType:
    Type: String
    Description: Type of protocol used.
    Default: NFS
    AllowedValues:
    - NFS
    - SMB
  StorageType:
    Type: String
    Description: The file system type.
    Default: Capacity
    AllowedValues:
    - Performance
    - Capacity
  AccessGroupName:
    Type: String
    Default: mytest
  VSwitchId:
    Type: String
  VpcId:
    Type: String
  Priority:
    Type: Number
    Description: 'Allowed Values: 1~100'
    Default: 1
    MinValue: 1
    MaxValue: 100
  UserAccessType:
    Type: String
    Default: no_squash
    AllowedValues:
    - no_squash
    - root_squash
    - all_squash
  SourceCidrIp:
    Type: String
    Description: Address or address segment
    Default: 0.0.0.0/0
  RWAccessType:
    Type: String
    Description: 'Read-write permission type: RDWR (default), RDONLY'
    Default: RDWR
    AllowedValues:
    - RDWR
    - RDONLY
Resources:
  FileSystem:
    Type: ALIYUN::NAS::FileSystem
    Properties:
      ProtocolType:
        Ref: ProtocolType
      StorageType:
        Ref: StorageType
      Description:
        Ref: Description
  AccessGroup:
    Type: ALIYUN::NAS::AccessGroup
    Properties:
      AccessGroupType: Vpc
      AccessGroupName:
        Ref: AccessGroupName
  AccessRule:
    Type: ALIYUN::NAS::AccessRule
    Properties:
      Priority:
        Ref: Priority
      UserAccessType:
        Ref: UserAccessType
      AccessGroupName:
        Fn::GetAtt:
        - AccessGroup
        - AccessGroupName
      SourceCidrIp:
        Ref: SourceCidrIp
      RWAccessType:
        Ref: RWAccessType
    DependsOn: AccessGroup
  MountTarget:
    Type: ALIYUN::NAS::MountTarget
    Properties:
      VpcId:
        Ref: VpcId
      VSwitchId:
        Ref: VSwitchId
      FileSystemId:
        Fn::GetAtt:
        - FileSystem
        - FileSystemId
      NetworkType: Vpc
      AccessGroupName:
        Fn::GetAtt:
        - AccessGroup
        - AccessGroupName
    DependsOn:
    - AccessRule
    - FileSystem
Outputs:
  FileSystemId:
    Description: ID of the file system created
    Value:
      Fn::GetAtt:
      - FileSystem
      - FileSystemId
  AccessGroupName:
    Description: Permission group name
    Value:
      Fn::GetAtt:
      - AccessGroup
      - AccessGroupName
  AccessRuleId:
    Value:
      Fn::GetAtt:
      - AccessRule
      - AccessRuleId
  MountTargetDomain:
    Value:
      Fn::GetAtt:
      - MountTarget
      - MountTargetDomain
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": {
    "zh-cn": "创建NAS文件系统、访问组、访问规则及挂载目标,配置协议、存储类型、权限及网络设置。",
    "en": "Create NAS file systems, access groups, access rules, and mount targets, configure protocols, storage types, permissions, and network settings."
  },
  "Parameters": {
    "Description": {
      "Type": "String",
      "Description": "File system description.",
      "Default": "mytest"
    },
    "ProtocolType": {
      "Type": "String",
      "Description": "Type of protocol used.",
      "Default": "NFS",
      "AllowedValues": [
        "NFS",
        "SMB"
      ]
    },
    "StorageType": {
      "Type": "String",
      "Description": "The file system type.",
      "Default": "Capacity",
      "AllowedValues": [
        "Performance",
        "Capacity"
      ]
    },
    "AccessGroupName": {
      "Type": "String",
      "Default": "mytest"
    },
    "VSwitchId": {
      "Type": "String"
    },
    "VpcId": {
      "Type": "String"
    },
    "Priority": {
      "Type": "Number",
      "Description": "Allowed Values: 1~100",
      "Default": 1,
      "MinValue": 1,
      "MaxValue": 100
    },
    "UserAccessType": {
      "Type": "String",
      "Default": "no_squash",
      "AllowedValues": [
        "no_squash",
        "root_squash",
        "all_squash"
      ]
    },
    "SourceCidrIp": {
      "Type": "String",
      "Description": "Address or address segment",
      "Default": "0.0.0.0/0"
    },
    "RWAccessType": {
      "Type": "String",
      "Description": "Read-write permission type: RDWR (default), RDONLY",
      "Default": "RDWR",
      "AllowedValues": [
        "RDWR",
        "RDONLY"
      ]
    }
  },
  "Resources": {
    "FileSystem": {
      "Type": "ALIYUN::NAS::FileSystem",
      "Properties": {
        "ProtocolType": {
          "Ref": "ProtocolType"
        },
        "StorageType": {
          "Ref": "StorageType"
        },
        "Description": {
          "Ref": "Description"
        }
      }
    },
    "AccessGroup": {
      "Type": "ALIYUN::NAS::AccessGroup",
      "Properties": {
        "AccessGroupType": "Vpc",
        "AccessGroupName": {
          "Ref": "AccessGroupName"
        }
      }
    },
    "AccessRule": {
      "Type": "ALIYUN::NAS::AccessRule",
      "Properties": {
        "Priority": {
          "Ref": "Priority"
        },
        "UserAccessType": {
          "Ref": "UserAccessType"
        },
        "AccessGroupName": {
          "Fn::GetAtt": [
            "AccessGroup",
            "AccessGroupName"
          ]
        },
        "SourceCidrIp": {
          "Ref": "SourceCidrIp"
        },
        "RWAccessType": {
          "Ref": "RWAccessType"
        }
      },
      "DependsOn": "AccessGroup"
    },
    "MountTarget": {
      "Type": "ALIYUN::NAS::MountTarget",
      "Properties": {
        "VpcId": {
          "Ref": "VpcId"
        },
        "VSwitchId": {
          "Ref": "VSwitchId"
        },
        "FileSystemId": {
          "Fn::GetAtt": [
            "FileSystem",
            "FileSystemId"
          ]
        },
        "NetworkType": "Vpc",
        "AccessGroupName": {
          "Fn::GetAtt": [
            "AccessGroup",
            "AccessGroupName"
          ]
        }
      },
      "DependsOn": [
        "AccessRule",
        "FileSystem"
      ]
    }
  },
  "Outputs": {
    "FileSystemId": {
      "Description": "ID of the file system created",
      "Value": {
        "Fn::GetAtt": [
          "FileSystem",
          "FileSystemId"
        ]
      }
    },
    "AccessGroupName": {
      "Description": "Permission group name",
      "Value": {
        "Fn::GetAtt": [
          "AccessGroup",
          "AccessGroupName"
        ]
      }
    },
    "AccessRuleId": {
      "Value": {
        "Fn::GetAtt": [
          "AccessRule",
          "AccessRuleId"
        ]
      }
    },
    "MountTargetDomain": {
      "Value": {
        "Fn::GetAtt": [
          "MountTarget",
          "MountTargetDomain"
        ]
      }
    }
  }
}

场景 3 :通义千问和LangChain搭建对话模型

ROSTemplateFormatVersion: '2015-09-01'
Description:
  zh-cn: 创建VPC环境,配置安全组,搭建NFS文件系统,启用PAI服务,部署基于Qwen和LangChain的对话模型WebUI。
  en: Create a VPC environment, configure security groups, set up an NFS file system,
    enable PAI services, and deploy a conversation model WebUI based on Qwen and LangChain.
Parameters:
  ZoneId:
    Type: String
    Label:
      en: VSwitch Availability Zone
      zh-cn: 可用区
    Description:
      en: Availability Zone ID
      zh-cn: 可用区ID。
    AssociationProperty: ZoneId
  PAIEASInstanceType:
    Type: String
    Label:
      en: PAI-EAS instance type.
      zh-cn: PAI-EAS实例规格
    Description:
      en: PAI-EAS instance type.
      zh-cn: PAI-EAS 使用的实例规格。
    AllowedPattern: '(^ecs.*gn.*)|(^ml.*)'
    AssociationProperty: ALIYUN::EAS::Instance::InstanceType
    AssociationPropertyMetadata:
      SubscriptionType: PayAsYouGo
Resources:
  RandomString:
    Type: ALIYUN::RandomString
    Properties:
      length: 8
      character_classes:
        - class: lowercase
          min: 1
        - class: digits
          min: 1
  Vpc:
    Type: ALIYUN::ECS::VPC
    Properties:
      CidrBlock: 192.168.0.0/16
  VSwitch:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      ZoneId:
        Ref: ZoneId
      VpcId:
        Ref: Vpc
      CidrBlock: 192.168.0.0/24
  SecurityGroup:
    Type: ALIYUN::ECS::SecurityGroup
    Properties:
      VpcId:
        Ref: Vpc
      SecurityGroupIngress:
        - PortRange: 80/80
          Priority: 1
          SourceCidrIp: 0.0.0.0/0
          IpProtocol: tcp
          NicType: internet
        - PortRange: 443/443
          Priority: 1
          SourceCidrIp: 0.0.0.0/0
          IpProtocol: tcp
          NicType: internet
        - PortRange: 3389/3389
          Priority: 1
          SourceCidrIp: 0.0.0.0/0
          IpProtocol: tcp
          NicType: internet
  NasFileSystem:
    Type: ALIYUN::NAS::FileSystem
    Properties:
      ProtocolType: NFS
      FileSystemType: standard
      StorageType: Performance
      DeletionForce: true
      ZoneId:
        Ref: ZoneId
      VpcId:
        Ref: Vpc
      VSwitchId:
        Ref: VSwitch
  NasAccessGroup:
    Type: ALIYUN::NAS::AccessGroup
    Properties:
      AccessGroupType: Vpc
      AccessGroupName: 
        Fn::Sub: nas-access-group-${ALIYUN::StackId}
  NasMountTarget:
    Type: ALIYUN::NAS::MountTarget
    DependsOn:
    - NasAccessRule
    Properties:
      VpcId:
        Ref: Vpc
      VSwitchId:
        Ref: VSwitch
      NetworkType: Vpc
      AccessGroupName:
        Ref: NasAccessGroup
      FileSystemId:
        Ref: NasFileSystem
  NasAccessRule:
    Type: ALIYUN::NAS::AccessRule
    Properties:
      SourceCidrIp: 0.0.0.0/0
      AccessGroupName:
        Ref: NasAccessGroup
  Workspace:
    Type: ALIYUN::PAI::Workspace
    Properties:
      EnvTypes:
        - dev
        - prod
      Description: Build a dialogue model based on Qwen and LangChain.
      WorkspaceName:
        Fn::Sub: qwen_demo_${RandomString.value}
  EAS:
    Type: ALIYUN::PAI::Service
    Properties:
      ServiceConfig:
        metadata:
          name:
            Fn::Sub: qwen_demo_${RandomString.value}
          instance: 1
          enable_webservice: 'true'
        cloud:
          computing:
            instance_type:
              Ref: PAIEASInstanceType
            instances: Null
        containers:
          - image:
              Fn::Sub:
                - 'eas-registry-vpc.${Region}.cr.aliyuncs.com/pai-eas/chat-llm-webui:2.1'
                - Region:
                    Ref: ALIYUN::Region
            script: 'python webui/webui_server.py --port=8000 --model-path=Qwen/Qwen-7B-Chat'
            port: 8000
    DependsOn:
      - Workspace
Outputs:
  Namespace:
    Description:
      zh-cn: 服务所在的命名空间。
      en: The namespace where the service resides.
    Value:
      Fn::GetAtt:
        - EAS
        - Namespace
Metadata:
  ALIYUN::ROS::Interface:
    ParameterGroups:
      - Parameters:
          - ZoneId
          - PAIEASInstanceType
    TemplateTags:
      - acs:technical-solution:AI:通义千问和LangChain搭建对话模型
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": {
    "zh-cn": "创建VPC环境,配置安全组,搭建NFS文件系统,启用PAI服务,部署基于Qwen和LangChain的对话模型WebUI。",
    "en": "Create a VPC environment, configure security groups, set up an NFS file system, enable PAI services, and deploy a conversation model WebUI based on Qwen and LangChain."
  },
  "Parameters": {
    "ZoneId": {
      "Type": "String",
      "Label": {
        "en": "VSwitch Availability Zone",
        "zh-cn": "可用区"
      },
      "Description": {
        "en": "Availability Zone ID",
        "zh-cn": "可用区ID。"
      },
      "AssociationProperty": "ZoneId"
    },
    "PAIEASInstanceType": {
      "Type": "String",
      "Label": {
        "en": "PAI-EAS instance type.",
        "zh-cn": "PAI-EAS实例规格"
      },
      "Description": {
        "en": "PAI-EAS instance type.",
        "zh-cn": "PAI-EAS 使用的实例规格。"
      },
      "AllowedPattern": "(^ecs.*gn.*)|(^ml.*)",
      "AssociationProperty": "ALIYUN::EAS::Instance::InstanceType",
      "AssociationPropertyMetadata": {
        "SubscriptionType": "PayAsYouGo"
      }
    }
  },
  "Resources": {
    "RandomString": {
      "Type": "ALIYUN::RandomString",
      "Properties": {
        "length": 8,
        "character_classes": [
          {
            "class": "lowercase",
            "min": 1
          },
          {
            "class": "digits",
            "min": 1
          }
        ]
      }
    },
    "Vpc": {
      "Type": "ALIYUN::ECS::VPC",
      "Properties": {
        "CidrBlock": "192.168.0.0/16"
      }
    },
    "VSwitch": {
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "VpcId": {
          "Ref": "Vpc"
        },
        "CidrBlock": "192.168.0.0/24"
      }
    },
    "SecurityGroup": {
      "Type": "ALIYUN::ECS::SecurityGroup",
      "Properties": {
        "VpcId": {
          "Ref": "Vpc"
        },
        "SecurityGroupIngress": [
          {
            "PortRange": "80/80",
            "Priority": 1,
            "SourceCidrIp": "0.0.0.0/0",
            "IpProtocol": "tcp",
            "NicType": "internet"
          },
          {
            "PortRange": "443/443",
            "Priority": 1,
            "SourceCidrIp": "0.0.0.0/0",
            "IpProtocol": "tcp",
            "NicType": "internet"
          },
          {
            "PortRange": "3389/3389",
            "Priority": 1,
            "SourceCidrIp": "0.0.0.0/0",
            "IpProtocol": "tcp",
            "NicType": "internet"
          }
        ]
      }
    },
    "NasFileSystem": {
      "Type": "ALIYUN::NAS::FileSystem",
      "Properties": {
        "ProtocolType": "NFS",
        "FileSystemType": "standard",
        "StorageType": "Performance",
        "DeletionForce": true,
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "VpcId": {
          "Ref": "Vpc"
        },
        "VSwitchId": {
          "Ref": "VSwitch"
        }
      }
    },
    "NasAccessGroup": {
      "Type": "ALIYUN::NAS::AccessGroup",
      "Properties": {
        "AccessGroupType": "Vpc",
        "AccessGroupName": {
          "Fn::Sub": "nas-access-group-${ALIYUN::StackId}"
        }
      }
    },
    "NasMountTarget": {
      "Type": "ALIYUN::NAS::MountTarget",
      "DependsOn": [
        "NasAccessRule"
      ],
      "Properties": {
        "VpcId": {
          "Ref": "Vpc"
        },
        "VSwitchId": {
          "Ref": "VSwitch"
        },
        "NetworkType": "Vpc",
        "AccessGroupName": {
          "Ref": "NasAccessGroup"
        },
        "FileSystemId": {
          "Ref": "NasFileSystem"
        }
      }
    },
    "NasAccessRule": {
      "Type": "ALIYUN::NAS::AccessRule",
      "Properties": {
        "SourceCidrIp": "0.0.0.0/0",
        "AccessGroupName": {
          "Ref": "NasAccessGroup"
        }
      }
    },
    "Workspace": {
      "Type": "ALIYUN::PAI::Workspace",
      "Properties": {
        "EnvTypes": [
          "dev",
          "prod"
        ],
        "Description": "Build a dialogue model based on Qwen and LangChain.",
        "WorkspaceName": {
          "Fn::Sub": "qwen_demo_${RandomString.value}"
        }
      }
    },
    "EAS": {
      "Type": "ALIYUN::PAI::Service",
      "Properties": {
        "ServiceConfig": {
          "metadata": {
            "name": {
              "Fn::Sub": "qwen_demo_${RandomString.value}"
            },
            "instance": 1,
            "enable_webservice": "true"
          },
          "cloud": {
            "computing": {
              "instance_type": {
                "Ref": "PAIEASInstanceType"
              },
              "instances": null
            }
          },
          "containers": [
            {
              "image": {
                "Fn::Sub": [
                  "eas-registry-vpc.${Region}.cr.aliyuncs.com/pai-eas/chat-llm-webui:2.1",
                  {
                    "Region": {
                      "Ref": "ALIYUN::Region"
                    }
                  }
                ]
              },
              "script": "python webui/webui_server.py --port=8000 --model-path=Qwen/Qwen-7B-Chat",
              "port": 8000
            }
          ]
        }
      },
      "DependsOn": [
        "Workspace"
      ]
    }
  },
  "Outputs": {
    "Namespace": {
      "Description": {
        "zh-cn": "服务所在的命名空间。",
        "en": "The namespace where the service resides."
      },
      "Value": {
        "Fn::GetAtt": [
          "EAS",
          "Namespace"
        ]
      }
    }
  },
  "Metadata": {
    "ALIYUN::ROS::Interface": {
      "ParameterGroups": [
        {
          "Parameters": [
            "ZoneId",
            "PAIEASInstanceType"
          ]
        }
      ],
      "TemplateTags": [
        "acs:technical-solution:AI:通义千问和LangChain搭建对话模型"
      ]
    }
  }
}