Todos os produtos
Search
Central de documentação

Resource Orchestration Service:Desenvolver um módulo

Última atualização: Jun 27, 2026

Um módulo é um arquivo de texto codificado em UTF-8 no formato JSON ou YAML, semelhante a um modelo. Cada módulo possui convenção de nomenclatura, limites e estrutura próprios.

Convenção de nomenclatura

Os módulos seguem uma convenção de nomenclatura composta por quatro partes: MODULE::Organization::Service::Usecase.

  • MODULE: valor fixo.

  • Organization: nome da sua organização.

    • O nome deve ter pelo menos dois caracteres e pode conter letras e dígitos.

    • O nome não pode conter as seguintes strings em minúsculas: alicloud, alibaba e aliyun.

    • O nome não pode começar com a seguinte string em minúsculas: acs.

    • O nome não pode ser definido como uma das seguintes strings em minúsculas: ros, dev, test ou debug.

  • Service: nome do serviço.

    O nome deve ter pelo menos dois caracteres e pode conter letras e dígitos.

  • Usecase: nome do recurso.

    O nome deve ter pelo menos dois caracteres e pode conter letras e dígitos.

Nota

Se você definir Organization como SHARE ao criar um módulo, defina Service como o ID da conta Alibaba Cloud atual. Por exemplo, especifique MODULE::SHARE::123456789::Usecase nesse cenário.

Um módulo personalizado com Organization definido como SHARE é chamado de módulo compartilhado. Outros usuários podem visualizar e usar seu módulo compartilhado, mas não podem modificá-lo nem excluí-lo.

Limites

  • Não especifique Transform e Workspace em um módulo.

  • Defina apenas Rules vazias em um módulo.

  • Módulos personalizados aceitam aninhamento de até três níveis. Se você usar um módulo público com módulos personalizados, os módulos personalizados ainda estarão limitados a três níveis de profundidade.

    A figura a seguir mostra módulos públicos aninhados em quatro níveis. ModuleA está no Nível 1, ModuleB no Nível 2, ModuleC no Nível 3 e ModuleD no Nível 4.

    image.png

Estrutura do módulo

ROSTemplateFormatVersion: '2015-09-01'
Description: The description of the module. The Description section provides information such as the scenarios, architecture, and method to use the module. 
Metadata: 
# The metadata of the module. The Metadata section provides information such as layouts for visualizations. 
Parameters: 
# The parameters of the module. When you use a module, you can specify parameter values from the template or module that contains the module. 
Mappings: 
# The mappings of the module, which are in a nested structure. 
Conditions: 
# The conditions of the module, which specify whether the system can create resources. 
Resources: 
# The details of resources or child modules that are contained in the module. The details include properties and associations. 
Outputs: 
# The outputs of the module. The outputs can be used by the template or module that contains the module.

(Obrigatório) ROSTemplateFormatVersion

Esta seção segue os mesmos requisitos da seção correspondente em modelos. Para mais informações, consulte ROSTemplateFormatVersion (Obrigatório).

(Opcional) Description

Esta seção segue os mesmos requisitos da seção correspondente em modelos. Para mais informações, consulte Description (Opcional).

Recomendamos especificar Description, pois oferece suporte a vários idiomas. A descrição ajuda os usuários a entender como usar o módulo. A aba Module Content na página de detalhes do módulo exibe essa descrição. O exemplo a seguir mostra como especificar vários idiomas em Description:

Description:
  en: |-
    This is a demo.

(Opcional) Metadata

Esta seção segue os mesmos requisitos da seção correspondente em modelos. Para mais informações, consulte Metadata (Opcional).

Durante as operações de pilha, o ROS ignora a seção Metadata do módulo ao processar e gerar modelos.

Recomendamos adicionar Metadata ao módulo. A seção Metadata é copiada integralmente para o modelo de exemplo na aba Sample Template da página de detalhes do módulo, o que melhora a exibição do modelo.

(Opcional) Parameters

Esta seção segue os mesmos requisitos da seção correspondente em modelos. Para mais informações, consulte Parameters (Opcional).

Os parâmetros do módulo não suportam imposição de restrições, incluindo Type, AllowedValues, AllowedPattern, MaxLength, MinLength, MaxValue e MinValue.

Se um parâmetro do módulo estiver vazio e tiver um valor padrão definido por Default, o ROS usará esse valor padrão durante as operações de pilha ao processar e gerar um modelo.

Limite: O nome do parâmetro não pode conter pontos (.) ou dois-pontos (:).

Configurações recomendadas:

  • Para garantir o uso adequado do módulo, configure as propriedades dos parâmetros do módulo de forma tão abrangente quanto as propriedades dos parâmetros de modelo.

    • A aba Properties na página de detalhes do módulo exibe todas as propriedades em correspondência direta com os parâmetros do módulo. Os dados nas colunas Type, Required, Description e Constraint de cada propriedade são gerados com base nas propriedades dos parâmetros configuradas no conteúdo do módulo.

    • A aba Sample Template na página de detalhes do módulo exibe um modelo de exemplo. A seção Parameters nesse modelo é gerada a partir das propriedades dos parâmetros configuradas no módulo, garantindo definições válidas de parâmetros e melhorando a exibição do modelo.

  • Configure propriedades que aceitem definições multilíngues para parâmetros do módulo, como as propriedades Description e Label.

(Opcional) Mappings

Esta seção segue os mesmos requisitos da seção correspondente em modelos. Para mais informações, consulte Mappings (Opcional).

Limite: Os nomes totalmente qualificados dos mapeamentos não podem ser duplicados. Para mais informações sobre nomes totalmente qualificados, consulte Referenciar condições em um módulo.

(Opcional) Conditions

Esta seção segue os mesmos requisitos da seção correspondente em modelos. Para mais informações, consulte Conditions (Opcional).

Limites:

  • O nome da condição não pode conter e comercial (&).

  • Os nomes totalmente qualificados das condições não podem ser duplicados. Para mais informações sobre nomes totalmente qualificados, consulte Referenciar condições em um módulo.

(Opcional) Resources

Esta seção segue os mesmos requisitos da seção correspondente em modelos. Para mais informações, consulte Resources (Opcional).

Defina DependsOn de um recurso como asterisco (*). Durante as operações de pilha, esse recurso dependerá de todos os outros recursos cujo DependsOn não esteja definido como asterisco (*).

Limites:

  • O nome lógico de um recurso não pode conter pontos (.).

  • Não use os tipos de recurso ALIYUN::ROS::Stack, ALIYUN::ROS::StackGroup e ALIYUN::ROS::StackInstances na seção Resources.

  • Não use a função Fn::GetStackOutput na seção Resources.

  • Não especifique Metadata e Count para módulos filhos.

  • Especifique Version para módulos filhos.

  • Os nomes lógicos totalmente qualificados de recursos ou módulos não podem ser duplicados. Para mais informações sobre nomes lógicos totalmente qualificados, consulte Referenciar recursos em um módulo.

  • Use apenas módulos públicos ou outros módulos compartilhados em um módulo compartilhado.

(Opcional) Outputs

Esta seção segue os mesmos requisitos da seção correspondente em modelos. Para mais informações, consulte Outputs (Opcional).

Limites:

  • O nome da saída não pode conter pontos (.).

  • Não use a função Fn::GetStackOutput na seção Outputs.

Configuração recomendada: Especifique Description para cada saída.

  • A aba Return Values na página de detalhes do módulo exibe todos os valores de retorno em correspondência direta com as saídas configuradas no conteúdo do módulo. Os dados na coluna Description dos valores de retorno são gerados com base no Description especificado para as saídas no conteúdo do módulo.

  • A aba Sample Template na página de detalhes do módulo exibe um modelo de exemplo. A seção Outputs nesse modelo é gerada a partir das saídas configuradas no módulo, melhorando a exibição do modelo.