Microsoft Azure: eliminación de instantáneas con PowerShell Script

La instantánea es una especie de copia de solo lectura del disco de máquina virtual de Azure existente del disco del sistema operativo o del disco de datos. Esta instantánea se utiliza como copia de seguridad de la VM en caso de que no se pueda recuperar la copia de seguridad de una VM en caso de fallas.

En este artículo, obtendrá información sobre la eliminación de todas las instantáneas dentro de la suscripción de todos los grupos de recursos a la vez mediante los comandos de Azure PowerShell en forma de fragmentos. Antes de implementar el proceso, veamos qué es una instantánea.

¿Por qué necesitamos eliminar la instantánea de Azure?

En caso de recursos no deseados, debemos eliminar las instantáneas masivas, ya que el almacenamiento costará recursos. Por lo tanto, eliminar instantáneas no deseadas en Azure ahorrará muchos costos ya que es rentable.

El siguiente cmdlet Remove-AzSnapshot quita una instantánea en Azure. 

Sintaxis:

$Name = "Add_Snapshot_Name_here"
$ResourceGroupName = "Add_Resource_Group_Name_here"

Remove-AzSnapshot -ResourceGroupName $ResourceGroupName -SnapshotName $Name -Force;

Aquí, $Name representa el nombre de la instantánea de Azure y $ResourceGroupName representa el grupo de recursos en el que se encuentra la instantánea.

Nota: Agregue bloqueos de recursos a las instantáneas para omitir las eliminaciones.

Implementación:

Paso 1: Inicie sesión en Azure Portal

Paso 2: acceda a Azure Cloud Shell y seleccione la consola de PowerShell

Paso 3: Cree un nuevo archivo usando el comando táctil 

touch remove-snapshots.ps1

use el siguiente comando para abrir el archivo en modo editor

code ./remove-snapshots.ps1

luego, pegue el siguiente código del Fragmento de PowerShell en ese archivo y guárdelo.

$SubscriptionName = "_add_subscription_name"

Set-AzureRmContext -SubscriptionName "$SubscriptionName" | Out-Null

$RGs = Get-AzureRMResourceGroup

foreach ($RG in $RGs) {

    $Snapshots = Get-AzSnapshot -ResourceGroupName $RG.ResourceGroupName

    foreach ($Snapshot in $Snapshots) {

        $Name = $Snapshot.Name
        $ResourceGroupName = $Snapshot.ResourceGroupName
        
        Remove-AzSnapshot -ResourceGroupName $ResourceGroupName -SnapshotName $Name -Force;
        Write-Output "Deleted $Name - $ResourceGroupName"
    }
}

Referir imagen:

Paso 4: para ejecutar el script de PowerShell anterior, use el siguiente comando

./remove-snapshots.ps1 

La salida se ve como la siguiente a continuación:

Referencia:

Publicación traducida automáticamente

Artículo escrito por dey0btpch57lmvgz5mqhpaiqn337p09fd8yq1lw4 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *