Você está na página 1de 15

Adopcin de Microsoft Azure en Workloads de Open Source

Mdulo 1: Introduccin a Microsoft Azure

Mdulo 1: Introduccin
a Microsoft Azure
Accediendo al servicio de Almacenamiento
de Blobs de Azure con PHP
Versin: 1.0.0
Mayo de 2016

Miguel Muoz Serafn

Pgina 1 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure

CONTENIDO

INTRODUCCIN

EJERCICIO 1: CONFIGURANDO LA CUENTA DE ALMACENAMIENTO EN LA APLICACIN PHP


Tarea 1: Crear una cuenta de almacenamiento de Azure

Tarea 2: Crear la aplicacin PHP

Tarea 3: Obtener las bibliotecas de Clientes PHP para Azure

Tarea 4: Configurar la aplicacin para acceder al servicio Blob

Tarea 5: Configurar una conexin de Almacenamiento de Azure

EJERCICIO 2: REALIZANDO TAREAS COMUNES CON BLOBS


Tarea 1: Crear un Contenedor

Tarea 2: Cargar un Blob en un Contenedor

Tarea 3: Enumerar los Blobs de un Contenedor

Tarea 4: Descargar un Blob

Tarea 5: Eliminar un Blob

Tarea 6: Eliminar un Contenedor de Blobs

RESUMEN

Pgina 2 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure

Introduccion
Este laboratorio muestra la forma de realizar algunas tareas comunes a travs del servicio BLOB de
Azure. Las tareas sern realizadas en PHP y utilizarn el SDK de Azure para PHP.

Objetivos
Al finalizar este laboratorio, los participantes sern capaces de:

Describir qu es el almacenamiento de Blobs de Azure


Crear una cuenta de Almacenamiento en Azure
Configurar una conexin de Almacenamiento de Azure en una aplicacin PHP
Crear Contenedores de Blobs desde aplicaciones PHP
Cargar Blobs en un Contenedor desde aplicaciones PHP
Enumerar los Blobs de un Contenedor desde aplicaciones PHP
Descargar Blobs desde aplicaciones PHP
Eliminar Blobs desde aplicaciones PHP
Eliminar un Contenedor de Blobs desde aplicaciones PHP

Requisitos
Para la realizacin de este laboratorio, es necesario contar con lo siguiente:
Una suscripcin vlida a Azure. Si no se cuenta con una, puede suscribirse a una prueba
gratuita en el siguiente enlace:
https://azure.microsoft.com/pricing/free-trial/
Un equipo con el entorno de desarrollo PHP de tu preferencia.

Tiempo estimado para completar este laboratorio: 60 minutos.

Pgina 3 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure

Ejercicio 1: Configurando la cuenta de


almacenamiento en la aplicacion PHP
El Almacenamiento de blobs de Azure es un servicio para almacenar grandes cantidades de datos de
objetos no estructurados, como texto o datos binarios, a los que puede acceder desde cualquier
lugar del mundo a travs de HTTP o HTTPS. Es posible utilizar el almacenamiento de blobs para
exponer datos pblicamente o para almacenar datos de una aplicacin de manera privada.

El almacenamiento de blobs suele usarse para realizar las siguientes tareas:

Acceso a imgenes o documentos directamente desde un explorador


Almacenamiento de archivos para acceso distribuido
Streaming de audio y vdeo
Almacenamiento de datos para copia de seguridad y restauracin, recuperacin ante
desastres y archivado
Almacenamiento de datos para el anlisis de forma local o en un servicio hospedado de
Azure.

Conceptos del servicio BLOB


El servicio BLOB contiene los componentes siguientes:

Cuenta de almacenamiento. Todo el acceso a Almacenamiento de Azure se realiza a travs


de una cuenta de almacenamiento. Esta cuenta de almacenamiento puede ser una cuenta de

Pgina 4 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure

almacenamiento de uso general o una cuenta de Almacenamiento de blobs, que sirve para
almacenar objetos o blobs.

Contenedor. Un contenedor proporciona una agrupacin de un conjunto de blobs. Todos los


blobs deben residir en un contenedor. Adems, una cuenta puede disponer de un nmero
ilimitado de contenedores y un contenedor puede almacenar un nmero ilimitado de blobs.
Ten en cuenta que el nombre del contenedor debe estar en minsculas.

Blob. Archivo de cualquier tipo y tamao. Almacenamiento de Azure ofrece tres tipos de
blobs:

o Los blobs en bloques (Block Blobs), son ideales para almacenar archivos de texto o
binarios, como documentos y archivos multimedia. Un nico blob en bloques puede
contener un mximo de 50,000 bloques de hasta 4 MB cada uno, hasta un tamao
total de algo ms de 195 GB (4 MB 50,000).
o Los blobs en pginas (Page Blobs) pueden tener un tamao de hasta 1 TB y son ms
eficaces para operaciones frecuentes de lectura y escritura. Mquinas virtuales de
Azure usa blobs en pginas como discos de sistema operativo y de datos.

o Los blobs en anexos (Append Blobs), se parecen a los blobs en bloques porque se
componen de bloques, pero estn optimizados para las operaciones de anexin de
datos, por lo que son tiles para escenarios de seguimiento o log de eventos.

Para obtener ms informacin sobre la nomenclatura de contenedores y blobs,


se recomienda consultar el siguiente enlace:

Naming and Referencing Containers, Blobs, and Metadata


https://msdn.microsoft.com/library/azure/dd135715.aspx

En este laboratorio, utilizars funciones del servicio de Almacenamiento de Azure a las que se puede
invocar desde una aplicacin PHP localmente o bien mediante cdigo a travs de un Rol Web, Rol de
Trabajo o sitio Web de Azure.

Tarea 1: Crear una cuenta de almacenamiento de Azure

La manera ms fcil de crear la primera cuenta de almacenamiento de Azure es mediante el Portal de


Azure. Tambin es posible crear la cuenta de Almacenamiento de Azure mediante Azure PowerShell,
el CLI de Azure o mediante la Biblioteca cliente para .NET del proveedor de recursos de
almacenamiento (Storage Resource Provider Client Library for .NET). En esta tarea crears una
cuenta de almacenamiento a travs del Portal de Azure.

Pgina 5 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure

1. Accede al Portal de Microsoft Azure.

2. Selecciona la opcin Nuevo.

3. Selecciona la categora Datos y Almacenamiento.

4. Selecciona Cuenta de almacenamiento.

5. Proporciona el nombre de la cuenta. El nombre no debe coincidir con ningn otro nombre de
cuenta de almacenamiento de Azure que algn otro usuario est utilizando. Observa que el
nombre de la cuenta ser el nombre del host en el dominio core.windows.net.

Pgina 6 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure

En este ejemplo, el URI de la cuenta ser woslab04.core.windows.net y otro usuario no podr


utilizar ese mismo nombre (woslab04).

6. Proporciona el nombre del nuevo grupo de recursos que ser creado y haz clic en Crear para
aceptar los dems datos sugeridos. Si lo deseas, puedes posicionar el puntero del mouse
sobre los iconos de ayuda para obtener informacin de los datos solicitados.

Recibirs una notificacin cuando el recurso haya sido creado.

7. Una vez que el recurso haya sido creado, debers obtener la llave de la cuenta de
almacenamiento ya que la utilizars en tareas posteriores.

Pgina 7 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure

Navega a la hoja de configuracin de la cuenta de Almacenamiento que creaste.

8. Haz clic en la opcin Claves de acceso. Las claves de acceso son utilizadas para autenticar a
las aplicaciones cuando hagan solicitudes a esa cuenta de almacenamiento de Azure.

9. Copia el valor de alguna de las llaves y pega el valor en un archivo de texto para que puedas
utilizarla posteriormente.

Tarea 2: Crear la aplicacin PHP

El nico requisito a la hora de crear una aplicacin PHP para obtener acceso al servicio BLOB de
Azure es que el cdigo haga referencia a clases del SDK de Azure para PHP. Puedes utilizar cualquier
herramienta de desarrollo para crear la aplicacin, incluido el Bloc de notas. Para los ejemplos de
este laboratorio, se utiliza WebMatrix. WebMatrix es una herramienta gratuita y ligera de desarrollo
Web que puede ser descargada desde el sitio https://www.microsoft.com/web/webmatrix/. Sintete
con la libertad de utilizar el IDE de desarrollo PHP de tu preferencia.

1. Crea un nuevo sitio PHP en el entorno de desarrollo de tu eleccin.


2. Agrega una pgina index.php que servir como pgina de inicio donde escribiremos el cdigo
para acceder a la cuenta de Almacenamiento de Azure. El contenido de la pgina es el
siguiente:

<?php

?>

Pgina 8 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure

Tarea 3: Obtener las bibliotecas de Clientes PHP para Azure

El SDK de Azure para PHP incluye componentes que nos permiten desarrollar, implementar y
administrar aplicaciones PHP para Azure. Especficamente, el SDK de Azure para PHP incluye lo
siguiente:

Las bibliotecas de clientes PHP para Azure. Estas bibliotecas de clases proporcionan una
interfaz para tener acceso a caractersticas de Azure, como los servicios de administracin de
datos y los servicios en la nube.

La interfaz de la lnea de comandos de Azure para Mac, Linux y Windows (CLI de Azure).
Este es un conjunto de herramientas que sirve para implementar y administrar servicios de
Azure, como Sitios web Azure y Red virtual de Azure. La interfaz de la lnea de comandos de
Azure funciona en cualquier plataforma, incluidas las plataformas Mac, Linux y Windows.

Azure PowerShell (solo Windows). Este es un conjunto de cmdlets de PowerShell para


implementar y administrar servicios de Azure, como Servicios en la nube y Mquinas
virtuales.

Los emuladores de Azure (solo Windows). Los emuladores de proceso y almacenamiento


son emuladores locales de los servicios en la nube y los servicios de administracin de datos
que nos permiten probar localmente una aplicacin. Los emuladores de Azure solo se
ejecutan en Windows.

Para utilizar las bibliotecas de clientes PHP para Azure, es necesario tener instalado PHP 5.3 o
superior. Las instrucciones en esta tarea que describen cmo descargar e instalar las bibliotecas de
clientes PHP para Azure, asumen que se tiene instalado PHP 5.3 o posterior.

Estas bibliotecas se pueden instalar manualmente o a travs de administradores de paquetes PEAR o


a travs del Composer. Los siguientes pasos describen la forma de instalar las bibliotecas de clientes
PHP para Azure a travs de Composer.

1. Crea un archivo llamado composer.json en la raz de tu proyecto PHP y agrgale el siguiente


cdigo.

{
"repositories": [
{
"type": "pear",
"url": "http://pear.php.net"
}
],
"require": {

Pgina 9 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure

"pear-pear.php.net/mail_mime" : "*",
"pear-pear.php.net/http_request2" : "*",
"pear-pear.php.net/mail_mimedecode" : "*",
"microsoft/windowsazure": "*"
},
"config": {
"secure-http" : false
}
}

2. Descarga el archivo composer.phar hacia la raz de tu proyecto. El archivo composer.phar se


encuentra en la siguiente direccin:

http://getcomposer.org/composer.phar

3. Abre una consola de comandos y ejecuta el siguiente comando desde la raz de tu proyecto
PHP.

php composer.phar install

Una vez que se haya completado la instalacin, podemos hacer referencia a las bibliotecas de
clases desde nuestra aplicacin PHP.

Tarea 4: Configurar la aplicacin para acceder al servicio Blob

En esta tarea, configurars la aplicacin PHP para acceder al servicio Blob de Azure.

1. Abre la pgina index.php y agrega el siguiente cdigo para hacer referencia al archivo
autocargador mediante la instruccin require_once.

require_once "vendor\autoload.php";

2. Haz referencia a la clase ServicesBuilder agregando el siguiente cdigo.

use MicrosoftAzure\Storage\Common\ServicesBuilder;

El cdigo de la pgina deber ser el siguiente.

<?php
require_once "vendor\autoload.php";
use MicrosoftAzure\Storage\Common\ServicesBuilder;
?>

Pgina 10 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure

Tarea 5: Configurar una conexin de Almacenamiento de Azure

Para crear una instancia de un cliente del servicio BLOB de Azure, primero debemos disponer de una
cadena de conexin vlida. El formato de las cadenas de conexin del servicio BLOB es:

DefaultEndpointsProtocol=[http|https];AccountName=<TuCuenta>;AccountKey=<TuLlave>

Para crear un cliente de cualquier servicio de Azure, debemos utilizar la clase ServicesBuilder.

1. Agrega el siguiente cdigo para definir una variable que contenga la cadena de conexin de
tu cuenta de almacenamiento. Sustituye los valores de tu cuenta y llave.

$connectionString =
'DefaultEndpointsProtocol=https;AccountName=<TuCuenta>;AccountKey=<TuLlave>';

El cdigo se ver similar a lo siguiente.

$connectionString =
'DefaultEndpointsProtocol=https;AccountName=woslab04;AccountKey=PaMzlJLawxdo
LdfmqlefXi/qD9u1teC0q9M2koUchmBZwebvCF1Wz4YL+MA==';

2. Agrega el siguiente cdigo para crear una instancia de un Proxy REST que te permitir
realizar las llamadas disponibles al servicio de Almacenamiento.

$blobRestProxy =
ServicesBuilder::getInstance()->createBlobService($connectionString);

Pgina 11 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure

Ejercicio 2: Realizando tareas comunes


con Blobs
Cada Blob del almacenamiento de Azure debe residir en un contenedor. El contenedor forma parte
del nombre del blob. Por ejemplo, mycontainer es el nombre del contenedor de estos URI de blob de
ejemplo:

https://storagesample.blob.core.windows.net/mycontainer/blob1.txt

https://storagesample.blob.core.windows.net/mycontainer/photos/myphoto.jpg

Un nombre de contenedor debe ser un nombre DNS vlido y cumplir las reglas de nomenclatura
siguientes:
1. Los nombres de contenedor deben comenzar por una letra o un nmero, y pueden contener
solo letras, nmeros y el carcter de guin (-).

2. Todos los caracteres de guin (-) deben estar inmediatamente precedidos y seguidos por una
letra o un nmero; no se permiten guiones consecutivos en nombres de contenedor.

3. Todas las letras del nombre de un contenedor deben aparecer en minsculas.

4. Los nombres de contenedor deben tener entre 3 y 63 caracteres de longitud.

Ten en cuenta que el nombre de un contenedor siempre debe estar en minsculas. Si se incluye una
letra mayscula en un nombre de contenedor o se infringe de algn otro modo las reglas de
nomenclatura de contenedores, recibirs un error 400 (solicitud incorrecta).

Las siguientes tareas de este ejercicio te permitirn entender las distintas operaciones que pueden
realizarse con el servicio Blob de Azure. Puedes ir probando tu cdigo PHP al finalizar cada tarea.

Tarea 1: Crear un Contenedor

Un objeto BlobRestProxy nos permite crear un contenedor de blobs mediante el mtodo


createContainer. Al crear un contenedor, podemos establecer opciones en l, aunque no es
obligatorio.

1. Agrega el siguiente cdigo para crear un contenedor llamado images.

$containerName = "images";
$blobRestProxy->
createContainer($containerName);

Pgina 12 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure

Tarea 2: Cargar un Blob en un Contenedor

Para cargar un archivo como blob, utilizamos el mtodo BlobRestProxy->createBlockBlob. De este


modo, se crear el blob si no existe, o se sobrescribir si ya existe.

1. Agrega el siguiente cdigo para cargar un Blob al contenedor creado previamente. El cdigo
asume que tienes el archivo logo.png en tu proyecto.

$content = fopen("logo.png", "r");


$blob_name = "logo.png";
$blobRestProxy->createBlockBlob($containerName, $blob_name, $content);

Tarea 3. Enumerar los Blobs de un Contenedor

Para enumerar los blobs de un contenedor, utilizamos el mtodo BlobRestProxy->listBlobs aplicando


un ciclo foreach al resultado.

1. Agrega el siguiente cdigo para obtener en el explorador el nombre y el URI de cada uno de
los blobs de un contenedor.

$blob_list = $blobRestProxy->listBlobs($containerName);
$blobs = $blob_list->getBlobs();

foreach($blobs as $blob)
{
echo $blob->getName().": ".$blob->getUrl()."<br />";
}

Tarea 4: Descargar un Blob

Para descargar un blob, debemos invocar al mtodo BlobRestProxy->getBlob y, a continuacin, al


mtodo getContentStream en el objeto GetBlobResult resultante.

1. Agrega el siguiente cdigo para descargar un blob y guardarlo como archivo en disco

$blob = $blobRestProxy->getBlob($containerName, $blob_name);


file_put_contents("c:\demosphp\logo2.png", $blob->getContentStream());

Tarea 5: Eliminar un Blob

Para eliminar un blob, pasamos el nombre del contenedor y del blob a BlobRestProxy->deleteBlob.

1. Agrega el siguiente cdigo para eliminar un Blob.

$blobRestProxy->deleteBlob($containerName, $blob_name);

Pgina 13 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure

Tarea 6: Eliminar un Contenedor de Blobs

Finalmente, para eliminar un contenedor de blobs, pasamos el nombre del contenedor a


BlobRestProxy->deleteContainer.

1. Agrega el siguiente cdigo para eliminar un contenedor de Blobs.

$blobRestProxy->deleteContainer($containerName);

Pgina 14 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure

Resumen
En este laboratorio, mostramos la forma de realizar operaciones comunes con el servicio de Blobs de
Microsoft Azure utilizando la biblioteca de clientes PHP para Azure. Si necesitas ms informacin
acerca de tareas de almacenamiento ms complejas, puedes consultar el Centro para
desarrolladores de PHP en el siguiente enlace:

https://azure.microsoft.com/es-es/develop/php/

En este momento ya puedes eliminar todos los recursos que hayas creado durante los 4 laboratorios
de este mdulo.

Sigue aprendiendo Microsoft Azure!

Pgina 15 de 15

Você também pode gostar