资源编排支持通过定义AssociationPropertyMetadata
实现参数之间的依赖关系。
依赖数组字符串
该示例模板中,Disk
中的InstanceType
属性依赖InstanceTypes
中的某个示例规格。
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
RegionId:
Type: String
AssociationProperty: RegionId
InstanceTypes:
Type: Json
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
Multiple: true
RegionId: ${RegionId}
Disk:
Type: String
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
RegionId: ${RegionId}
InstanceType: ${InstanceTypes.2}
AssociationPropertyMetadata
参数说明:RegionId
:${RegionId}表示引用外层的RegionId
。InstanceType
:${InstanceTypes.2}表示引用InstanceTypes
中选中的示例规格。其中
InstanceTypes.2
等价于InstanceTypes[2]
。
依赖对象属性
该示例模板中,InstanceTypes
中的ZoneId
依赖VSWObj
对象中ZoneId
属性的值。
ROSTemplateFormatVersion: '2015-09-01'
Description: ''
Parameters:
RegionId:
Type: String
AssociationProperty: RegionId
VSWObj:
Type: Json
AssociationPropertyMetadata:
Parameters:
ZoneId:
Type: String
AssociationProperty: ZoneId
AssociationPropertyMetadata:
AutoChangeType: false
RegionId: ${RegionId}
VSWId:
Type: String
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
AssociationPropertyMetadata:
RegionId: ${RegionId}
ZoneId: ${.ZoneId}
InstanceTypes:
Type: Json
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
Multiple: true
RegionId: ${RegionId}
ZoneIds: ${VSWObj.ZoneId}
AssociationPropertyMetadata
参数说明:RegionId
:${RegionId}表示引用外层的RegionId
。ZoneId
:${.ZoneId}表示引用同级中的ZoneId
。ZoneIds
:${VSWObj.ZoneId}表示引用VSWObj
中的ZoneId
。
依赖对象数组元素
- 依赖对象数组的某个元素
该示例模板中,
InstanceTypes
中的ZoneId
依赖VSWObj
中第一个ZoneId
的值,同时,VSWObj
中的VSWId
依赖同级ZoneId
的值。ROSTemplateFormatVersion: '2015-09-01' Description: '' Parameters: RegionId: Type: String AssociationProperty: RegionId VSWObj: Type: Json AssociationProperty: List[Parameters] AssociationPropertyMetadata: Parameters: ZoneId: Type: String AssociationProperty: ZoneId AssociationPropertyMetadata: AutoChangeType: false RegionId: ${RegionId} VSWId: Type: String AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId AssociationPropertyMetadata: RegionId: ${RegionId} ZoneId: ${.ZoneId} InstanceTypes: Type: Json AssociationProperty: ALIYUN::ECS::Instance::InstanceType AssociationPropertyMetadata: Multiple: true RegionId: ${RegionId} ZoneId: ${VSWObj[0].ZoneId}
AssociationPropertyMetadata
参数说明:RegionId
:${RegionId}表示引用外层的RegionId
。ZoneId
:${.ZoneId}表示引用同级中的ZoneId
。ZoneId
:${VSWObj[0].ZoneId}表示引用VSWObj
中第一个ZoneId
的值。
- 依赖对象数组的某组元素
该示例模板中,
InstanceTypes
中的ZoneIds
依赖VSWObj
中选择的所有ZoneId
的值。ROSTemplateFormatVersion: '2015-09-01' Description: '' Parameters: RegionId: Type: String AssociationProperty: RegionId VSWObj: Type: Json AssociationProperty: List[Parameters] AssociationPropertyMetadata: Parameters: ZoneId: Type: String AssociationProperty: ZoneId AssociationPropertyMetadata: AutoChangeType: false RegionId: ${RegionId} VSWId: Type: String AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId AssociationPropertyMetadata: RegionId: ${RegionId} ZoneId: ${.ZoneId} InstanceTypes: Type: Json AssociationProperty: ALIYUN::ECS::Instance::InstanceType AssociationPropertyMetadata: Multiple: true RegionId: ${RegionId} ZoneIds: ${VSWObj[].ZoneId}
AssociationPropertyMetadata
参数说明:RegionId
:${RegionId}表示引用外层的RegionId
。ZoneId
:${.ZoneId}表示引用同级中的ZoneId
。ZoneIds
:${VSWObj[].ZoneId}表示引用VSWObj
中所有ZoneId
的值。