AzCopy: tareas de mantenimiento en Microsoft Azure Storage

Una vez que estamos conviviendo con el mundo cloud, es posible que necesitemos realizar algunas operaciones con las cuentas de Microsoft Azure Storage. Puede ocurrir que necesitemos mover o copiar blobs de un contenedor a otro, a una cuenta diferente e incluso a un datacenter distinto.
Una herramienta que no debemos perder de vista es AzCopy, la cual nos permite llevar a cabo estas tareas de una forma sencilla, e incluso automatizable. En este post voy a mostrar diferentes escenarios con los que nos podemos encontrar.

Antes de comenzar a utilizar la herramienta es importante conocer su ubicación: C:Program Files (x86)Microsoft SDKsWindows AzureAzCopy. En mi caso, he añadido la misma junto con el resto de paths en las variables del sistema, para que sea más cómodo su uso.

Descargar los elementos de un contenedor en local

AzCopy https://html5stuff.blob.core.windows.net/videos C:html5stuff-videos /sourceKey:storage_key /S

El comando anterior utiliza el siguiente patrón: AzCopy origen destino /sourceKey:origen_storage_key /S. Es importante saber que el directorio debe de existir, ya que la herramienta no lo creará por nosotros. El parámetro S nos indica que queremos utilizar el modo recursivo, en el caso de exitir directorios virtuales. En el ejemplo mostrado, el resultado sería el siguiente:

AzCopy local

Copiar los elementos a otro contenedor

AzCopy https://html5stuff.blob.core.windows.net/videos https://html5stuff.blob.core.windows.net/videoshtml5 /sourceKey:html5stuff_storage_key /destKey:html5stuff_storage_key /S

AzCopy another container

Como podemos ver en la imagen anterior, la copia respeta los directorios virtuales y los nombres de los blobs. Si bien la cuenta de origen y de destino son las mismas, es necesario indicar la clave de la cuenta tanto en sourcekey como en destkey.

Copiar los elementos a otra cuenta de storage

AzCopy https://html5stuff.blob.core.windows.net/videos https://azcopygiswe.blob.core.windows.net/videos /sourceKey:html5stuff_storage_key /destKey:azcopygiswe_storage_key /S

Mover un contenedor de una cuenta de Storage a otro datacenter

AzCopy https://azcopygiswe.blob.core.windows.net/videos https://azcopygisne.blob.core.windows.net/videos /sourceKey:azcopygiswe_storage_key /destKey:azcopygisne_storage_key /S /MOV

La forma de operar con cuentas que no se encuentran en la misma ubicación geográfica es exactamente la misma que en los escenarios anteriores. En este ejemplo se ha utilizado el parámetro /MOV, que se utiliza para indicar que los elementos del origen han de ser eliminados una vez que han sido copiados en destino.

Utilizando un archivo externo

Otra opción interesante es la de utilizar un archivo de texto para indicar el origen y el destino

#Source container
https://html5stuff.blob.core.windows.net/videos/
#Destination container
https://azcopygiswe.blob.core.windows.net/videos/
#source key
/sourceKey:html5stuff_source_key
#destination key
/destKey:azcopygiswe_source_key
#optional parameters
/S
AzCopy /@:H:AzCopy.txt

Modo resumen

A través del comando /Z: podemos establecer el modo resumen, en el caso de que la operación se pueda ver interrumpida.

AzCopy /@:H:AzCopy.txt /Z:H:myjournalfile.log

Una vez que haya finalizado, el archivo de log se eliminará de manera automática.

Espero que sea de utilidad.

¡Saludos!