Todos os produtos
Search
Central de documentação

Resource Orchestration Service:ALIYUN::ROS::Stack

Última atualização: Jun 27, 2026

O ALIYUN::ROS::Stack cria um stack aninhado. É possível aninhar stacks com até cinco níveis de profundidade.

Um stack aninhado pode conter outros stacks aninhados, formando uma hierarquia. O stack raiz é o pai de nível superior ao qual todos os stacks aninhados pertencem, e seu modelo é chamado de modelo de nível superior. Use o ALIYUN::ROS::Stack para aninhar um stack como recurso em um modelo de nível superior.

Em um modelo de stack aninhado, passe a saída de um stack como entrada para outro. Para recuperar uma saída de stack aninhado, utilize Fn::GetAtt com o nome do stack aninhado e o nome da saída no formato Outputs.NestedStackOutputName. Usar stacks aninhados.

Sintaxe

{
  "Type": "ALIYUN::ROS::Stack",
  "Properties": {
    "TemplateURL": String,
    "TemplateBody": String,
    "TemplateId": String,
    "TemplateVersion": String,
    "TimeoutMins": Number,
    "Parameters": Map,
    "ResourceGroupId": String,
    "Tags": List
  }
}

Propriedades

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

TemplateURL

String

Não

Sim

URL do arquivo de corpo do modelo.

O arquivo de corpo do modelo pode ter até 524.288 bytes. A URL pode ter até 1.024 bytes.

A URL deve apontar para um modelo em um servidor web HTTP ou HTTPS ou em um bucket do Object Storage Service (OSS), como oss://ros/template/demo ou oss://ros/template/demo?RegionId=cn-hangzhou.

Se o ID da região do bucket OSS não for especificado, o sistema usará o ID da região do stack.

Especifique TemplateURL, TemplateBody ou TemplateId. Se todos os três forem especificados, TemplateBody terá precedência.

TemplateBody

Map

Não

Sim

Conteúdo do corpo do modelo para entrega.

O conteúdo consiste em dados brutos. As funções no conteúdo do modelo aplicam-se apenas aos modelos filhos.

Especifique TemplateURL, TemplateBody ou TemplateId. Se todos os três forem especificados, TemplateBody terá precedência.

TemplateId

String

Não

Sim

ID do modelo.

Especifique TemplateURL, TemplateBody ou TemplateId. Se todos os três forem especificados, TemplateBody terá precedência.

TemplateVersion

String

Não

Sim

Nome da versão do modelo.

Nenhuma.

TimeoutMins

Number

Não

Sim

Tempo limite para criar ou atualizar o stack pai.

Unidade: minutos.

Valor padrão: 60.

Parameters

Map

Não

Sim

Pares chave-valor que representam os parâmetros passados ao ROS durante a criação do stack aninhado.

Cada par chave-valor corresponde a um parâmetro definido no modelo do stack aninhado. Obrigatório quando o stack aninhado possui parâmetros de entrada.

ResourceGroupId

String

Não

Não

ID do grupo de recursos.

Nenhuma.

Tags

List

Não

Sim

As tags.

É possível especificar até 20 tags. Propriedades de Tags.

Sintaxe de Tags

"Tags": [
  {
    "Key": String,
    "Value": String
  }
]

Propriedades de Tags

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Key

String

Sim

Não

Chave da tag.

A chave da tag pode ter até 128 caracteres. Não pode começar com aliyun ou acs: e não pode conter http:// ou https://.

Value

String

Não

Não

Valor da tag.

O valor da tag pode ter até 128 caracteres. Não pode começar com aliyun ou acs: e não pode conter http:// ou https://.

Valores de retorno

Fn::GetAtt

Use o código a seguir para obter a saída de um stack aninhado:

{
  "Fn::GetAtt": [
    "<nested_stack>",
    "Outputs.<nested_stack_output_name>"
  ]
}

Ao usar Ref para referenciar um recurso de stack aninhado, o sistema retorna o Alibaba Cloud Resource Name (ARN) do stack aninhado. Exemplo: arn:acs:ros::cn-hangzhou:12345****:stacks/test-nested-stack-Demo-jzkyq7mn****/e71c1e04-1a57-46fc-b9a4-cf7ce0d3****.

Exemplos

Os exemplos YAML e JSON a seguir criam um stack filho contendo uma virtual private cloud (VPC), um vSwitch e um grupo de segurança. O modelo do stack filho está armazenado em oss://ros/template/vpc.txt.

  • Formato YAML

    ROSTemplateFormatVersion: '2015-09-01'
    Description: One VPC, vSwitch, security group.
    Parameters:
      ZoneId:
        Type: String
        Description: The available zone
      SecurityGroupName:
        Type: String
        Description: The security group name
        Default: my-sg-name
      VpcName:
        Type: String
        Description: The VPC name
        MinLength: 2
        MaxLength: 128
        ConstraintDescription: '[2, 128] English or Chinese letters'
        Default: my-vpc-name
      VpcCidrBlock:
        Type: String
        AllowedValues:
          - 192.168.0.0/16
          - 172.16.0.0/12
          - 10.0.0.0/8
        Default: 10.0.0.0/8
      VSwitchCidrBlock:
        Type: String
        Description: The vSwitch subnet which must be within VPC
        Default: 10.0.10.0/24
      UpdateVersion:
        Type: Number
        Default: 0
    Resources:
      Vpc:
        Type: ALIYUN::ECS::VPC
        Properties:
          CidrBlock:
            Ref: VpcCidrBlock
          VpcName:
            Ref: VpcName
      VSwitch:
        Type: ALIYUN::ECS::VSwitch
        Properties:
          CidrBlock:
            Ref: VSwitchCidrBlock
          ZoneId:
            Ref: ZoneId
          VpcId:
            Fn::GetAtt:
              - Vpc
              - VpcId
      SecurityGroup:
        Type: ALIYUN::ECS::SecurityGroup
        Properties:
          SecurityGroupName:
            Ref: SecurityGroupName
          VpcId:
            Ref: Vpc
      WaitConditionHandle:
        Type: ALIYUN::ROS::WaitConditionHandle
        Properties:
          UpdateVersion:
            Ref: UpdateVersion
    Outputs:
      SecurityGroupId:
        Value:
          Fn::GetAtt:
            - SecurityGroup
            - SecurityGroupId
      VpcId:
        Value:
          Fn::GetAtt:
            - Vpc
            - VpcId
      VSwitchId:
        Value:
          Fn::GetAtt:
            - VSwitch
            - VSwitchId
    
  • Formato JSON

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Description": "One VPC, vSwitch, security group.",
      "Parameters": {
        "ZoneId": {
          "Type": "String",
          "Description": "The available zone"
        },
        "SecurityGroupName": {
          "Type": "String",
          "Description": "The security group name",
          "Default": "my-sg-name"
        },
        "VpcName": {
          "Type": "String",
          "Description": "The VPC name",
          "MinLength": 2,
          "MaxLength": 128,
          "ConstraintDescription": "[2, 128] English or Chinese letters",
          "Default": "my-vpc-name"
        },
        "VpcCidrBlock": {
          "Type": "String",
          "AllowedValues": [
            "192.168.0.0/16",
            "172.16.0.0/12",
            "10.0.0.0/8"
          ],
          "Default": "10.0.0.0/8"
        },
        "VSwitchCidrBlock": {
          "Type": "String",
          "Description": "The vSwitch subnet which must be within VPC",
          "Default": "10.0.10.0/24"
        },
        "UpdateVersion": {
          "Type": "Number",
          "Default": 0
        }
      },
      "Resources": {
        "Vpc": {
          "Type": "ALIYUN::ECS::VPC",
          "Properties": {
            "CidrBlock": {
              "Ref": "VpcCidrBlock"
            },
            "VpcName": {
              "Ref": "VpcName"
            }
          }
        },
        "VSwitch": {
          "Type": "ALIYUN::ECS::VSwitch",
          "Properties": {
            "CidrBlock": {
              "Ref": "VSwitchCidrBlock"
            },
            "ZoneId": {
              "Ref": "ZoneId"
            },
            "VpcId": {
              "Fn::GetAtt": [
                "Vpc",
                "VpcId"
              ]
            }
          }
        },
        "SecurityGroup": {
          "Type": "ALIYUN::ECS::SecurityGroup",
          "Properties": {
            "SecurityGroupName": {
              "Ref": "SecurityGroupName"
            },
            "VpcId": {
              "Ref": "Vpc"
            }
          }
        },
        "WaitConditionHandle": {
          "Type": "ALIYUN::ROS::WaitConditionHandle",
          "Properties": {
            "UpdateVersion": {
              "Ref": "UpdateVersion"
            }
          }
        }
      },
      "Outputs": {
        "SecurityGroupId": {
          "Value": {
            "Fn::GetAtt": [
              "SecurityGroup",
              "SecurityGroupId"
            ]
          }
        },
        "VpcId": {
          "Value": {
            "Fn::GetAtt": [
              "Vpc",
              "VpcId"
            ]
          }
        },
        "VSwitchId": {
          "Value": {
            "Fn::GetAtt": [
              "VSwitch",
              "VSwitchId"
            ]
          }
        }
      }
    }

Os exemplos YAML e JSON a seguir criam um stack pai:

  • Formato YAML

    ROSTemplateFormatVersion: '2015-09-01'
    Description: One ECS instance.
    Parameters:
      ImageId:
        Default: centos_7
        Type: String
        Description: Image Id, represents the image resource to startup the ECS instance
      InstanceType:
        Type: String
        Description: The ECS instance type,
        Default: ecs.xn4.small
      ZoneId:
        Type: String
        Description: 'The available zone '
      InstanceChargeType:
        Type: String
        AllowedValues:
          - PrePaid
          - PostPaid
        Default: PostPaid
        Description: The instance charge type
      SecurityGroupName:
        Type: String
        Description: The security group name
        Default: my-sg-name
      NetworkInterfaceName:
        Type: String
        Description: The Network interface name
        Default: my-eni-name
      VpcName:
        Type: String
        Description: The VPC name
        MinLength: 2
        MaxLength: 128
        ConstraintDescription: '[2, 128] English or Chinese letters'
        Default: my-vpc-name
      IoOptimized:
        AllowedValues:
          - none
          - optimized
        Description: IO optimized, optimized is for the IO optimized instance type
        Type: String
        Default: optimized
      SystemDiskCategory:
        AllowedValues:
          - cloud
          - cloud_efficiency
          - cloud_ssd
        Description: 'System disk category: average cloud disk(cloud), efficient cloud disk(cloud_efficiency) or SSD cloud disk(cloud_ssd)'
        Type: String
        Default: cloud_ssd
      VpcCidrBlock:
        Type: String
        AllowedValues:
          - 192.168.0.0/16
          - 172.16.0.0/12
          - 10.0.0.0/8
        Default: 10.0.0.0/8
      VSwitchCidrBlock:
        Type: String
        Description: The VSwitch subnet which must be within VPC
        Default: 10.0.10.0/24
      UpdateVersion:
        Type: Number
        Default: 0
    Resources:
      NetworkStack:
        Type: ALIYUN::ROS::Stack
        Properties:
          TemplateURL: oss://ros/template/vpc.txt
          TimeoutMins: 5
          Parameters:
            ZoneId:
              Ref: ZoneId
            SecurityGroupName:
              Ref: SecurityGroupName
            VpcName:
              Ref: VpcName
            VpcCidrBlock:
              Ref: VpcCidrBlock
            VSwitchCidrBlock:
              Ref: VSwitchCidrBlock
            UpdateVersion:
              Ref: UpdateVersion
      WebServer:
        Type: ALIYUN::ECS::Instance
        Properties:
          ImageId:
            Ref: ImageId
          InstanceType:
            Ref: InstanceType
          InstanceChargeType:
            Ref: InstanceChargeType
          SecurityGroupId:
            Fn::GetAtt:
              - NetworkStack
              - Outputs.SecurityGroupId
          VpcId:
            Fn::GetAtt:
              - NetworkStack
              - Outputs.VpcId
          VSwitchId:
            Fn::GetAtt:
              - NetworkStack
              - Outputs.VSwitchId
          IoOptimized:
            Ref: IoOptimized
          ZoneId:
            Ref: ZoneId
          SystemDisk_Category:
            Ref: SystemDiskCategory
          DiskMappings:
            - Category: cloud_ssd
              Size: 20
    Outputs:
      InstanceId:
        Value:
          Fn::GetAtt:
            - WebServer
            - InstanceId
      PublicIp:
        Value:
          Fn::GetAtt:
            - WebServer
            - PublicIp
      SecurityGroupId:
        Value:
          Fn::GetAtt:
            - NetworkStack
            - Outputs.SecurityGroupId
      VpcId:
        Value:
          Fn::GetAtt:
            - NetworkStack
            - Outputs.VpcId
      VSwitchId:
        Value:
          Fn::GetAtt:
            - NetworkStack
            - Outputs.VSwitchId
      NetworkStackArn:
        Value:
          Ref: NetworkStack
    
  • Formato JSON

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Description": "One ECS instance.",
      "Parameters": {
        "ImageId": {
          "Default": "centos_7",
          "Type": "String",
          "Description": "Image Id, represents the image resource to startup the ECS instance"
        },
        "InstanceType": {
          "Type": "String",
          "Description": "The ECS instance type,",
          "Default": "ecs.xn4.small"
        },
        "ZoneId": {
          "Type": "String",
          "Description": "The available zone "
        },
        "InstanceChargeType": {
          "Type": "String",
          "AllowedValues": [
            "PrePaid",
            "PostPaid"
          ],
          "Default": "PostPaid",
          "Description": "The instance charge type"
        },
        "SecurityGroupName": {
          "Type": "String",
          "Description": "The security group name",
          "Default": "my-sg-name"
        },
        "NetworkInterfaceName": {
          "Type": "String",
          "Description": "The Network interface name",
          "Default": "my-eni-name"
        },
        "VpcName": {
          "Type": "String",
          "Description": "The VPC name",
          "MinLength": 2,
          "MaxLength": 128,
          "ConstraintDescription": "[2, 128] English or Chinese letters",
          "Default": "my-vpc-name"
        },
        "IoOptimized": {
          "AllowedValues": [
            "none",
            "optimized"
          ],
          "Description": "IO optimized, optimized is for the IO optimized instance type",
          "Type": "String",
          "Default": "optimized"
        },
        "SystemDiskCategory": {
          "AllowedValues": [
            "cloud",
            "cloud_efficiency",
            "cloud_ssd"
          ],
          "Description": "System disk category: average cloud disk(cloud), efficient cloud disk(cloud_efficiency) or SSD cloud disk(cloud_ssd)",
          "Type": "String",
          "Default": "cloud_ssd"
        },
        "VpcCidrBlock": {
          "Type": "String",
          "AllowedValues": [
            "192.168.0.0/16",
            "172.16.0.0/12",
            "10.0.0.0/8"
          ],
          "Default": "10.0.0.0/8"
        },
        "VSwitchCidrBlock": {
          "Type": "String",
          "Description": "The VSwitch subnet which must be within VPC",
          "Default": "10.0.10.0/24"
        },
        "UpdateVersion": {
          "Type": "Number",
          "Default": 0
        }
      },
      "Resources": {
        "NetworkStack": {
          "Type": "ALIYUN::ROS::Stack",
          "Properties": {
            "TemplateURL": "oss://ros/template/vpc.txt",
            "TimeoutMins": 5,
            "Parameters": {
              "ZoneId": {
                "Ref": "ZoneId"
              },
              "SecurityGroupName": {
                "Ref": "SecurityGroupName"
              },
              "VpcName": {
                "Ref": "VpcName"
              },
              "VpcCidrBlock": {
                "Ref": "VpcCidrBlock"
              },
              "VSwitchCidrBlock": {
                "Ref": "VSwitchCidrBlock"
              },
              "UpdateVersion": {
                "Ref": "UpdateVersion"
              }
            }
          }
        },
        "WebServer": {
          "Type": "ALIYUN::ECS::Instance",
          "Properties": {
            "ImageId": {
              "Ref": "ImageId"
            },
            "InstanceType": {
              "Ref": "InstanceType"
            },
            "InstanceChargeType": {
              "Ref": "InstanceChargeType"
            },
            "SecurityGroupId": {
              "Fn::GetAtt": [
                "NetworkStack",
                "Outputs.SecurityGroupId"
              ]
            },
            "VpcId": {
              "Fn::GetAtt": [
                "NetworkStack",
                "Outputs.VpcId"
              ]
            },
            "VSwitchId": {
              "Fn::GetAtt": [
                "NetworkStack",
                "Outputs.VSwitchId"
              ]
            },
            "IoOptimized": {
              "Ref": "IoOptimized"
            },
            "ZoneId": {
              "Ref": "ZoneId"
            },
            "SystemDisk_Category": {
              "Ref": "SystemDiskCategory"
            },
            "DiskMappings": [
              {
                "Category": "cloud_ssd",
                "Size": 20
              }
            ]
          }
        }
      },
      "Outputs": {
        "InstanceId": {
          "Value": {
            "Fn::GetAtt": [
              "WebServer",
              "InstanceId"
            ]
          }
        },
        "PublicIp": {
          "Value": {
            "Fn::GetAtt": [
              "WebServer",
              "PublicIp"
            ]
          }
        },
        "SecurityGroupId": {
          "Value": {
            "Fn::GetAtt": [
              "NetworkStack",
              "Outputs.SecurityGroupId"
            ]
          }
        },
        "VpcId": {
          "Value": {
            "Fn::GetAtt": [
              "NetworkStack",
              "Outputs.VpcId"
            ]
          }
        },
        "VSwitchId": {
          "Value": {
            "Fn::GetAtt": [
              "NetworkStack",
              "Outputs.VSwitchId"
            ]
          }
        },
        "NetworkStackArn": {
          "Value": {
            "Ref": "NetworkStack"
          }
        }
      }
    }