如果您需要更新资源,但是资源的属性不支持直接修改,您可以替换更新资源。
背景信息
如果您只需要修改资源的属性,保留原有的资源(资源物理ID不变),您可以在资源栈模板中修改参数属性。
如果您需要更新资源,但是资源的属性不支持直接修改,您可以通过替换更新功能删除资源后重新创建资源,此时资源物理ID会发生变化。本文以替换ALIYUN::ECS::VSwitch的属性CidrBlock为例,为您介绍如何替换更新资源。
通过控制台替换更新资源
- 登录资源编排控制台。
- 创建资源栈。
使用如下模板创建一个包含ALIYUN::ECS::VSwitch资源的资源栈,属性CidrBlock取值为172.16.100.0/24。
创建资源栈操作方法,请参见创建资源栈。
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"ZoneId": {
"Type": "String",
"Default": "cn-hangzhou-i"
},
"VSwitchCidrBlock": {
"Type": "String",
"Default": "172.16.100.0/24"
}
},
"Resources": {
"EcsVpc": {
"Type": "ALIYUN::ECS::VPC",
"Properties": {
"CidrBlock": "172.16.0.0/12",
"VpcName": "MyTestVpc"
}
},
"VSwitch": {
"Type": "ALIYUN::ECS::VSwitch",
"Properties": {
"ZoneId": {
"Ref": "ZoneId"
},
"CidrBlock": {
"Ref": "VSwitchCidrBlock"
},
"VpcId": {
"Fn::GetAtt": [
"EcsVpc",
"VpcId"
]
},
"VSwitchName": "VSwitch"
}
}
},
"Outputs": {
}
}
- 替换更新资源栈。
- 在左侧导航栏,单击资源栈。
- 在页面左上角的地域下拉列表,选择资源栈的所在地域。
- 在资源栈列表页面,找到需要更新的资源栈,单击右侧操作列中的更新。
- 在配置模板参数页面的参数录入区域,将VSwitchCidrBlock由172.16.100.0/24更新为172.16.200.0/24。
- 单击下一步。
- 在配置资源栈页面,单击启用,开启替换更新功能。
- 单击确认修改。
替换更新成功后,VSwitch资源物理ID将发生变化,CidrBlock参数将从172.16.100.0/24替换为172.16.200.0/24。您可以在资源栈详情页单击资源页签,单击新的VSwitch资源ID进入交换机详情页查看资源信息。
通过OpenAPI替换更新资源
- 登录OpenAPI Explorer。
- 调用CreateStack接口创建资源栈。
- 在左侧文本框输入CreateStack搜索CreateStack接口。
- 选择RegionId,输入StackName和TemplateBody,单击发起调用。
TemplateBody取值如下:
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"ZoneId": {
"Type": "String",
"Default": "cn-hangzhou-i"
},
"VSwitchCidrBlock": {
"Type": "String",
"Default": "172.16.100.0/24"
}
},
"Resources": {
"EcsVpc": {
"Type": "ALIYUN::ECS::VPC",
"Properties": {
"CidrBlock": "172.16.0.0/12",
"VpcName": "MyTestVpc"
}
},
"VSwitch": {
"Type": "ALIYUN::ECS::VSwitch",
"Properties": {
"ZoneId": {
"Ref": "ZoneId"
},
"CidrBlock": {
"Ref": "VSwitchCidrBlock"
},
"VpcId": {
"Fn::GetAtt": [
"EcsVpc",
"VpcId"
]
},
"VSwitchName": "VSwitch"
}
}
},
"Outputs": {
}
}
- 调用UpdateStack接口替换更新资源栈。
- 在左侧文本框输入UpdateStack搜索UpdateStack接口。
- 选择RegionId,输入StackId、TemplateBody和ReplacementOption,单击发起调用。

参数设置说明如下:
- RegionId:选择与创建资源栈时相同的地域。
- StackId:输入创建资源栈后返回的资源栈ID。
- TemplateBody:以替换VSwitch的CidrBlock参数为例,将172.16.100.0/24更新为172.16.200.0/24。取值如下:
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"ZoneId": {
"Type": "String",
"Default": "cn-hangzhou-i"
},
"VSwitchCidrBlock": {
"Type": "String",
"Default": "172.16.200.0/24"
}
},
"Resources": {
"EcsVpc": {
"Type": "ALIYUN::ECS::VPC",
"Properties": {
"CidrBlock": "172.16.0.0/12",
"VpcName": "MyTestVpc"
}
},
"VSwitch": {
"Type": "ALIYUN::ECS::VSwitch",
"Properties": {
"ZoneId": {
"Ref": "ZoneId"
},
"CidrBlock": {
"Ref": "VSwitchCidrBlock"
},
"VpcId": {
"Fn::GetAtt": [
"EcsVpc",
"VpcId"
]
},
"VSwitchName": "VSwitch"
}
}
},
"Outputs": {
}
}
- ReplacementOption:填写Enabled。表示允许替换更新资源。
UpdateStack接口调用成功后,VSwitch资源物理ID将发生变化,CidrBlock参数将从172.16.100.0/24替换为172.16.200.0/24。您可以调用
GetStack接口查看资源信息。

在文档使用中是否遇到以下问题
更多建议
匿名提交