当您使用ROS创建资源栈管理多种资源时,通常需要打开多个控制台查找资源参数信息。此时您可以在模板的参数配置中指定AssociationProperty以获取所选地域下对应的资源,指定AssociationPropertyMetadata对不同参数添加筛选条件,以便在控制台动态选择参数配置。

参数说明

您可以根据实际需求指定AssociationPropertyMetadata参数的取值:

  • 为参数指定特定值。例如:"RegionId": "cn-hangzhou",ROS将填入特定的地域cn-hangzhou。
  • 为参数指定变量,格式为${ParemeterKey}。例如:"VpcId": "${VpcId}",ROS将动态获取当前模板中参数VpcId对应的值。
    说明 如果需要将${ParemeterKey}指定为固定值,可以增加感叹号(!)。例如:${!Literal}表示取值为${Literal}

ROS支持的AssociationProperty和对应的AssociationPropertyMetadata如下表所示。

AssociationProperty取值 说明 对应的AssociationPropertyMetadata
Password 密码输入
TextArea 富文本输入
Json 对象输入
CommaDelimitedList 逗号分隔的数组
Code 代码输入
FileContent 从本地文件读取内容 AcceptFileSuffixes(接受上传的文件类型)
Cron Cron表达式
ALIYUN::ECS::RegionId 地域ID
ALIYUN::ECS::ZoneId 可用区ID RegionId(地域ID)
ALIYUN::ECS::Instance::InstanceId ECS实例ID RegionId(地域ID)
ALIYUN::RDS::Instance::InstanceId RDS实例ID
  • RegionId(地域ID)
  • ZoneId(可用区ID)
ALIYUN::ECS::Disk::DataDiskCategory 数据盘类型
  • RegionId(地域ID)
  • ZoneId(可用区ID)
  • InstanceType(实例类型)
ALIYUN::ECS::Disk::SystemDiskCategory 系统盘类型
  • RegionId(地域ID)
  • ZoneId(可用区ID)
  • InstanceType(实例类型)
ALIYUN::ECS::Instance::ImageId 镜像ID RegionId(地域ID)
ALIYUN::ECS::VPC::VPCId 专有网络ID RegionId(地域ID)
ALIYUN::ECS::VSwitch 交换机
  • RegionId(地域ID)
  • ZoneId(可用区ID)
  • VpcId(专有网络ID)
ALIYUN::ECS::VSwitch::VSwitchId 交换机ID
  • RegionId(地域ID)
  • ZoneId(可用区ID)
  • VpcId(专有网络ID)
ALIYUN::ECS::Instance::InstanceType ECS实例规格
  • RegionId(地域ID)
  • ZoneId(可用区ID)
  • InstanceChargeType(实例付费类型)
  • SpotStrategy(按量付费实例的竞价策略)
ALIYUN::ECS::SecurityGroup::SecurityGroupId 安全组ID
  • RegionId(地域ID)
  • VpcId(专有网络ID)
ALIYUN::ECS::KeyPair::KeyPairName 密钥对 RegionId(地域ID)
ALIYUN::ECS::Snapshot::AutoSnapshotPolicyId 自动快照策略 RegionId(地域ID)
ALIYUN::RDS::Instance::InstanceType RDS实例规格
  • RegionId(地域ID)
  • ZoneId(可用区ID)
  • InstanceChargeType(实例付费类型)
  • Category(实例系列)
  • Engine(数据库类型)
  • EngineVersion(数据库版本号)
  • DBInstanceClass(实例规格)
  • OrderType(订单类型)
  • DBInstanceStorageType(实例存储类型)
  • DispenseMode(分配模式)
ALIYUN::SLB::Instance::InstanceType SLB实例规格
  • RegionId(地域ID)
  • ZoneId(可用区ID)
  • InstanceChargeType(实例付费类型)
  • SpotStrategy(按量付费实例的竞价策略)
ALIYUN::OOS::Template::TemplateName OOS模板 RegionId(地域ID)
ALIYUN::OOS::Template::TemplateVersion OOS模板版本
  • RegionId(地域ID)
  • TemplateName(模板名称)
ALIYUN::OOS::Parameter::Value OOS普通参数 RegionId(地域ID)
ALIYUN::OOS::SecretParameter::Value OOS加密参数 RegionId(地域ID)
ALIYUN::OOS::Package::PackageName OOS软件包 RegionId(地域ID)
ALIYUN::OOS::Package::PackageVersion OOS软件包版本
  • RegionId(地域ID)
  • TemplateName(模板名称)
ALIYUN::VPC::VirtualBorderRouter::RouteTableId 边界路由器(VBR) RegionId(地域ID)
ALIYUN::ESS::ScalingConfiguration::ScalingConfigurationId 弹性伸缩配置 RegionId(地域ID)
ALIYUN::RAM::User RAM用户 RegionId(地域ID)
ALIYUN::RAM::Role RAM角色 RegionId(地域ID)

示例1:AssociationProperty示例

在参数中指定AssociationProperty取值为ALIYUN::ECS::Instance::ImageId,以获取所选地域下所有的镜像ID。

"Parameters": {
  "UserName": {
    "Label": "用户名",
    "Description": "请输入用户名",
    "Default": "anonymous",
    "Type": "String",
    "MinLength": "6",
    "MaxLength": "12",
    "AllowedValues": [
      "anonymous",
      "user-one",
      "user-two"
    ]
  },
  "PassWord": {
    "Label": "密码",
    "NoEcho": "True",
    "Description": "请输入用户密码",
    "Type": "String",
    "MinLength": "1",
    "MaxLength": "41",
    "AllowedPattern": "[a-zA-Z0-9]*"
  },
  "ImageId": {
    "Label": "镜像",
    "Type": "String",
    "Description": "请选择镜像",
    "AssociationProperty": "ALIYUN::ECS::Instance::ImageId",
    "Default": "centos_7_7_x64_20G_alibase_2020****.vhd"
  }
}

参数说明:

  • UserName:用户名。String类型,长度为6~12个字符,取值:
    • anonymous(默认值)
    • user-one
    • user-two
  • PassWord:密码。String类型,无默认值。长度为1~41个字符,支持大写英文字母、小写英文字母和数字。

    NoEcho取值为true,表示查询资源栈时将不会返回参数值。

  • ImageId:镜像ID。String类型。

    AssociationProperty取值为ALIYUN::ECS::Instance::ImageId,创建资源栈时ROS控制台将会验证参数指定的镜像ID是否可用,并以下拉框的方式列出所选地域的其他镜像ID取值。

示例2:AssociationPropertyMetadata示例

在参数中指定AssociationProperty和对应的AssociationPropertyMetadata(RegionId、VpcId和ZoneId),以便获取指定专有网络和可用区的交换机。其中,RegionId取值为固定值cn-hangzhou;VpcId和ZoneId取值为变量${VpcId}和${EcsZone},将根据ALIYUN::ECS::VPC::VPCId和ALIYUN::ECS::Instance::ZoneId选定的取值进行动态刷新,从而建立交换机与专有网络和可用区的关联关系。

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "VpcId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::VPC::VPCId"
    },
    "EcsZone": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::Instance::ZoneId"
    },
    "VSwitchId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
      "AssociationPropertyMetadata": {
           "RegionId": "cn-hangzhou",
           "VpcId": "${VpcId}",
       "ZoneId": "${EcsZone}"
      }
    }
  }
}