资源编排支持通过定义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的值。