Gestión de Azure Storage con Azure CLI
Siguiendo un poco la estela de este otro post, me gustaría hablar del tratamiento que ofrece Azure CLI respecto al almacenamiento o Storage.
Con el conjunto de comandos que Azure CLI destina a este apartado, se podrá llevar a cabo una gestión de los diferentes elementos de almacenamiento, los cuales serían los siguientes:
- Blobs: datos no estructurados, por ejemplo archivos multimedia.
- Colas: almacenamiento fiable de mensajes.
- Tablas: datos NoSQL estructurados.
- Ficheros: compartición de archivos y datos comunes, basado en el protocolo SMB.
Al igual que cuando se introdujo el Azure CLI en el anterior post, la ayuda continua todos los comandos relativos al almacenamiento. Para mostrar dicha ayuda especificando los comandos relativos al almacenamiento, bastaría con escribir:
1 |
azure help storage |
Puesto que es bastante extensa, puede ser conveniente refinar más especificando con más detalle el asunto. Así, si por ejemplo se quiere mostrar la ayuda solo referente al elemento blob, entonces:
1 |
azure help storage blob |
Hay dos variables importantes que hay que establecer para poder acceder a los elementos: AZURE_STORAGE_ACCOUNT y AZURE_STORAGE_ACCESS_KEY. Esta asignación se puede realizar directamente en un script o en el bash:
1 2 |
export AZURE_STORAGE_ACCOUNT = <storage_account_name> export AZURE_STORAGE_ACCESS_KEY = <storage_account_key> |
La clave de la cuenta (storage access key) se puede descargar desde el portal de Azure. Una vez conectados, para ver las cuentas de almacenamiento de la subscripción seleccionada basta con indicar:
1 |
azure storage account list |
con lo que mostrará todas las cuentas de almacenamiento con que cuenta esa subscripción.
Para no ser demasiado exhaustivo, y puesto que la ayuda es autodescriptiva, pondré como ejemplo a los blobs y algunas de sus operaciones.
Los blobs se almacenan en contenedores. La instrucción que crea un contenedor es la siguiente:
1 |
azure storage container create <container_name> |
Si se quieren ver todos los blobs que hay en un contenedor determinado, la consulta sería la siguiente:
1 |
azure storage blob list <container_name> |
Por otro lado, para descargar un blob o subirlo, las órdenes respectivas serían la siguientes:
1 2 |
azure storage blob download <container_name> <blob_name> <destination_folder> azure storage blob upload <file_to_upload> <container_name> <blob_name> |
O si se quieren copiar blobs de diferentes cuentas de almacenamiento de forma asíncrona:
1 2 3 |
azure storage container create mycontainer2 -a <account_name2> -k <account_key2> -p Blob azure storage blob upload <file_to_upload> mycontainer2 myBlockBlob2 -a <account_name2> -k <account_key2> azure storage blob copy start 'https://<account_name2>.blob.core.windows.net/mycontainer2/myBlockBlob2' mycontainer |
y para comprobar el estado de la copia:
1 |
azure storage blob copy show |
Finalmente, para eliminar un blob:
1 |
azure storage blob delete <container_name> <blob_name> |
Con respecto a los comandos relativos a los ficheros, tablas y colas, es posible realizar las típicas operaciones sobre estos tipos de elementos (crear, eliminar, mostrar). En la ayuda de Azure CLI se muestra con detalle dichas operaciones, aparte de otras como la gestión de la políticas de acceso de ficheros, tablas y colas, por lo que no es necesario repetirlas.
Y esto es todo por ahora. Espero haber contribuido un poco al conocimiento de esta versátil herramienta.