配置参数映射

在全托管服务中,如果您的模板参数之间存在依赖关系,并且在特定条件下希望将参数设置为固定的值,则可以在服务中配置参数映射。计算巢在部署服务实例时,在满足条件的场景下,会自动将您配置的参数值用作实例部署。本文介绍如何配置参数映射关系。

背景信息

全托管服务支持直接添加使用资源栈组添加两种映射方式添加映射关系。设置后,对应参数自动变为隐藏参数。在用户创建服务实例时,只体现依赖参数,且选择依赖参数的值后,隐藏的参数自动填写映射关系中对应参数设置的值。

  • 直接添加:用于少数地域配置参数映射关系。服务商对模板中的参数进行映射关系和子依赖映射设置。选择依赖参数和对应参数,并设置依赖参数和对应参数的值。

  • 试用资源栈组添加:用于服务部署在多个地域的多个可用区且需要在每个地域都配置一个参数映射关系的情况。服务商可以使用资源栈组添加参数映射关系,简化配置参数映射的操作。

直接添加参数映射关系

操作步骤

  1. 登录计算巢控制台

  2. 在左侧导航栏中选择我的服务,在我创建的服务区域下单击创建新服务

  3. 创建新服务页面,设置服务信息。

    此处只列举参数映射需要特别配置的参数,其他参数,请参见创建全托管服务

    1. 模板内容框中,输入模板内容。模板内容的详细信息,请参见模板示例

    2. 单击添加参数映射关系,在弹出的添加参数映射关系弹窗中选择直接添加并配置相关参数。

      1. 映射配置子依赖项映射配置区域,分别选择依赖参数对应参数2023-09-18_16-32-49.png

      2. 单击添加自动参数映射,设置选择依赖参数对应参数的值。

        在已设置的依赖参数Region后,选择华东1(杭州);在已设置的对应参数VpcId后,选择一个已有VPC。2023-09-18_15-46-48.png

      3. 单击添加子依赖参数,选择子依赖参数对应参数的值。

        在已设置的子依赖参数ZoneId后,选择华东 1 可用区 K;在已配置的对应参数vSwitchId后,选择一个已有vSwitch。重复此步骤,添加华东 1 可用区 J和对应可用区的vSwitch。2023-09-18_16-40-33.png

      4. 单击确定2023-09-18_16-45-03.png

  4. 单击保存服务

使用资源栈组添加参数映射关系

操作步骤

  1. 登录计算巢控制台

  2. 在左侧导航栏中,选择我的服务,并在我的服务页面中选择我创建的服务,然后单击创建新服务

  3. 创建新服务页面,设置服务信息。

    此处只列举使用资源栈组添加参数映射需要特别配置的参数,其他参数,请参见创建全托管服务

    点击添加自动参数映射,在添加自动参数映射弹窗中配置相关参数。

    1. 选择使用资源栈组添加页签,并添加资源栈组。

      • 若您有已创建的资源栈组,则您可以直接在资源栈组区域,选择已创建资源栈组的地域、资源栈组ID。

      • 若您还未创建资源栈组,则需要先完成资源栈组的创建,再选择资源栈组。更多信息,请参见创建资源栈组

      • 为方便您的操作,计算巢为您提供了两个创建资源栈组的最佳实践,这两个模板都会在各地域各可用区下创建VPC、交换机、安全组等信息。您只需要单击对应的名称,即可跳转到资源栈组创建页面。然后根据界面提示填写相应的参数,完成资源栈组的创建。

        • 使用在某个地域创建VPC、交换机、安全组,并指定可用区数量创建资源栈时,您需要指定可用区数量,且需要保证指定的可用区数量不大于地域中的可用区真实数量。

        • 使用在某个地域所有可用区创建VPC、交换机、安全组创建资源栈时,会默认在所有可用区下创建。

      2023-09-18_16-55-57.png

    2. 单击确定

      计算巢会自动生成参数映射。这可能会耗时几秒钟,请您耐心等待。2023-09-18_16-57-17.png

  4. 单击创建服务,并在弹出的确认弹窗中单击确定

服务实例部署效果

服务实例部署界面

服务创建完成后,在服务实例部署界面,用户只需要选择在参数映射中已配置的地域可用区信息,并且VPC参数和vSwitch参数信息对用户不可见。部署中

服务实例部署完成

服务实例部署成功后,VPC参数和vSwitch参数的信息对用户也不可见。2024-04-12_16-13-08.png

模板示例

ROSTemplateFormatVersion: '2015-09-01'
Description:
  zh-cn: 此模板为单实例自定义镜像模板示例,支持选择已有基础资源配置,支持配置ECS的付费模式为预付费或者后付费
  en: >-
    This template supports single-instance with custom image, including
    scenarios using existing and creating ECS by prepaid or postpaid model
Parameters:
  SystemDiskCategory:
    AssociationProperty: 'ALIYUN::ECS::Disk::SystemDiskCategory'
    AssociationPropertyMetadata:
      InstanceType: InstanceType
      ZoneId: ZoneId
    Type: String
    Description:
      zh-cn: >-
        <font color='blue'><b>可选值:</b></font><br>[cloud_efficiency: <font
        color='green'>高效云盘</font>]<br>[cloud_ssd: <font
        color='green'>SSD云盘</font>]<br>[cloud_essd: <font
        color='green'>ESSD云盘</font>]<br>[cloud: <font color='green'>普通云盘</font>]
      en: >-
        <font color='blue'><b>Optional values:</b></font><br>[cloud_efficiency:
        <font color='green'>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font
        color='green'>SSD Cloud Disk</font>]<br>[cloud_essd: <font
        color='green'>ESSD Cloud Disk</font>]<br>[cloud: <font
        color='green'>Cloud Disk</font>]
    Label:
      zh-cn: 系统盘类型
      en: System Disk Type
  ECSPeriodUnit:
    AssociationPropertyMetadata:
      Visible:
        Condition:
          'Fn::Not':
            'Fn::Equals':
              - '${InstanceChargeType}'
              - PostPaid
    Description:
      zh-cn: '云服务器预付费资源的购买时长周期,取值:[Week(周), Month(月)],<br>'
      en: 'ECS Purchase cycle of prepaid resource, value: [Week, Month]<br>'
    Default: Week
    AllowedValues:
      - Week
      - Month
    Label:
      zh-cn: 云服务器预付费资源的购买周期
      en: ECS Purchase cycle of prepaid resources
    Type: String
  ECSPeriod:
    AssociationPropertyMetadata:
      Visible:
        Condition:
          'Fn::Not':
            'Fn::Equals':
              - '${InstanceChargeType}'
              - PostPaid
    Description:
      zh-cn: >-
        云服务器预付费资源的购买时长,当预付费资源的购买周期为Week时,取值范围:[1,2,3,4];
        当预付费资源的购买周期为Month时,取值:[1,2,3,4,5,6,7,8,9,12,24,36,48,60]<br>
      en: >-
        When the purchase cycle of prepaid resource is week, the value range is:
        [1,2,3,4]; when the purchase cycle of prepaid resource is month, the
        value is: [1,2,3,4,5,6,7,8,9,12,24,36,48,60]<br>
    Default: 1
    Label:
      zh-cn: 云服务器预付费资源的购买时长
      en: ECS Purchase duration of prepaid resources
    AllowedValues:
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      - 9
      - 12
      - 24
      - 36
      - 48
      - 60
    Type: Number
  SecurityGroupId:
    AssociationPropertyMetadata:
      VpcId: VpcId
    Description:
      zh-cn: 现有安全组的实例ID
      en: The instance ID of an existing security group.
    Default: null
    Label:
      zh-cn: 安全组ID
      en: Security Group ID
    AssociationProperty: 'ALIYUN::ECS::SecurityGroup::SecurityGroupId'
    Type: String
  SystemDiskSize:
    Default: 40
    Type: Number
    Description:
      zh-cn: '系统盘大小, 取值范围:[40, 500], 单位:GB。'
      en: 'System disk size, range of values: 40-500, units: GB.'
    Label:
      zh-cn: 系统盘空间
      en: System Disk Space
  ZoneId:
    AssociationProperty: 'ALIYUN::ECS::Instance::ZoneId'
    Type: String
    Description:
      zh-cn: 可用区配置决定了新建ECS实例的可用区。此外,如果您选择已有基础资源配置,仅能选到该可用区下的交换机。
      en: >-
        ECS VSwitch Zone ID defines the Availability Zone for creating ECS
        instance. If you choose existing Infrastructure Configuration,you can
        only find the VSwitch under the Availability zone.
    Label:
      zh-cn: ECS交换机可用区
      en: ECS VSwitch Zone ID
  DataDiskCategory:
    AssociationProperty: 'ALIYUN::ECS::Disk::DataDiskCategory'
    AssociationPropertyMetadata:
      InstanceType: InstanceType
      ZoneId: ZoneId
    Type: String
    Description:
      zh-cn: >-
        <font color='blue'><b>可选值:</b></font><br>[cloud_efficiency: <font
        color='green'>高效云盘</font>]<br>[cloud_ssd: <font
        color='green'>SSD云盘</font>]<br>[cloud_essd: <font
        color='green'>ESSD云盘</font>]<br>[cloud: <font color='green'>普通云盘</font>]
      en: >-
        <font color='blue'><b>Optional values:</b></font><br>[cloud_efficiency:
        <font color='green'>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font
        color='green'>SSD Cloud Disk</font>]<br>[cloud_essd: <font
        color='green'>ESSD Cloud Disk</font>]<br>[cloud: <font
        color='green'>Cloud Disk</font>]
    Label:
      zh-cn: 数据盘类型
      en: Data Disk Type
  InstanceChargeType:
    Default: PostPaid
    Label:
      zh-cn: ECS实例的付费模式
      en: ECS Instance Billing Method
    Type: String
    Description:
      zh-cn: >-
        <font color='blue'><b>可选值:</b></font><br>[PostPaid: <font
        color='green'>按量付费。</font>]<br>[PrePaid: <font
        color='green'>预付费,包年包月。</font>]
      en: >-
        <font color='blue'><b>Optional values:</b></font><br>[PostPaid: <font
        color='green'>Pay as you go.</font>]<br> [PrePaid: <font
        color='green'>Prepaid, subscription.</font>]
    AllowedValues:
      - PostPaid
      - PrePaid
  VpcId:
    Default: null
    AssociationProperty: 'ALIYUN::ECS::VPC::VPCId'
    Type: String
    Description:
      zh-cn: '请选择已有的VPC<br><b><font color=''blue''>如找不到VPC,请切换地域。</font></b>'
      en: >-
        Please select the existing VPC. <br><b><font color='blue'>If you can't
        find the VPC, please switch Regions.</font></b>
    Label:
      zh-cn: 现有VPC的实例ID
      en: Existing VPC ID
  DataDiskSize:
    Description:
      zh-cn: ECS实例数据盘大小,单位为GiB。取值范围:20~32768
      en: 'ECS Instance disk size, range of values: 20-32768, units: GB'
    Default: 100
    MaxValue: 32768
    MinValue: 20
    Label:
      zh-cn: 数据盘空间
      en: Data Disk Space
    Type: Number
  VSwitchId:
    AssociationPropertyMetadata:
      VpcId: VpcId
      ZoneId: ZoneId
    Description:
      zh-cn: 现有网络交换机的实例ID
      en: The instance ID of an existing network switch.
    Default: null
    Label:
      zh-cn: 网络交换机ID
      en: VSwitch ID
    AssociationProperty: 'ALIYUN::ECS::VSwitch::VSwitchId'
    Type: String
  Password:
    ConstraintDescription:
      zh-cn: '长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;''<>,.?/ 中的特殊符号)。'
      en: >-
        Length 8-30, must contain three(Capital letters, lowercase letters,
        numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in).
    Description:
      zh-cn: >-
        服务器登录密码,长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/
        中的特殊符号)。
      en: >-
        Server login password, Length 8-30, must contain three(Capital letters,
        lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special
        symbol in).
    MinLength: 8
    Label:
      zh-cn: 实例密码
      en: Instance Password
    AllowedPattern: '[0-9A-Za-z\_\-\&:;''<>,=%`~!@#\(\)\$\^\*\+\|\{\}\[\]\.\?\/]+$'
    NoEcho: true
    MaxLength: 30
    Type: String
  InstanceType:
    AssociationProperty: 'ALIYUN::ECS::Instance::InstanceType'
    AssociationPropertyMetadata:
      InstanceChargeType: '${InstanceChargeType}'
      ZoneId: ZoneId
    Type: String
    Label:
      zh-cn: 实例类型
      en: Instance Type
  InternetChargeType:
    Type: String
    Description:
      zh-cn: >-
        <font color='blue'><b>可选值:</b></font><br>[PayByBandwidth: <font
        color='green'>按带宽付费。</font>]<br>[PayByTraffic: <font
        color='green'>按流量付费。</font>],<br>默认为PayByTraffic
      en: >-
        <font color='blue'><b>Optional values:</b></font><br>[PayByBandwidth:
        <font color='green'>Pay by bandwidth. </font>]<br>[PayByTraffic: <font
        color='green'>Pay by traffic. </font>],<br>The default is PayByTraffic
    Label:
      en: InternetChargeType
      zh-cn: 流量付费类型
    AllowedValues:
      - PayByBandwidth
      - PayByTraffic
    Default: PayByTraffic
  InternetMaxBandwidthOut:
    Type: Number
    Description:
      en: >-
        ECS Internet Max Bandwidth Out. Value range: 0~100. Unit: Mbps. Default
        value: 0.
      zh-cn: ECS最大出带宽。取值范围:0~100。单位:Mbps。默认值:0。
    Label:
      en: 'Internet Max BandwidthOut '
      zh-cn: 实例公网带宽
    Default: 0
    MaxValue: 100
    MinValue: 0
Outputs:
  InstanceIds:
    Value:
      'Fn::GetAtt':
        - ECSInstances
        - InstanceIds
Conditions: {}
Resources:
  ECSInstances:
    Type: 'ALIYUN::ECS::InstanceGroup'
    Properties:
      SystemDiskCategory:
        Ref: SystemDiskCategory
      VpcId:
        Ref: VpcId
      InstanceChargeType:
        Ref: InstanceChargeType
      AllocatePublicIP: true
      SecurityGroupId:
        Ref: SecurityGroupId
      InternetChargeType:
        Ref: InternetChargeType
      InternetMaxBandwidthOut:
        Ref: InternetMaxBandwidthOut
      DiskMappings:
        - Category:
            Ref: DataDiskCategory
          Size:
            Ref: DataDiskSize
      SystemDiskSize:
        Ref: SystemDiskSize
      ImageId: centos_7
      PeriodUnit:
        Ref: ECSPeriodUnit
      VSwitchId:
        Ref: VSwitchId
      Period:
        Ref: ECSPeriod
      Password:
        Ref: Password
      InstanceType:
        Ref: InstanceType
      ZoneId:
        Ref: ZoneId
      MaxAmount: 1
    Metadata:
      'ALIYUN::ROS::Designer':
        id: 3d97f557-f6c2-475f-bdca-942c45e583b5
Metadata:
  'ALIYUN::ROS::Interface':
    ParameterGroups:
      - Parameters:
          - ZoneId
        Label:
          default:
            zh-cn: 可用区配置
            en: Zone Configuration
      - Parameters:
          - VpcId
          - VSwitchId
          - SecurityGroupId
        Label:
          default:
            zh-cn: 选择已有基础资源配置
            en: Choose existing Infrastructure Configuration
      - Parameters:
          - InstanceChargeType
          - ECSPeriodUnit
          - ECSPeriod
          - InstanceType
          - SystemDiskCategory
          - SystemDiskSize
          - DataDiskCategory
          - DataDiskSize
          - InternetChargeType
          - InternetMaxBandwidthOut
          - Password
        Label:
          default:
            zh-cn: ECS 配置(必填)
            en: ECS Configuration
    TemplateTags:
      - 'acs:example:ISV软件部署:自定义镜像创建单实例ECS云服务器'