Escolar Documentos
Profissional Documentos
Cultura Documentos
Mdulo 1: Introduccin
a Microsoft Azure
Accediendo al servicio de Almacenamiento
de Blobs de Azure con PHP
Versin: 1.0.0
Mayo de 2016
Pgina 1 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure
CONTENIDO
INTRODUCCIN
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:
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.
Pgina 3 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure
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.
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.
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.
Pgina 5 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure
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
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.
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
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.
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.
<?php
?>
Pgina 8 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft 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.
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.
{
"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
}
}
http://getcomposer.org/composer.phar
3. Abre una consola de comandos y ejecuta el siguiente comando desde la raz de tu proyecto
PHP.
Una vez que se haya completado la instalacin, podemos hacer referencia a las bibliotecas de
clases desde nuestra aplicacin PHP.
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";
use MicrosoftAzure\Storage\Common\ServicesBuilder;
<?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
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>';
$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
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.
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.
$containerName = "images";
$blobRestProxy->
createContainer($containerName);
Pgina 12 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure
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.
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 />";
}
1. Agrega el siguiente cdigo para descargar un blob y guardarlo como archivo en disco
Para eliminar un blob, pasamos el nombre del contenedor y del blob a BlobRestProxy->deleteBlob.
$blobRestProxy->deleteBlob($containerName, $blob_name);
Pgina 13 de 15
Adopcin de Microsoft Azure en Workloads de Open Source
Mdulo 1: Introduccin a Microsoft Azure
$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.
Pgina 15 de 15