PowerShell para Azure: automatizar recursos com o módulo Az
João Barros
04 de October de 2024
1 min de leitura
O módulo Az PowerShell é a interface de linha de comando mais completa para a Azure, com mais de 10.000 cmdlets cobrindo todos os serviços. Ideal para automação, provisionamento em massa e tarefas de administração recorrentes.
Instalação e autenticação
Install-Module -Name Az -Scope CurrentUser -Force
# Login interactivo (abre browser para MFA)
Connect-AzAccount -TenantId "seu-tenant-id"
# Login com Service Principal (para automação/CI-CD)
$secPwd = ConvertTo-SecureString $env:SP_SECRET -AsPlainText -Force
$cred = New-Object PSCredential($env:SP_CLIENT_ID, $secPwd)
Connect-AzAccount -ServicePrincipal -Credential $cred -TenantId $env:TENANT_ID
# Seleccionar subscrição
Set-AzContext -SubscriptionId "subscription-id"
Criar e gerir recursos
# Criar resource group
New-AzResourceGroup -Name "rg-analytics-prod" -Location "westeurope"
# Criar storage account
New-AzStorageAccount `
-ResourceGroupName "rg-analytics-prod" `
-Name "stadatalakeprod" `
-Location "westeurope" `
-SkuName "Standard_LRS" `
-Kind "StorageV2" `
-EnableHierarchicalNamespace $true # ADLS Gen2
# Listar VMs num resource group
Get-AzVM -ResourceGroupName "rg-analytics-prod" | Select-Object Name, Location, PowerState
Script de manutenção — paragem nocturna de VMs de dev
# Executar via Azure Automation Runbook ou task agendada
$rg = "rg-dev"
$tags = @{ Ambiente = "Dev"; AutoStop = "true" }
Get-AzVM -ResourceGroupName $rg | Where-Object { $_.Tags["AutoStop"] -eq "true" } |
ForEach-Object {
Write-Output "A parar VM: $($_.Name)"
Stop-AzVM -ResourceGroupName $rg -Name $_.Name -Force -AsJob
}
Get-Job | Wait-Job | Receive-Job
Export de inventário para Excel
# Listar todos os recursos Azure e exportar
$recursos = Get-AzResource | Select-Object Name, ResourceType, ResourceGroupName, Location
$recursos | Export-Csv -Path "inventario_azure.csv" -NoTypeInformation -Encoding UTF8
Conclusão
O módulo Az é indispensável para administradores e engenheiros Azure. Automatize tarefas repetitivas (paragem de VMs, inventários, criação de recursos), integre em Azure Automation Runbooks para execução agendada e trate o PowerShell como IaC leve para operações do dia a dia.