当您不需要资源栈中的某个资源时,您可以通过更新资源栈模板的方式移除该资源。本文以从资源栈中移除弹性公网IP(EIP)资源为例为您进行介绍。

背景信息

移除资源时,会面临两种情况:
  • 从资源栈移除资源的同时,删除该资源本身。资源的删除保护DeletionPolicy设置为Delete
  • 仅从资源栈移除资源,保留资源本身。资源的删除保护DeletionPolicy设置为Retain

本文提供的示例为第二种情况,即仅从资源栈移除资源,但要保留资源本身。

操作步骤

  1. 登录资源编排控制台
  2. 在左侧导航栏,单击资源栈
  3. 在页面左上角的地域下拉列表,选择资源栈的所在地域。
  4. 更新资源栈,将待移除资源(例如:EIP2)的DeletionPolicy设置为Retain
    当EIP2的DeletionPolicyDelete时需要执行该步骤,当DeletionPolicyRetain时直接跳过该步骤。
    1. 资源栈列表页面,单击资源栈右侧操作列的更新
    2. 单击上一步,然后在选择模板页面的准备模板区域,选择替换当前模板
    3. 模板录入方式区域,选择输入模板,在模板内容区域修改EIP2的DeletionPolicy值为Retain,然后单击下一步
      示例模板如下所示:
      {
        "ROSTemplateFormatVersion": "2015-09-01",
        "Resources": {
          "Eip": {
            "Type": "ALIYUN::VPC::EIP",
            "Properties": {
              "Bandwidth": 5
            }
          },
          "Eip2": {
            "Type": "ALIYUN::VPC::EIP",
            "DeletionPolicy": "Retain",
            "Properties": {
              "Bandwidth": 5
            }
          }
        },
        "Outputs": {
          "EipAddress": {
            "Value": {
              "Fn::GetAtt": [
                "Eip",
                "EipAddress"
              ]
            }
          },
          "AllocationId": {
            "Value": {
              "Fn::GetAtt": [
                "Eip",
                "AllocationId"
              ]
            }
          },
          "EipAddress2": {
            "Value": {
              "Fn::GetAtt": [
                "Eip2",
                "EipAddress"
              ]
            }
          },
          "AllocationId2": {
            "Value": {
              "Fn::GetAtt": [
                "Eip2",
                "AllocationId"
              ]
            }
          }
        }
      }
    4. 配置模板参数页面,单击确认修改,完成资源栈更新。
  5. 更新资源栈,移除EIP2资源。
    1. 资源栈列表页面,单击资源栈右侧操作列的更新
    2. 单击上一步,然后在选择模板页面的准备模板区域,选择替换当前模板
    3. 模板录入方式区域,选择输入模板,在模板内容区域修改模板内容,然后单击下一步
      本示例中,需要在模板的ResourcesOutputs中删除EIP2的参数。删除后的示例模板如下所示:
      {
        "ROSTemplateFormatVersion": "2015-09-01",
        "Resources": {
          "Eip": {
            "Type": "ALIYUN::VPC::EIP",
            "Properties": {
              "Bandwidth": 5
            }
          }
        },
        "Outputs": {
          "EipAddress": {
            "Value": {
              "Fn::GetAtt": [
                "Eip",
                "EipAddress"
              ]
            }
          },
          "AllocationId": {
            "Value": {
              "Fn::GetAtt": [
                "Eip",
                "AllocationId"
              ]
            }
          }
        }
      }
    4. 配置模板参数页面,单击确认修改,完成资源栈更新。

执行结果

移除资源成功后,资源栈中将不再包含EIP2资源。此时在资源栈的资源页签将不会看到EIP2资源信息,但您可以从VPC控制台的弹性公网IP页面查询到EIP2信息,表示EIP2资源仍然保留。