Visão geral
Gerenciar recursos não utilizados ou órfãos no Azure pode afetar significativamente os gastos com a nuvem e a eficiência operacional. A ferramenta Azure Resource Cleanup é um script abrangente do PowerShell projetado para ajudar os administradores de nuvem a identificar e excluir recursos do Azure não utilizados ou órfãos, garantindo a otimização de custos e o melhor gerenciamento de recursos.
Este script opera por padrão em um modo de relatório seguro e não destrutivo, permitindo que os administradores revisem os recursos órfãos antes de iniciar as operações de limpeza.
Você pode acessar o projeto no GitHub: AzureOpsScripts – Resource Cleanup.
Índice
Principais recursos
O script Azure Resource Cleanup oferece as seguintes funcionalidades:
- NICs órfãs: identifica interfaces de rede não anexadas a nenhuma VM ou endpoint.
- Snapshots de disco do Azure antigos: detecta snapshots que excedem o período de retenção.
- Snapshots de blob de conta de armazenamento: sinaliza snapshots de blob mais antigos que o período de retenção definido.
- Snapshots de compartilhamento de arquivos: identifica snapshots de compartilhamento de arquivos além dos limites de retenção.
- Discos gerenciados órfãos: encontra discos não anexados a nenhuma VM.
- IPs públicos órfãos: localiza endereços IP públicos não utilizados.
- Grupos de segurança de rede não utilizados: identifica NSGs não associados a nenhum recurso.
- Conjuntos de disponibilidade não utilizados: detecta conjuntos de disponibilidade que não estão mais em uso.
- Grupos de recursos vazios: sinaliza grupos de recursos sem recursos ativos.
- Redes virtuais não utilizadas: destaca redes virtuais potencialmente não utilizadas (apenas destaca; o script não as excluirá).
- Endereços IP reservados, mas não utilizados: identifica endereços IP reservados, mas não atribuídos ativamente.
Requisitos
Para usar o script Azure Resource Cleanup, verifique se os seguintes pré-requisitos são atendidos:
- Versão do PowerShell: 5.1 ou superior
- Módulo Az do PowerShell: instale usando o comando:
Install-Module -Name Az - Permissões da conta do Azure: verifique as permissões adequadas para exibir e excluir recursos.
Uso
Modo de relatório
Execute o script no modo de relatório para gerar um relatório detalhado dos recursos órfãos:
.\Azure-Resource-Cleanup.ps1

Modo de limpeza
Para excluir os recursos identificados, use o modo de limpeza:
.\Azure-Resource-Cleanup.ps1 -DeleteResources
Personalizar a retenção de snapshots
Especifique os dias de retenção de snapshots para identificar snapshots mais antigos para limpeza:
.\Azure-Resource-Cleanup.ps1 -SnapshotRetentionDays 7 -DeleteResources

Excluir verificações de snapshots de armazenamento
Ignore as verificações de snapshots de blob e de compartilhamento de arquivos de contas de armazenamento em ambientes grandes:
.\Azure-Resource-Cleanup.ps1 -IncludeStorageSnapshots:$false
Observações importantes
Executar em redes virtuais permitidas
Verifique se o script é executado em uma rede virtual permitida. Devido a restrições de rede, algumas contas de armazenamento podem proibir o acesso a contêineres ou snapshots de arquivos. Se a conta de armazenamento não oferecer suporte a operações de exclusão, você poderá encontrar erros ao tentar limpar esses recursos.
Testar em ambientes de desenvolvimento/teste
É altamente recomendável testar o script em ambientes de desenvolvimento ou de teste antes de usá-lo em produção. Isso garante que você possa revisar o comportamento do script, identificar possíveis problemas e verificar os recursos sinalizados para limpeza.
Usar o modo somente relatório
Para ambientes de produção, sempre comece executando o script no modo somente relatório (sem o parâmetro -DeleteResources). Isso fornece um relatório detalhado dos recursos órfãos, permitindo revisar e validar os itens sinalizados antes de iniciar as operações de limpeza.
Parâmetros
O script oferece suporte a vários parâmetros personalizáveis:
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
SnapshotRetentionDays | Integer | 3 | Período de retenção de snapshots (em dias). Snapshots mais antigos serão sinalizados para limpeza. |
DeleteResources | Switch | $false | Habilita a exclusão dos recursos identificados. Por padrão, o script apenas gera relatórios. |
IncludeStorageSnapshots | Switch | $true | Inclui verificações de snapshots de blob e de compartilhamento de arquivos. Defina como $false para excluir essas verificações. |
Saída do relatório
O script gera relatórios detalhados em uma pasta com carimbo de data/hora, incluindo:
orphaned_nics.csvold_managed_snapshots.csvold_blob_snapshots.csvold_fileshare_snapshots.csvorphaned_disks.csvorphaned_public_ips.csvorphaned_nsgs.csvunused_availability_sets.csvempty_resource_groups.csvunused_vnets.csvsubnet_ip_usage.csvcleanup_log.txt(registro abrangente das ações realizadas)
Práticas recomendadas
- Comece com o modo de relatório: execute sempre o script sem o parâmetro
-DeleteResourcespara revisar os recursos sinalizados. - Revise os relatórios: analise com cuidado os arquivos CSV gerados antes de iniciar as operações de limpeza.
- Defina períodos de retenção: personalize os períodos de retenção de snapshots com base nas políticas organizacionais.
- Teste em ambientes que não sejam de produção: execute o script em ambientes de desenvolvimento/teste para validar seu comportamento antes de usá-lo em produção.
- Execute em redes virtuais permitidas: verifique se o script é executado em vNets permitidas para evitar erros relacionados à rede na limpeza de contas de armazenamento.
Exemplo de fluxo de trabalho
Siga este fluxo de trabalho para limpar os recursos do Azure com segurança:
- Execute o script no modo de relatório:
.\Azure-Resource-Cleanup.ps1 - Revise os relatórios gerados para ver os recursos sinalizados.
- Prossiga com confiança com o modo de limpeza:
.\Azure-Resource-Cleanup.ps1 -DeleteResources