Ejecución de una función de Azure cuando se crea un blob

Completado

Imagine que es fotógrafo y tiene un sitio web donde muestra las imágenes del día. Al estar ocupado, no tiene una programación de carga coherente, pero desea notificar a los aficionados cuando carga una imagen. Decide crear una función de Azure para enviar automáticamente un tweet cada vez que carga una imagen en el contenedor de blobs de Azure Storage.

Aquí aprenderá a crear un desencadenador de blobs e indicarle que supervise una ubicación específica en el contenedor de blobs de Azure Storage.

¿Qué es Azure Storage?

Azure Storage es una solución de almacenamiento en la nube de Microsoft que admite todos los tipos de datos, lo que incluye blobs, colas y NoSQL. El objetivo de Azure Storage es proporcionar almacenamiento de datos de alta disponibilidad, seguro, escalable y administrado.

En este módulo, no nos centraremos en Azure Storage demasiado. En su lugar, queremos usarlo para almacenar blobs de datos que pueden desencadenar la ejecución de la función.

¿Qué es Azure Blob Storage?

Azure Blob Storage es una solución de almacenamiento de objetos diseñada para almacenar grandes cantidades de datos no estructurados.

Por ejemplo, Azure Blob Storage resulta idóneo para hacer cosas como:

  • Almacenar archivos
  • Servir archivos
  • Realizar streaming de audio y vídeo
  • Registrar datos

Hay tres tipos de blobs: blobs de bloques, blobs de anexos y blobs de páginas. Los blobs en bloques son el tipo más frecuente. Le permiten almacenar datos binarios o de texto de forma eficaz. Los blobs en anexos son como los blobs en bloques, pero están diseñados más para operaciones de anexión como la creación de un archivo de registro que se está actualizando constantemente. Por último, los blobs en páginas están compuestos de páginas y se han diseñado para las operaciones aleatorias y frecuentes de lectura y escritura.

¿Qué es un desencadenador de blobs?

Un desencadenador de blobs es un desencadenador que ejecuta una función al cargar o actualizar un archivo en Azure Blob Storage. Azure Functions comprueba periódicamente un contenedor de almacenamiento para ver los cambios, lo que puede dar lugar a cierta latencia. Hay maneras de reducir esta latencia al desencadenar en contenedores de blobs.

Para crear un desencadenador de blobs, cree una cuenta de Azure Storage y proporcione una ubicación que el desencadenador supervisa.

Creación de un desencadenador de blobs

Al igual que los otros desencadenadores que hemos aprendido hasta ahora, puede crear un desencadenador de blobs en Azure Portal. Dentro de la función de Azure, seleccione Desencadenador de blobs en la lista de tipos de desencadenadores predefinidos. Después, escriba la lógica que se quiere ejecutar cuando se crea o actualiza un blob.

Una configuración que es importante comprender es Ruta. La Ruta de acceso indica al desencadenador de blobs qué contenedor de blobs supervisar para ver si se carga o se actualiza un blob. De forma predeterminada, el valor path es:

samples-workitems/{name}

Vamos a dividir este concepto en dos partes: samples-workitems y {name}. La primera parte, samples-workitems, representa el contenedor de blobs que el desencadenador supervisa. La segunda parte, {name} significa que cada tipo de archivo hace que el desencadenador invoque la función. La función se invoca porque no hay ningún filtro. Por ejemplo, podría hacerse que el desencadenador invocara a la función solo cuando se agrega un archivo PNG mediante una sintaxis como:

samples-workitems/{name}.png

El último fragmento significativo de información para este concepto es el nombre del texto. El nombre representa un parámetro de la función de Azure que recibe el nombre del archivo agregado. Por ejemplo, si cargamos un archivo denominado resume.txt, mi función de Azure recibe ese valor como una cadena a través de un parámetro denominado name.

Un desencadenador de blobs invoca una función de Azure cuando ve actividad en una ubicación específica en la cuenta de blobs de Azure Storage. Establezca la ubicación que se va a supervisar modificando el valor Ruta en el portal de Azure.