Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>IaC Multi-PlatformNew to Visual Studio Code? Get it now.
IaC Multi-Platform

IaC Multi-Platform

Claudio Melo

| (0) | Free
Converta diagramas (PlantUML, Structurizr) em IaC (Bicep, AWS CDK, Terraform) com preview, deploy e destroy via VS Code ou CLI
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

iac-multi-plataforma

Extensão VS Code para converter diagramas de deployment em artefatos IaC e automatizar deploys por ambiente.

Objetivo

Fornecer um fluxo simples para ir de arquitetura visual → código IaC → deploy controlado (dev/staging/prod), com suporte atual a Azure (Bicep), AWS (CDK) e Terraform.

Benefícios

  • Acelera criação de infraestrutura a partir de diagramas.
  • Garante padrões e defaults seguros.
  • Facilita revisão humana antes do deploy com preview e diff.
  • Suporta fluxos de CI/CD e publicação da extensão.

Estado atual

  • Parsers PlantUML e Structurizr DSL com extração para o modelo intermediário mi/v1.
  • Geradores Bicep, AWS CDK e Terraform para os modelos suportados no projeto.
  • Fluxo de deploy e destroy por ambiente, com preview e validação.
  • Preview em webview com edição do artefato gerado.
  • Fixtures reais em examples/ e testes automatizados cobrindo o fluxo principal.

Pré-requisitos para deploy

  • Azure CLI (az) para deploy Azure.
  • AWS CLI e CDK local para deploy AWS.
  • Terraform local para deploy Terraform.

Para apenas gerar e revisar IaC, a extensão pode ser usada sem executar deploy.

Instalação da extensão

Quando publicada no Marketplace, instale pelo VS Code:

  1. Abra a aba Extensions.
  2. Pesquise por IaC Multi-Platform.
  3. Clique em Install.

Depois de instalar, abra um workspace com arquivos .puml, .structurizr, .dsl, .mi.yaml ou .mi.json e use o menu de contexto ou a Command Palette.

Uso no VS Code

Gerar IaC

Command Palette (Cmd+Shift+P) → IaC: Generate IaC

A extensão:

  • lê o diagrama ou MI
  • valida o modelo intermediário
  • gera Bicep, AWS CDK ou Terraform
  • salva o artefato no workspace
  • abre o preview para revisão

Preview de arquivo gerado

Clique com botão direito em um arquivo .bicep, .tf ou .ts gerado e selecione:

IaC Multi-Platform → IaC: Preview This File

Deploy

Command Palette (Cmd+Shift+P) → IaC: Deploy to Dev

Destroy

Command Palette (Cmd+Shift+P) → IaC: Destroy Infrastructure

O destroy exige confirmação explícita antes de remover recursos.

Fluxo de uso

1. Criar diagrama PlantUML

Crie um arquivo diagram.puml no seu workspace:

@startuml
project: web-app
environment: dev
cloud Azure
@enduml

2. Gerar IaC

Palette → IaC: Generate IaC

  • Extrai PlantUML → Modelo Intermediário v1
  • Valida schema
  • Gera template Bicep ou AWS CDK, conforme o provider detectado
  • Salva o arquivo gerado no workspace

3. Deploy

Palette → IaC: Deploy to Dev

  • Preview da execução
  • Executa az deployment group create para Azure
  • Para AWS, usa o fluxo CDK correspondente
  • Logs em tempo real

4. Destroy

Palette → IaC: Destroy Infrastructure

  • Requer confirmação explícita
  • Executa cleanup para o provider atual

Arquitetura

Camadas

  • Parser (src/parsers/): PlantUML / Structurizr / MI YAML / MI JSON → JSON
  • Modelo (src/types/, validação em src/core/): Intermediário versionado
  • Generator (src/generators/): MI → Bicep/CDK/Terraform
  • Deploy (src/deploy/): Executar az, AWS CDK ou Terraform

Schema do Modelo Intermediário (v1)

Ver templates/mi-schema.json para documentação completa.

{
  "schema": "mi/v1",
  "project": "web-app",
  "environment": "dev",
  "resources": [
    {
      "type": "ResourceGroup",
      "name": "rg-default",
      "provider": "az",
      "properties": { "location": "eastus" }
    }
  ]
}

CLI

Para instalar a CLI globalmente pelo npm:

npm install -g iac-multi-plataforma

Depois disso, use em qualquer pasta:

iac-multi-plataforma generate --input .\diagrama.puml --platform auto --emit-mi

Exemplos rápidos com a CLI instalada:

iac-multi-plataforma generate --input ./diagram.puml --platform auto --output-dir ./generated --emit-mi
iac-multi-plataforma preview --input ./diagram.puml --platform azure
iac-multi-plataforma deploy --input ./diagram.puml --platform azure --subscription <subscription-id>
iac-multi-plataforma destroy --input ./diagram.puml --platform azure --subscription <subscription-id>

Licença

MIT

Contato

Abra issues no repositório ou use GitHub Discussions para perguntas e suporte.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft