Um modelo define recursos de cloud e suas dependências. O Resource Orchestration Service (ROS) implanta modelos como stacks. Este guia aborda a escrita, o teste e a parametrização de modelos.
Visão geral
Para conhecer a estrutura dos modelos do ROS, consulte Quick start for writing a template.
Este guia começa com um modelo simples de VPC e, em seguida, aborda dependências de recursos e parametrização:
-
Escreva e teste um modelo simples
Define multiple resources and their dependencies in a template
Escreva um modelo
Declare os recursos na seção Resources. Consulte os tipos e propriedades compatíveis no Resource type index ou siga o Quick start for writing a template. O exemplo a seguir cria uma VPC:
ROSTemplateFormatVersion: '2015-09-01'
Resources:
VPC:
Type: ALIYUN::ECS::VPC
Properties:
VpcName: myvpc
CidrBlock: 192.168.0.0/16
Outputs:
VpcId:
Value:
Ref: VPC
VRouterId:
Value:
Fn::GetAtt:
- VPC
- VRouterId
Teste o modelo
Crie uma stack a partir do modelo para verifique se ele provisiona os recursos conforme o esperado.
Faça login no console do ROS.
-
Crie uma stack.
No painel de navegação à esquerda, clique em Stacks.
Na barra de navegação superior, selecione a região onde deseja criar a stack, como China (Hangzhou).
-
Na página Stacks, clique em Create Stack. Na seção Specify Template, clique em Select an Existing Template.
NotaSe você selecionar Create Template ou ROS Infrastructure Composer, será redirecionado para a página correspondente.
-
Na página Select Template, clique em Select an Existing Template na área Specify Template. Defina o Template Import Method como Enter Template Content. Na seção Template Content, selecione a aba ROS, cole o modelo YAML da seção Write a template e clique em Next.
Na página Configure Parameters, insira um Stack Name.
Na seção Configure Stack Settings, configure opções como Rollback on Failure, Timeout Period, Tags, Resource Group, Stack Policy, Maximum Concurrent Resources, Deletion Protection, RAM Role, Stack Event Callback URLs e Manual Payment. Em seguida, clique em Next.
Na página Check and Confirm, clique em Preview Template Resources. Na caixa de diálogo Preview, revise os nomes, tipos e propriedades dos recursos validados pelo ROS e clique em OK.
Ainda na página Check and Confirm, clique em Create.
-
Visualize a stack.
Na página de gerenciamento da stack, clique na aba Event para ver a lista de eventos dos recursos no modelo.
-
Clique na aba Resources para visualizar detalhes dos recursos criados.
NotaClique no ID de um recurso para abrir seu console e verificar a configuração do recurso.
Clique na aba Output para ver as saídas definidas na seção
Outputsdo modelo.
Defina múltiplos recursos e suas dependências
Um vSwitch deve pertencer a uma VPC. Defina ambos os recursos e sua dependência em um único modelo para provisionar ambientes complexos em uma única stack.
-
Use functions para obter o valor de uma propriedade de saída de um recurso.
Por exemplo, se um recurso VPC estiver definido na seção
Resources, use{"Fn::GetAtt": ["VPC", "VpcId"]}para obter sua propriedade de saídaVpcId. -
Use functions para obter um ID de recurso ou um valor de parâmetro.
Por exemplo, se um recurso VPC estiver definido na seção
Resources, use{"Ref": "VPC"}para referenciar seu ID de recurso.Nota{"Ref": "VPC"}retorna o mesmo valor que{"Fn::GetAtt": ["VPC", "VpcId"]}, mas é mais conciso.RefeFn::GetAttdeclaram implicitamente dependências de recursos. Para declarar dependências explicitamente, use o atributo DependsOn.
-
Adicione um recurso vSwitch.
O modelo a seguir adiciona um vSwitch chamado
myvswna zonacn-beijing-fcom bloco CIDR192.168.0.0/24, referenciando a VPC. A seçãoOutputsinclui o ID do vSwitch.ROSTemplateFormatVersion: '2015-09-01' Resources: VPC: Type: ALIYUN::ECS::VPC Properties: VpcName: myvpc CidrBlock: 192.168.0.0/16 VSwitch: Type: ALIYUN::ECS::VSwitch Properties: VpcId: Ref: VPC ZoneId: cn-beijing-f VSwitchName: myvsw CidrBlock: 192.168.0.0/24 Outputs: VpcId: Value: Fn::GetAtt: - VPC - VpcId VRouterId: Value: Fn::GetAtt: - VPC - VRouterId VSwitchId: Value: Ref: VSwitch
Defina valores e propriedades de parâmetros
A seção Parameters torna os modelos reutilizáveis. Defina parâmetros para aceitar diferentes valores na criação da stack sem precisar editar o modelo.
-
Defina parâmetros
Codificar propriedades como
ZoneIddiretamente limita o modelo a uma única configuração. Defina parâmetros para que cada criação de stack possa fornecer valores diferentes.-
Parâmetros no modelo
Parâmetro
Descrição
ZoneIdDefine a zona de disponibilidade do vSwitch.
VpcCidrBlockEspecifica o bloco CIDR da VPC. Padrão:
192.168.0.0/16.VSwitchCidrBlockDetermina o bloco CIDR do vSwitch. Padrão:
192.168.0.0/24. -
Exemplo de código do modelo
ROSTemplateFormatVersion: '2015-09-01' Parameters: ZoneId: Type: String VpcCidrBlock: Type: String Default: 192.168.0.0/16 VSwitchCidrBlock: Type: String Default: 192.168.0.0/24 Resources: VPC: Type: ALIYUN::ECS::VPC Properties: VpcName: myvpc CidrBlock: Ref: VpcCidrBlock VSwitch: Type: ALIYUN::ECS::VSwitch Properties: VpcId: Ref: VPC ZoneId: Ref: ZoneId VSwitchName: myvsw CidrBlock: Ref: VSwitchCidrBlock Outputs: VpcId: Value: Ref: VPC VRouterId: Value: Fn::GetAtt: - VPC - VRouterId VSwitchId: Value: Ref: VSwitchAo criar uma stack, defina os valores dos parâmetros no console do ROS.
O ROS infere valores válidos a partir das associações de propriedades dos recursos. Por exemplo, como
ZoneIdmapeia para a propriedadeZoneIddo vSwitch, o console exibe apenas zonas compatíveis com vSwitches.
-
-
Defina dinamicamente os valores permitidos
A seção Parameters oferece suporte a propriedades que personalizam o comportamento do console.
-
Propriedades dos parâmetros
Propriedade
Descrição
AllowedValues
Restringe a entrada a uma lista predefinida, exibida como uma lista suspensa no console. Exemplo:
VpcCidrBlockpermite10.0.0.0/8,172.16.0.0/12e192.168.0.0/16.Label
Configura um nome de exibição para o parâmetro no console. Exemplo:
ZoneIdaparece comoAvailability Zone ID. -
Exemplo de código do modelo
ROSTemplateFormatVersion: '2015-09-01' Parameters: ZoneId: Type: String Label: Availability Zone ID VpcCidrBlock: Type: String Label: VPC CIDR Block Default: 192.168.0.0/16 AllowedValues: - 10.0.0.0/8 - 172.16.0.0/12 - 192.168.0.0/16 VSwitchCidrBlock: Type: String Label: vSwitch CIDR Block Default: 192.168.0.0/24Durante a criação da stack, selecione os valores dos parâmetros nas listas suspensas do console do ROS.
-
-
Apresente parâmetros dinamicamente com base em associações
Use AssociationProperty and AssociationPropertyMetadata para permitir que o console consulte e exiba dinamicamente os valores permitidos para um parâmetro.
Por exemplo, se um modelo usa
VpcIdevSwitchIdcomo parâmetros, o console preenche automaticamente as listas suspensas:ROSTemplateFormatVersion: '2015-09-01' Parameters: VpcId: Type: String AssociationProperty: ALIYUN::ECS::VPC::VPCId ZoneId: Type: String AssociationProperty: ALIYUN::ECS::ZoneId VSwitchId: Type: String AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId AssociationPropertyMetadata: ZoneId: ${ZoneId} VpcId: ${VpcId}Ao criar uma stack, os parâmetros são preenchidos dinamicamente no console.
-
Agrupe parâmetros semelhantes
Use a seção Metadata para agrupar parâmetros relacionados e facilitar a configuração no console.
Por exemplo, agrupe
ZoneId,VpcCidrBlockeVSwitchCidrBlockem dois grupos: Basic Settings (ZoneId) e Resource Settings (VpcCidrBlock,VSwitchCidrBlock):ROSTemplateFormatVersion: '2015-09-01' Parameters: ZoneId: Type: String VpcCidrBlock: Type: String Default: 192.168.0.0/16 VSwitchCidrBlock: Type: String Default: 192.168.0.0/24 Metadata: ALIYUN::ROS::Interface: ParameterGroups: - Parameters: - ZoneId Label: default: Basic Settings - Parameters: - VpcCidrBlock - VSwitchCidrBlock Label: default: Resource SettingsAo criar uma stack, os parâmetros aparecem agrupados no console.