Conexión a Azure Blob Storage desde flujos de trabajo de Azure Logic Apps
Se aplica a: Azure Logic Apps (consumo + estándar)
En esta guía paso a paso se muestra cómo acceder a la cuenta y el contenedor de Azure Blob Storage desde un flujo de trabajo de Azure Logic Apps mediante el conector de Azure Blob Storage. Este conector proporciona desencadenadores y acciones que el flujo de trabajo puede usar para las operaciones de blobs. Después, puede crear flujos de trabajo automatizados que se ejecutan cuando eventos los desencadenan en el contenedor de almacenamiento o en otros sistemas y ejecutar acciones para trabajar con datos en el contenedor de almacenamiento. Por ejemplo, puede acceder y administrar archivos almacenados como blobs en la cuenta de almacenamiento de Azure.
Puede conectarse a Azure Blob Storage desde un flujo de trabajo en los tipos de recursos Aplicación lógica (Consumo)Aplicación lógica (Estándar). Puede usar el conector con flujos de trabajo de aplicación lógica en Azure Logic Apps multiinquilino y Azure Logic Apps de inquilino único. Con Logic App (Estándar), puede usar las operaciones Azure Blob integradas del conector o las operaciones del conector administrado deAzure Blob Storage.
Referencia técnica del conector
El conector de Azure Blob Storage tiene diferentes versiones, en función del tipo de aplicación lógica y del entorno de host.
Aplicación lógica | Entorno | Versión del conector |
---|---|---|
Consumo | Azure Logic Apps multiinquilino | Conector administrado, que aparece en la galería de conectores en Runtime>Compartido. Para más información, revise la siguiente documentación: - Referencia del conector administrado de Azure Blob Storage - Conectores administrados en Azure Logic Apps |
Estándar | Azure Logic Apps de inquilino único y App Service Environment v3 (solo planes de Windows) | Conector administrado (hospedado en Azure), que aparece en la galería de conectores en Runtime>Compartido, y conector integrado, que es proveedor de servicios basado en, y aparece en la galería de conectores en Runtime>En app. La versión integrada difiere de las siguientes maneras: - La versión integrada se conecta directamente a la cuenta de Azure Storage que necesita solo una cadena de conexión. - La versión integrada puede acceder directamente a las redes virtuales de Azure. Para más información, revise la siguiente documentación: - Referencia del conector administrado de Azure Blob Storage - Referencia del conector integrado de Blob de Azure - Conectores integrados en Azure Logic Apps |
Limitaciones
Las acciones del conector administrado Azure Blob Storage pueden leer o escribir archivos que 50 MB o más pequeños. Para controlar los archivos mayores de 50 MB, pero hasta 1024 MB, las acciones de Azure Blob Storage admiten la fragmentación de mensajes. La acción Blob Storage denominada Obtener contenido de blobs usa implícitamente la fragmentación.
Aunque los desencadenadores administrados e integrados de Azure Blob Storage no admiten la fragmentación, los desencadenadores integrados pueden controlar archivos de 50 MB o más. Sin embargo, cuando un administrado desencadena el contenido del archivo de solicitudes, el desencadenador selecciona solo los archivos que son de 50 MB o más pequeños. Para obtener archivos de más de 50 MB, siga este patrón:
Use un desencadenador de Blob que devuelva propiedades de archivo, como Cuando se agrega o modifica un blob (solo propiedades).
Siga el desencadenador con la acción de conectores administrados de Azure Blob Storage llamada Obtener contenido de blob, que lee el archivo completo y utiliza la fragmentación implícitamente.
Límites de desencadenadores de Azure Blob Storage
- El desencadenador del conector administrado está limitado a 30 000 blobs en la carpeta virtual de sondeo.
- El desencadenador de conector integrado está limitado a 10 000 blobs en todo el contenedor de sondeo.
Si se supera el límite, es posible que un nuevo blob no pueda desencadenar el flujo de trabajo, por lo que se omite el desencadenador.
Requisitos previos
Una cuenta y una suscripción de Azure. Si no tiene una suscripción de Azure, regístrese para obtener una cuenta gratuita de Azure.
Un contenedor de blobs y una cuenta de almacenamiento de Azure
Flujo de trabajo de la aplicación lógica desde donde desea acceder a la cuenta de Azure Storage. Para iniciar el flujo de trabajo con un desencadenador de Blob de Azure, necesita un flujo de trabajo en blanco. Para usar una acción de Blob de Azure, inicie el flujo de trabajo con cualquier desencadenador.
Adición de un desencadenador de Blob
Un flujo de trabajo de aplicación lógica de Consumo solo puede usar el conector administrado por Azure Blob Storage. Sin embargo, un flujo de trabajo de aplicación lógica Estándar puede usar el conector administrado de Azure Blob Storage y el conector integrado de blobs de Azure. Aunque ambas versiones del conector solo proporcionan un desencadenador de blobs, el nombre del desencadenador difiere de la siguiente manera, en función de si está trabajando con un flujo de trabajo de Consumo o Estándar:
Aplicación lógica | Versión del conector | Nombre del desencadenador | Descripción |
---|---|---|---|
Consumo | Solo conectores administrados | Cuando se agrega o modifica un blob (solo propiedades) | El desencadenador se activa cuando las propiedades de un blob se agregan o actualizan en la carpeta raíz del contenedor de almacenamiento. Al configurar el desencadenador administrado, la versión administrada ignora los blobs del contenedor de almacenamiento. |
Estándar | - Conector integrado - Conector administrado |
- Integrado: cuando se agrega o actualiza un blob - Administrado: cuando se agrega o modifica un blob (solo propiedades) |
- Integrado: el desencadenador se activa al agregarse o actualizarse un blob en el contenedor de almacenamiento y lo hace en cualquiera carpeta anidada del contenedor de almacenamiento y no solo en la carpeta raíz. Al configurar el desencadenador integrado, la versión integrada procesa todos los blobs que hay en el contenedor de almacenamiento. - Administrado: el desencadenador se activa cuando las propiedades de un blob se agregan o actualizan en la carpeta raíz del contenedor de almacenamiento. Al configurar el desencadenador administrado, la versión administrada ignora los blobs del contenedor de almacenamiento. |
Aunque en los siguientes pasos se usa Azure Portal, también puede usar las siguientes herramientas para crear flujos de trabajo de aplicaciones lógicas si usa la extensión Azure Logic Apps adecuada:
Flujos de trabajo de aplicaciones lógicas de consumo: Visual Studio Code
Flujos de trabajo de aplicaciones lógicas estándar: Visual Studio Code
En Azure Portal, abra su aplicación lógica de consumo y el flujo de trabajo en blanco en el diseñador.
En el diseñador, en el cuadro de búsqueda, seleccione Estándar y, después, siga estos pasos generales para agregar el desencadenador administrado de Azure Blob Storage que desea.
Este ejemplo continúa con el desencadenador denominado Cuando se agrega o modifica un blob (solo propiedades).
Si se le solicita, proporcione la siguiente información para la conexión en la cuenta de almacenamiento. Seleccione Crear cuando haya terminado.
Propiedad Obligatorio Descripción Nombre de la conexión Sí Nombre de la conexión. Tipo de autenticación Sí El tipo de autenticación de la cuenta de almacenamiento. Para más información, revise Tipos de autenticación para desencadenadores y acciones que admiten la autenticación: proteger el acceso y los datos. Por ejemplo, esta conexión usa la autenticación de clave de acceso y proporciona el valor de clave de acceso de la cuenta de almacenamiento junto con los valores de propiedad que se enumeran a continuación:
Propiedad Necesario Valor Descripción Nombre de la cuenta de Azure Storage Sí, pero solo para la autenticación de clave de acceso <storage-account-name> Nombre de la cuenta de Azure Storage en la que se encuentra el contenedor de blobs.
Nota: Para buscar el nombre de la cuenta de almacenamiento, abra el recurso de la cuenta de almacenamiento en Azure Portal. En el menú de recursos, en Seguridad y redes, seleccione Claves de acceso. En Nombre de la cuenta de almacenamiento, copie y guarde el nombre.Clave de acceso de la cuenta de Azure Storage Sí,
pero solo para la autenticación de clave de acceso<storage-account-access-key> Clave de acceso de la cuenta de Azure Storage.
Nota: Para buscar la clave de acceso, abra el recurso de la cuenta de almacenamiento en Azure Portal. En el menú de recursos, en Seguridad y redes, seleccione Claves de acceso>clave1>Mostrar. Copie y guarde el valor de la clave principal.Una vez que aparezca el cuadro de información del desencadenador, proporcione la información necesaria.
En el valor de propiedad Contenedor, seleccione el icono de la carpeta para buscar el contenedor de blobs. O bien, escriba la ruta de acceso manualmente con la sintaxis /<container-name>, por ejemplo:
Para agregar otras propiedades disponibles para este desencadenador, abra la lista Agregar nueva lista de parámetros y seleccione las propiedades que desee.
Para ver más información, consulte Azure Blob Storage managed connector trigger properties, (Propiedades del desencadenador del conector administrado de Azure Blob Storage).
Agregue cualquier otra acción necesaria para el flujo de trabajo.
Cuando haya terminado, guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).
Adición de una acción de Blob
Un flujo de trabajo de aplicación lógica de Consumo solo puede usar el conector administrado por Azure Blob Storage. Sin embargo, un flujo de trabajo de aplicación lógica Estándar puede usar el conector administrado de Azure Blob Storage y el conector integrado de blobs de Azure. Cada versión tiene varias acciones con nombres diferentes. Por ejemplo, las versiones de conectores administradas y integradas tienen sus propias acciones para obtener metadatos de archivo y obtener contenido de archivo.
Acciones del conector administrado: estas acciones se ejecutan en un flujo de trabajo de Consumo o Estándar.
Acciones del conector integrado: estas acciones solo se ejecutan en un flujo de trabajo Estándar.
Aunque en los siguientes pasos se usa Azure Portal, también puede usar las siguientes herramientas para crear flujos de trabajo de aplicaciones lógicas si usa la extensión Azure Logic Apps adecuada:
- Flujos de trabajo de Consumo: Visual Studio Code
- Flujos de trabajo estándar: Visual Studio Code
En el Azure Portal, abra su aplicación lógica de consumo y su flujo de trabajo en el diseñador.
Si el flujo de trabajo está en blanco, agregue el desencadenador que requiere el escenario.
En este ejemplo se usa el desencadenadorPeriodicidad.
En el diseñador, siga estos pasos generales para buscar y agregar la acción administrada de Azure Blob Storage que desee.
En este ejemplo, se continúa con la acción denominada Obtener contenido de blob.
Si se le solicita, proporcione la siguiente información para la conexión. Seleccione Crear cuando haya terminado.
Propiedad Obligatorio Descripción Nombre de la conexión Sí Nombre de la conexión. Tipo de autenticación Sí El tipo de autenticación de la cuenta de almacenamiento. Para más información, revise Tipos de autenticación para desencadenadores y acciones que admiten la autenticación: proteger el acceso y los datos. Por ejemplo, esta conexión usa la autenticación de clave de acceso y proporciona el valor de clave de acceso de la cuenta de almacenamiento junto con los valores de propiedad que se enumeran a continuación:
Propiedad Necesario Valor Descripción Nombre de la cuenta de Azure Storage Sí,
pero solo para la autenticación de clave de acceso<storage-account-name> Nombre de la cuenta de Azure Storage en la que se encuentra el contenedor de blobs.
Nota: Para buscar el nombre de la cuenta de almacenamiento, abra el recurso de la cuenta de almacenamiento en Azure Portal. En el menú de recursos, en Seguridad y redes, seleccione Claves de acceso. En Nombre de la cuenta de almacenamiento, copie y guarde el nombre.Clave de acceso de la cuenta de Azure Storage Sí,
pero solo para la autenticación de clave de acceso<storage-account-access-key> Clave de acceso de la cuenta de Azure Storage.
Nota: Para buscar la clave de acceso, abra el recurso de la cuenta de almacenamiento en Azure Portal. En el menú de recursos, en Seguridad y redes, seleccione Claves de acceso>clave1>Mostrar. Copie y guarde el valor de la clave principal.En el cuadro de información de la acción, proporcione la información necesaria.
Por ejemplo, en la acción Obtener contenido de blob , proporcione el nombre de la cuenta de almacenamiento. Como valor de propiedad de Blob, seleccione el icono de la carpeta para buscar el contenedor o la carpeta de almacenamiento. O bien, escriba la ruta manualmente.
Tarea Sintaxis de ruta de acceso de blob Obtenga el contenido de un blob específico de la carpeta raíz. /<container-name>/<blob-name> Obtenga el contenido de un blob específico de una subcarpeta. /<container-name>/<subfolder>/<blob-name> En el ejemplo siguiente se muestra la configuración de la acción que obtiene el contenido de un blob de la carpeta raíz:
En el ejemplo siguiente se muestra la configuración de la acción que obtiene el contenido de un blob de la subcarpeta:
Agregue cualquier otra acción necesaria para el flujo de trabajo.
Cuando haya terminado, guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).
Acceso a cuentas de almacenamiento detrás de firewalls
Puede agregar la seguridad de red a una cuenta de Azure Storage si restringe el acceso con un firewall y reglas de firewall. Sin embargo, este programa de instalación crea un desafío para Azure y otros servicios de Microsoft que necesitan acceder a la cuenta de almacenamiento. La comunicación local en el centro de datos abstrae las direcciones IP internas, por lo que solo permitir el tráfico a través de direcciones IP puede que no sea suficiente para permitir la comunicación en el firewall correctamente. En función del conector de Azure Blob Storage que use, estarán disponibles las opciones siguientes:
Para acceder a las cuentas de almacenamiento detrás de firewalls mediante el conector administrado de Azure Blob Storage en Aplicaciones lógicas de Consumo, vea la siguiente documentación:
Para acceder a las cuentas de almacenamiento detrás de firewalls en aplicaciones lógicas Estándar, revise la siguiente documentación:
Conector integrado de Azure Blob Storage: Acceso a las cuentas de almacenamiento a través de la integración de red virtual
Conector de Azure Blob Storage administrado: Acceso a cuentas de almacenamiento en otras regiones
Acceso a las cuentas de almacenamiento de otras regiones
Si no usa la autenticación de identidad administrada, los flujos de trabajo de la aplicación lógica no pueden acceder directamente a las cuentas de almacenamiento detrás de firewalls cuando el recurso de aplicación lógica y la cuenta de almacenamiento existen en la misma región. Como solución alternativa, coloque el recurso de aplicación lógica en una región diferente a la de la cuenta de almacenamiento. Después, conceda acceso a las direcciones IP de salida para los conectores administrados en la región.
Nota:
Esta solución no se aplica al conector de Azure Table Storage y al conector de Azure Queue Storage. En su lugar, para acceder a Table Storage o Queue Storage, use la acción y el desencadenador HTTP integrados.
Para agregar las direcciones IP salientes al firewall de la cuenta de almacenamiento, siga estos pasos:
Anote las direcciones IP de salida del conector administrado de la región del recurso de aplicación lógica.
En Azure Portal, busque y abra su recurso de cuenta de almacenamiento.
En el menú de navegación de la cuenta de almacenamiento, en Seguridad y redes, seleccione Redes.
En Permitir acceso desde, seleccione Redes seleccionadas, que muestra la configuración pertinente.
En Firewall, agregue las direcciones IP o los intervalos que necesitan acceso. Si tiene que acceder a la cuenta de almacenamiento desde el equipo, seleccione Agregar la dirección IP del cliente.
Cuando finalice, seleccione Guardar.
Acceso a las cuentas de almacenamiento desde una red virtual de confianza
La aplicación lógica y la cuenta de almacenamiento existen en la misma región.
Puede colocar la cuenta de almacenamiento en una red virtual de Azure creando un punto de conexión privado y, después, agregar esa red virtual a la lista de redes virtuales de confianza. Para conceder a la aplicación lógica acceso a la cuenta de almacenamiento a través de una red virtual de confianza, debe crear una aplicación lógica Estándar, que puede conectarse a los recursos de una red virtual.
La aplicación lógica y la cuenta de almacenamiento existen en regiones diferentes.
Cree un punto de conexión privado en la cuenta de almacenamiento para el acceso.
Acceso a las cuentas de almacenamiento a través de la integración de red virtual
La aplicación lógica y la cuenta de almacenamiento existen en la misma región.
Puede colocar la cuenta de almacenamiento en una red virtual de Azure creando un punto de conexión privado y, después, agregar esa red virtual a la lista de redes virtuales de confianza. Para conceder a la aplicación lógica acceso a la cuenta de almacenamiento, debe configurar el tráfico saliente mediante la integración con red virtual para habilitar la conexión a los recursos en una red virtual. A continuación se agrega la red virtual a la lista de red virtual de confianza de la cuenta de almacenamiento.
La aplicación lógica y la cuenta de almacenamiento existen en regiones diferentes.
Cree un punto de conexión privado en la cuenta de almacenamiento para el acceso.
Acceso a Blob Storage en la misma región con identidades administradas del sistema
Para conectarse a Azure Blob Storage en cualquier región, puede usar identidades administradas para la autenticación. Puede crear una excepción que proporciona a los servicios de confianza de Microsoft, como una identidad administrada, acceso a la cuenta de almacenamiento por medio de un firewall.
Nota:
Esta solución no se aplica a las aplicaciones lógicas Estándar. Incluso si usa una identidad administrada asignada por el sistema con una aplicación lógica Estándar, el conector administrado de Azure Blob Storage no se puede conectar a una cuenta de almacenamiento en la misma región.
Para usar identidades administradas en la aplicación lógica para acceder a Blob Storage, siga estos pasos:
Nota:
Esta solución tiene las siguientes limitaciones:
Para autenticar su conexión de la cuenta de almacenamiento, debe configurar una identidad administrada asignada por el sistema. La identidad administrada asignada por el usuario no funciona.
Configuración del acceso de la cuenta de almacenamiento
Para configurar la compatibilidad con excepciones e identidades administradas, configure primero el acceso adecuado a la cuenta de almacenamiento:
En Azure Portal, busque y abra su recurso de cuenta de almacenamiento.
En el menú de navegación de la cuenta de almacenamiento, en Seguridad y redes, seleccione Redes.
En Permitir acceso desde, seleccione Redes seleccionadas, que muestra la configuración pertinente.
Si tiene que acceder a la cuenta de almacenamiento desde el equipo, en Firewall, seleccione Agregar la dirección IP del cliente.
En Excepciones, habilite Permitir que los servicios de Microsoft de confianza accedan a esta cuenta de almacenamiento.
Cuando acabe, seleccione Guardar.
Nota:
Si recibe un error 403 Prohibido al intentar conectarse a la cuenta de almacenamiento desde el flujo de trabajo, hay varias causas posibles. Pruebe la resolución siguiente antes de pasar a pasos adicionales. En primer lugar, deshabilite el valor Permitir que los servicios de Microsoft de confianza accedan a esta cuenta de almacenamiento y guarde los cambios. Después, vuelva a habilitar el valor y guarde los cambios de nuevo.
Creación de una asignación de roles para la aplicación lógica
A continuación, habilite la compatibilidad con identidades administradas en el recurso de aplicación lógica.
Los pasos siguientes son los mismos para las aplicaciones lógicas de consumo en entornos multiinquilino y aplicaciones lógicas estándar en entornos de un solo inquilino.
En Azure Portal, abra el recurso de aplicación lógica.
En el menú de navegación del recurso de aplicación lógica, en Configuración, seleccione Identidad.
En el panel Asignado por el sistema, establezca Estado en Activado, si no está ya habilitado, seleccione Guardar y confirme los cambios. En Permisos, seleccione Asignaciones de roles de Azure.
En el panel Asignaciones de roles de Azure, seleccione Agregar asignación de roles.
En el panel Agregar asignaciones de roles, configure la nueva asignación de roles mediante los pasos siguientes:
Propiedad Valor Descripción Ámbito <resource-scope> Conjunto de recursos donde desea aplicar la asignación de roles. En este ejemplo, seleccione Almacenamiento. Suscripción <Azure-subscription> La suscripción de Azure para la cuenta de almacenamiento. Recurso <storage-account-name> El nombre de la cuenta de almacenamiento a la que quiere acceder desde el flujo de trabajo de aplicación lógica. Rol <role-to-assign> El rol que el escenario requiere para que el flujo de trabajo funcione con el recurso. En este ejemplo se requiere Colaborador de datos de Storage Blob, que permite el acceso de lectura, escritura y eliminación a los contenedores de blobs y la fecha. Para ver la información de permisos, mueva el puntero sobre el icono de información situado junto a un rol en el menú desplegable. Cuando haya terminado, seleccione Guardar para finalizar la creación de la asignación de roles.
Habilitación de la compatibilidad con identidades administradas en la aplicación lógica
Después, complete los pasos siguientes:
Si tiene un flujo de trabajo en blanco, agregue un desencadenador del conector de Azure Blob Storage. De lo contrario, agregue una acción del conector de Azure Blob Storage. Asegúrese de crear una nueva conexión para el desencadenador o la acción, en lugar de usar una conexión existente.
Asegúrese de establecer el tipo de autenticación para usar la identidad administrada.
Después de configurar el desencadenador o la acción, puede guardar el flujo de trabajo y probar el desencadenador o la acción.
Solución de problemas para acceder a cuentas de almacenamiento
"Esta solicitud no está autorizada para realizar esta operación".
El error siguiente es un problema que se notifica de manera habitual y que se produce cuando la aplicación lógica y la cuenta de almacenamiento existen en la misma región. Pero hay opciones disponibles para resolver esta limitación, como se indica en la sección Acceso a cuentas de almacenamiento detrás de firewalls.
{ "status": 403, "message": "This request is not authorized to perform this operation.\\r\\nclientRequestId: a3da2269-7120-44b4-9fe5-ede7a9b0fbb8", "error": { "message": "This request is not authorized to perform this operation." }, "source": "azureblob-ase.azconn-ase.p.azurewebsites.net" }
Errores de Application Insights
Errores 404 y 409
Si el flujo de trabajo Estándar emplea una acción integrada de Azure Blob que agrega un blob al contenedor de almacenamiento, pueden producirse los errores 404 y 409 en Application Insights en el caso de solicitudes de error. Estos errores se esperan, dado que el conector comprueba si el archivo del blob existe antes de agregar el blob. Los errores se producen al no existir el archivo. A pesar de estos errores, la acción integrada agrega el blob correctamente.