import-infrastructure-as-code
Faz seu agente criar código de infraestrutura a partir de recursos Azure existentes. Ele mapeia dependências e garante que a configuração seja consistente.
O que ela faz
Esta ferramenta transforma sua infraestrutura Azure existente em código Terraform. Ela descobre seus recursos na nuvem e os recria usando módulos padrão (AVM), facilitando o gerenciamento e a replicação.
Quando usar
- ✓Quando você quer recriar uma infraestrutura Azure que já existe.
- ✓Para transformar recursos Azure em código que pode ser versionado e reutilizado.
- ✓Ao migrar ou fazer backup de configurações de infraestrutura.
Exemplo do que pedir para a IA
“Transforme meu grupo de recursos 'meu-app' na assinatura '12345678-abcd-1234-abcd-1234567890ab' em código Terraform usando módulos AVM.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta usa a linha de comando Azure (Azure CLI) para 'olhar' seus recursos existentes. Depois, ela procura por módulos padrão (Azure Verified Modules - AVM) que correspondem a esses recursos e gera o código Terraform.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill import-infrastructure-as-codeOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/import-infrastructure-as-code/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Importar Infraestrutura como Código (Azure -> Terraform com AVM)
Converta a infraestrutura Azure existente em código Terraform de fácil manutenção usando dados de descoberta e Módulos Verificados do Azure.
Quando Usar Esta Habilidade
Use esta habilidade quando o usuário pedir para:
- Importar recursos Azure existentes para o Terraform
- Gerar IaC a partir de ambientes Azure ativos
- Lidar com qualquer tipo de recurso Azure suportado pelo AVM (e documentar fallbacks justificados que não são AVM)
- Recriar infraestrutura a partir de uma assinatura ou grupo de recursos
- Mapear dependências entre recursos Azure descobertos
- Usar módulos AVM em vez de recursos escritos manualmente
azurerm_*
Pré-requisitos
- Azure CLI instalado e autenticado (
az login) - Acesso à assinatura ou grupo de recursos de destino
- Terraform CLI instalado
- Acesso à rede para o Terraform Registry e fontes de índice AVM
Entradas
| Parâmetro | Obrigatório | Padrão | Descrição |
|---|---|---|---|
subscription-id |
Não | Contexto ativo da CLI | Assinatura Azure usada para descoberta no escopo da assinatura e configuração de contexto |
resource-group-name |
Não | Nenhum | Grupo de recursos Azure usado para descoberta no escopo do grupo de recursos |
resource-id |
Não | Nenhum | Um ou mais IDs de recursos ARM do Azure usados para descoberta no escopo de recursos específicos |
Pelo menos um de subscription-id, resource-group-name ou resource-id é necessário.
Fluxos de Trabalho Passo a Passo
1) Coletar Escopo Necessário (Obrigatório)
Solicite um destes escopos antes de executar os comandos de descoberta:
- Escopo de assinatura:
<subscription-id> - Escopo de grupo de recursos:
<resource-group-name> - Escopo de recursos específicos: um ou mais valores de
<resource-id>
Regras de tratamento de escopo:
- Trate IDs de recursos ARM do Azure (por exemplo,
/subscriptions/.../providers/...) como identificadores de recursos na nuvem, não como caminhos de sistema de arquivos locais. - Use IDs de recursos apenas com argumentos
--idsda Azure CLI (por exemplo,az resource show --ids <resource-id>). - Nunca passe IDs de recursos para comandos de leitura de arquivos (
cat,ls,read_file, pesquisas globais), a menos que o usuário diga explicitamente que são caminhos de arquivo locais. - Se o usuário já forneceu um escopo válido, não solicite entradas de escopo adicionais, a menos que sejam necessárias por um comando com falha.
- Não faça perguntas de acompanhamento que possam ser respondidas com os valores de escopo já fornecidos.
Se o escopo estiver faltando, solicite-o explicitamente e pare.
2) Autenticar e Definir Contexto
Execute apenas os comandos necessários para o escopo selecionado.
Para escopo de assinatura:
az login
az account set --subscription <subscription-id>
az account show --query "{subscriptionId:id, name:name, tenantId:tenantId}" -o json
Saída esperada: Objeto JSON com subscriptionId, name e tenantId.
Para escopo de grupo de recursos ou recursos específicos, az login ainda é necessário, mas az account set é opcional se o contexto ativo já estiver correto.
Ao usar o escopo de recursos específicos, prefira comandos diretos baseados em --ids primeiro e evite prompts de descoberta extras para assinatura ou grupo de recursos, a menos que necessário para um comando concreto.
3) Executar Comandos de Descoberta
Descubra recursos usando os escopos selecionados. Certifique-se de buscar todas as informações necessárias para uma geração precisa do Terraform.
# Subscription scope
az resource list --subscription <subscription-id> -o json
# Resource group scope
az resource list --resource-group <resource-group-name> -o json
# Specific resource scope
az resource show --ids <resource-id-1> <resource-id-2> ... -o json
Saída esperada: Objeto JSON ou array contendo metadados de recursos do Azure (id, type, name, location, tags, properties).
4) Resolver Dependências Antes da Geração de Código
Analise o JSON exportado e mapeie:
- Relacionamentos pai-filho (por exemplo: NIC -> Subnet -> VNet)
- Referências cruzadas em
properties - Ordenação para criação do Terraform
IMPORTANTE: Gere a seguinte documentação e salve-a em uma pasta docs na raiz do projeto.
exported-resources.jsoncom todos os recursos descobertos e seus metadados, incluindo dependências e referências.- Arquivo
EXPORTED-ARCHITECTURE.MDcom uma visão geral da arquitetura legível por humanos com base nos recursos descobertos e seus relacionamentos.
5) Selecionar Módulos Verificados do Azure (Obrigatório)
Use a versão AVM mais recente para cada tipo de recurso.
Terraform Registry
- Pesquise por "avm" + nome do recurso
- Filtre por tag "Partner" para encontrar módulos AVM oficiais
- Exemplo: Pesquise "avm storage account" → filtre por Partner
Índice Oficial AVM
…
Perguntas frequentes
O que são 'módulos AVM'?
São blocos de construção padronizados e testados pela Microsoft para criar infraestrutura Azure com Terraform, garantindo consistência e segurança.
Preciso ter o Terraform instalado?
Sim, você precisa ter o Terraform CLI instalado no seu computador para que a ferramenta possa gerar e usar o código.
E se um recurso Azure não tiver um módulo AVM correspondente?
A ferramenta tentará documentar a situação e pode sugerir alternativas ou indicar que o recurso precisará ser configurado manualmente.
Detalhes
Descrição original do autor
Import existing Azure resources into Terraform using Azure CLI discovery and Azure Verified Modules (AVM). Use when asked to reverse-engineer live Azure infrastructure, generate Infrastructure as Code from existing subscriptions/resource groups/resource IDs, map dependencies, derive exact import addresses from downloaded module source, prevent configuration drift, and produce AVM-based Terraform f
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5192
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
bun-runtime
Faz seu agente usar o Bun para rodar, organizar e testar código. Ajuda a escolher o Bun em vez de outras ferramentas e a migrar projetos existentes.
affaan-m/ECC
database-migrations
Ajuda seu agente a fazer mudanças seguras em bancos de dados. Ele garante que as alterações possam ser desfeitas e minimiza o tempo de inatividade.
affaan-m/ECC
deployment-patterns
Configura fluxos de implantação e CI/CD, containerização e estratégias de rollback para garantir lançamentos seguros.
affaan-m/ECC