Pular para o conteúdo principal

Suporte a Recursos ROS

O InfraGuard suporta uma ampla gama de recursos de modelos ROS (Resource Orchestration Service) para análise estática e validação do seu código de infraestrutura.

Funções

O InfraGuard suporta as seguintes funções ROS:

Funções de String

Funções de Codificação

Funções de Lista

Funções de Mapa

Funções Matemáticas

Funções Condicionais

Funções Utilitárias

Condições

O InfraGuard suporta completamente o recurso Condições ROS, incluindo:

  • Definição de Condição - Definir condições na seção Conditions
  • Funções de Condição - Usar Fn::Equals, Fn::And, Fn::Or, Fn::Not, Fn::If em condições
  • Referências de Condição - Referenciar condições em recursos e saídas
  • Resolução de Dependências - Resolve automaticamente dependências de condições

Sintaxe YAML Curta

O InfraGuard suporta a sintaxe YAML curta (notação de tag) para funções ROS:

  • !Ref - Forma curta de Ref
  • !GetAtt - Forma curta de Fn::GetAtt
  • Todas as outras funções Fn::* podem ser escritas como !FunctionName

O analisador YAML converte automaticamente essas formas curtas para sua representação de mapa padrão durante o carregamento do modelo.

Recursos Não Suportados

O InfraGuard foca em análise estática e atualmente não suporta os seguintes recursos no modo estático:

Funções de Tempo de Execução

  • Fn::GetAtt - Requer criação real de recursos para recuperar atributos
  • Fn::GetAZs - Requer consulta em tempo de execução ao provedor de nuvem
  • Fn::GetStackOutput - Requer acesso a saídas de outras pilhas

Seções de Modelo

  • Locals - Definições de variáveis locais
  • Transform - Transformações e macros de modelo
  • Rules - Regras de validação de modelo
  • Mappings - Mapeamentos de valores estáticos (não analisados para violações de políticas)

Referências Especiais

  • Parâmetros pseudo (ex.: ALIYUN::StackId, ALIYUN::Region, etc.) - Parâmetros fornecidos pelo sistema

Esses recursos serão preservados como estão na saída da análise sem avaliação ou validação ao usar o modo estático.

Dica: Para modelos que usam recursos não suportados por análise estática (como Fn::GetAtt, Fn::GetAZs, etc.), recomendamos usar --mode preview para aproveitar a API ROS PreviewStack para análise mais precisa. O modo preview avalia modelos com contexto real do provedor de nuvem, permitindo suporte para funções de tempo de execução e outros recursos dinâmicos.

Recursos Relacionados