Compartir vía


Uso de una cuenta de almacenamiento protegida con Azure Functions

Azure Functions necesita una cuenta de Azure Storage para crear una instancia de la aplicación de funciones. El entorno de ejecución de Functions usa esta cuenta de almacenamiento predeterminada para mantener el estado de su aplicación de funciones. Para obtener más información, vea Consideraciones de almacenamiento de Azure Functions. En este artículo se muestra cómo usar una cuenta de almacenamiento protegida como cuenta de almacenamiento predeterminada. Para obtener un tutorial detallado sobre cómo crear la aplicación de funciones con restricciones de acceso entrante y saliente, vea el tutorial Integración con una red virtual. Para obtener más información sobre Azure Functions y las redes, vea Opciones de redes de Azure Functions.

Restricción de la cuenta de almacenamiento a una red virtual

Al crear una aplicación de funciones, cree una nueva cuenta de almacenamiento, o bien vincule la aplicación a una existente. Tenga en cuenta estas consideraciones cuando trabaje con cuentas de almacenamiento protegidas.

  • Para crear una aplicación de funciones que use una cuenta de almacenamiento protegida existente como cuenta de almacenamiento predeterminada, debe crear la aplicación en Azure Portal o mediante una plantilla de ARM o las implementaciones de Bicep.
  • Si usa una cuenta de almacenamiento protegida con un plan de escalado dinámico, debería hospedar las funciones en el plan de Consumo flexible. Este plan admite tanto cuentas de almacenamiento protegidas como conexiones administradas basadas en identidades para el almacenamiento, que es la opción de conexión más segura.
  • Todos los niveles tanto del plan Dedicado (App Service) como del plan Elastic Premium también admiten cuentas de almacenamiento protegidas. Sin embargo, cuando se usan identidades administradas para conectarse desde una aplicación del plan Premium tiene sus inconvenientes. Para más información, consulte Creación de aplicaciones sin Azure Files.
  • El plan Consumo no admite redes virtuales, por lo que no se puede conectar a una cuenta de almacenamiento protegida cuando se ejecuta en el plan Consumo. Para aprovechar el hospedaje de funciones sin servidor debe volver a crear la aplicación para que se ejecute en el plan Consumo flexible.
  • En este artículo se muestra cómo crear una aplicación de funciones en un plan Prémium que se conecta a una cuenta de almacenamiento protegida mediante la cadena de conexión de la cuenta de almacenamiento. Para proporcionar la mejor protección de las credenciales de la cuenta de almacenamiento, debe usar identidades administradas al conectarse a una cuenta de almacenamiento. En su lugar, consulte Inicio rápido: Creación e implementación de funciones en Azure Functions mediante la Azure Developer CLI para crear una aplicación de funciones en el plan Consumo flexible que se conecta a una nueva cuenta de almacenamiento protegida mediante identidades administradas.
  • Para obtener una lista de todas las restricciones de las cuentas de almacenamiento, consulte Requisitos de la cuenta de almacenamiento.

Almacenamiento protegido durante la creación de la aplicación de funciones

Puede crear una aplicación de funciones, junto con una nueva cuenta de almacenamiento protegida detrás de una red virtual. En las secciones siguientes se muestra cómo crear estos recursos mediante Azure Portal o mediante plantillas de implementación.

Complete los pasos en Crear una aplicación de función en un plan Premium. En esta sección del tutorial de redes virtuales se muestra cómo crear una aplicación de funciones que se conecta al almacenamiento a través de puntos de conexión privados.

Nota:

Cuando cree su aplicación de función en Azure Portal, también puede elegir una cuenta de almacenamiento seguro existente en la pestaña Almacenamiento. Sin embargo, debe configurar las redes adecuadas en la aplicación de funciones para que pueda conectarse a través de la red virtual que se usa para proteger la cuenta de almacenamiento. Si no tiene permisos para configurar la red o no ha preparado completamente su red, seleccione Configurar red después de la creación en la pestaña Red. Puede configurar redes para la nueva aplicación de funciones en el portal en Configuración>Redes.

Almacenamiento protegido para una aplicación de funciones existente

Si ya existe una aplicación funcional, puede configurar directamente la conexión en red en la cuenta de almacenamiento utilizada por la aplicación. Sin embargo, este proceso hace que la aplicación de funciones esté inactiva mientras configura las redes y mientras se reinicia la aplicación de funciones.

Para minimizar el tiempo de inactividad, puede cambiar una cuenta de almacenamiento existente por otra nueva y segura.

1. Habilitación de la integración de red virtual

Como requisito previo, debe habilitar la integración de red virtual para la aplicación de funciones:

  1. Elija una aplicación de funciones con una cuenta de almacenamiento que no tenga habilitados puntos de conexión de servicio o puntos de conexión privados.

  2. Permita la integración de red virtual para su aplicación de funciones.

2. Creación de una cuenta de almacenamiento protegida

Configure una cuenta de almacenamiento protegida para la aplicación de funciones:

  1. Cree una segunda cuenta de almacenamiento. Esta cuenta de almacenamiento es la cuenta de almacenamiento protegida para que la aplicación de funciones use en lugar de su cuenta de almacenamiento original no segura. También puede usar una cuenta de almacenamiento existente que no esté usando Functions.

  2. Guarde la cadena de conexión de esta cuenta de almacenamiento para usarla más adelante.

  3. Cree un recurso compartido de archivos en la nueva cuenta de almacenamiento. Para mayor comodidad, puede usar el mismo nombre de recurso compartido de archivos de la cuenta de almacenamiento original. De lo contrario, si usa un nuevo nombre de recurso compartido de archivos, debe actualizar la configuración de la aplicación.

  4. Proteja la nueva cuenta de almacenamiento de una de las siguientes maneras:

    • Creación de un punto de conexión privado. Al configurar la conexión de punto de conexión privado, cree puntos de conexión privados para los file y blob subrecursos. Para Durable Functions, también debe hacer que los subrecursos queue y table sean accesibles a través de puntos de conexión privados. Si usa un servidor personalizado o local del sistema de nombres de dominio (DNS), configure el servidor DNS para resolver los nuevos puntos de conexión privados.

    • Restrinja el tráfico a subredes específicas. Asegúrese de que la aplicación de funciones está integrada en la red con una subred permitida y de que la subred tiene un punto de conexión de servicio para Microsoft.Storage.

  5. Copie el contenido del archivo y el blob de la cuenta de almacenamiento actual utilizada por la aplicación de funciones a la nueva cuenta de almacenamiento y el recurso compartido de archivos protegidos. AzCopy y Explorador de Azure Storage son métodos comunes. Si usa el Explorador de Azure Storage, es posible que tenga que permitir el acceso de la dirección IP del cliente al firewall de la cuenta de almacenamiento.

Ahora está listo para configurar la aplicación de funciones para comunicarse con la cuenta de almacenamiento recién protegida.

3. Habilitación del enrutamiento de la aplicación y la configuración

Nota:

Estos pasos de configuración solo son necesarios para los planes de hospedaje Elastic Premium y Dedicated (App Service). El plan de Consumo flexible no requiere ajustes del sitio para configurar la red.

Ya está listo para enrutar el tráfico de la aplicación de funciones para pasar por la red virtual:

  1. Habilite enrutamiento de aplicaciones para enrutar el tráfico de la aplicación a la red virtual:

    1. En la aplicación de funciones, expanda Configuración, y después, seleccione Redes. En la página Redes, en configuración de tráfico saliente, seleccione la subred asociada a la integración de red virtual.

    2. En la nueva página, en Enrutamiento deaplicaciones, seleccione Tráfico saliente de Internet.

  2. Habilite enrutamiento de recursos compartidos de contenido para permitir que la aplicación de funciones se comunique con la nueva cuenta de almacenamiento a través de su red virtual. En la misma página que el paso anterior, en Enrutamiento de configuración, seleccione Almacenamiento de contenido.

Nota:

Debe tener especial cuidado al enrutar al recurso compartido de contenido en una cuenta de almacenamiento compartida por varias aplicaciones de función en el mismo plan. Para obtener más información, vea Enrutamiento coherente a través de redes virtuales en el artículo Consideraciones sobre almacenamiento.

4. Actualización de la configuración de la aplicación

Por último, debe actualizar la configuración de la aplicación para que apunte a la nueva cuenta de almacenamiento segura:

  1. En la aplicación de funciones, expanda Configuracióny, después, seleccione Variables de entorno.

  2. En la pestaña Configuración de la aplicación, actualice la siguiente configuración seleccionando cada configuración, editándola y, a continuación, seleccionando Aplicar:

    Nombre del valor Value Comentario
    AzureWebJobsStorage Cadena de conexión de almacenamiento Use la cadena de conexión para la nueva cuenta de almacenamiento protegida, que guardó anteriormente.
    WEBSITE_CONTENTAZUREFILECONNECTIONSTRING Cadena de conexión de almacenamiento Use la cadena de conexión para la nueva cuenta de almacenamiento protegida, que guardó anteriormente.
    WEBSITE_CONTENTSHARE Recurso compartido de archivos Use el nombre del recurso compartido de archivos creado en la cuenta de almacenamiento protegida donde residen los archivos de implementación del proyecto.
  3. Seleccione Aplicar, y después , Confirmar para guardar la nueva configuración de la aplicación en la aplicación de funciones.

    La aplicación de funciones se reinicia.

Una vez que la aplicación de funciones finaliza el reinicio, se conecta a la cuenta de almacenamiento protegida.

Pasos siguientes