Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Sugerencia
También puede formular Microsoft Copilot en Azure estas preguntas:
- ¿Cómo funciona una caché local en Azure App Service?
- ¿Cuáles son las ventajas de usar una caché local en Azure App Service?
- ¿Cuáles son las limitaciones de uso de una caché local en Azure App Service?
Para buscar Copilot en Azure, en la barra de herramientas de Azure Portal , seleccione Copilot.
El contenido de Azure App Service se almacena en Azure Storage y se expone como un recurso compartido de contenido duradero. Este diseño funciona con varias aplicaciones y tiene los siguientes atributos:
- El contenido se comparte en varias instancias de máquina virtual (VM) de la aplicación.
- El contenido es duradero y las aplicaciones en ejecución pueden modificarlo.
- Los archivos de registro y los archivos de datos de diagnóstico están disponibles en la misma carpeta de contenido compartido.
- La publicación de contenido nuevo actualiza directamente la carpeta de contenido. Puede ver inmediatamente el mismo contenido a través del sitio web del Administrador de control de código fuente (SCM, también conocido como Kudu) y la aplicación en ejecución. Sin embargo, algunas tecnologías (como ASP.NET) pueden iniciar un reinicio de la aplicación en determinados cambios de archivo para cargar el contenido más reciente.
Aunque muchas aplicaciones usan una o varias de estas características, algunas aplicaciones necesitan un almacén de contenido de alto rendimiento y de solo lectura desde el que se pueden ejecutar con alta disponibilidad. Estas aplicaciones pueden beneficiarse de la ejecución en una caché local en la instancia de máquina virtual.
La característica de caché local de Azure App Service proporciona una vista de rol web del contenido. Este contenido es una caché de escritura pero descarte del contenido de almacenamiento que se crea de forma asincrónica en el inicio del sitio. Cuando la caché esté lista, el sitio cambia para ejecutarse en el contenido almacenado en caché.
Las aplicaciones que se ejecutan con una ventaja de caché local de estas maneras:
- Son inmunes a las latencias asociadas al acceso al contenido en Azure Storage.
- Los problemas con la conexión al almacenamiento no les afectan, ya que la copia de solo lectura se almacena en caché localmente.
- Experimentan menos reinicios de la aplicación a partir de los cambios en el recurso compartido de almacenamiento.
Nota:
La característica de caché local no se admite en aplicaciones de funciones ni aplicaciones de App Service en contenedor, como en contenedores de Windows o en contenedores integrados o personalizados de Linux. Una versión de la característica que está disponible para estos tipos de aplicación es App Cache.
La característica de caché local tampoco se admite en los planes de tarifa F1 y D1 de App Service.
Cómo cambia una caché local el comportamiento de App Service
La configuración de una caché local provoca estos cambios:
D:\home
ahora apunta a la caché local, que se crea en la instancia de máquina virtual cuando se inicia la aplicación.D:\local
sigue apuntando al almacenamiento específico de la VM temporal.La caché local contiene una copia única de las
/site
carpetas y/siteextensions
del almacén de contenido compartido. Estas carpetas se encuentran enD:\home\site
yD:\home\siteextensions
, respectivamente. Estos archivos se copian en la caché local al iniciar la aplicación.El tamaño de estas dos carpetas está limitado a 1 GB de forma predeterminada, pero puede aumentarlo a 2 GB. A medida que aumenta el tamaño de la memoria caché, se tarda más tiempo en cargar la memoria caché. Si aumenta el límite de caché local a 2 GB y los archivos copiados superan este tamaño máximo, App Service omite silenciosamente la caché local y lee desde el recurso compartido de archivos remoto.
Importante
Cuando los archivos copiados superan el límite de tamaño definido para la caché local, o cuando no se define ningún límite, las operaciones de implementación e intercambio pueden producir un error. Para más información, consulte las preguntas más frecuentes sobre los límites de tamaño más adelante en este artículo.
La caché local admite lectura y escritura. Sin embargo, las modificaciones se descartan cuando la aplicación se mueve entre máquinas virtuales o se reinicia. No use la caché local para almacenar datos críticos.
D:\home\LogFiles
yD:\home\Data
contienen archivos de registro y datos de la aplicación. Estas carpetas se almacenan localmente en la instancia de máquina virtual y se copian periódicamente en el almacén de contenido compartido. Aunque las aplicaciones pueden conservar los archivos de registro y los datos escribiendo en estas carpetas, el proceso de copia es el mejor esfuerzo. Es posible que los archivos de registro y los datos se pierdan si una instancia de máquina virtual deja de responder de repente.La copia de mejor esfuerzo afecta a la transmisión de registros. Es posible que observe un retraso de hasta un minuto en los registros transmitidos.
En el almacén de contenido compartido, la estructura de carpetas de
LogFiles
yData
cambia para las aplicaciones que utilizan una caché local. Ahora hay subcarpetas con nombres que constan de un identificador único y una marca de tiempo. Cada subcarpeta corresponde a una instancia de máquina virtual en la que la aplicación se está o se estaba ejecutando.Otras carpetas en
D:\home
permanecen en la caché local y no se copian en el almacén de contenido compartido.Las implementaciones de aplicaciones a través de cualquier método admitido se publican directamente en el almacén de contenido compartido duradero. Para actualizar las
D:\home\site
carpetas yD:\home\siteextensions
en la caché local, debe reiniciar la aplicación. Para obtener un ciclo de vida sin problemas, consulte la sección sobre los procedimientos recomendados más adelante en este artículo.La vista de contenido predeterminada del sitio SCM continúa reflejando el almacén de contenido compartido.
Nota:
Si usa Java (Java SE, Tomcat o JBoss EAP), de forma predeterminada, los artefactos de Java (archivos .jar, .war y .ear) se copian localmente en el trabajo. Si la aplicación Java depende del acceso de solo lectura a archivos adicionales, establézcalo en JAVA_COPY_ALL
true
para que esos archivos también se copien. Si se habilita una caché local, tiene prioridad sobre este comportamiento específico de Java.
Métodos para habilitar una caché local
Puede configurar una caché local mediante una combinación de opciones reservadas de la aplicación. Puede establecer esta configuración de aplicación mediante uno de los métodos siguientes.
Configuración de una caché local mediante Azure Portal
Habilite una caché local por aplicación agregando esta configuración de aplicación: WEBSITE_LOCAL_CACHE_OPTION
= Always
.
Configuración de una caché local mediante Azure Resource Manager
{
"apiVersion": "2015-08-01",
"type": "config",
"name": "appsettings",
"dependsOn": [
"[resourceId('Microsoft.Web/sites/', variables('siteName'))]"
],
"properties": {
"WEBSITE_LOCAL_CACHE_OPTION": "Always",
"WEBSITE_LOCAL_CACHE_SIZEINMB": "1000"
}
}
Cambio de la configuración de tamaño en una caché local
De forma predeterminada, el tamaño de caché local es de 1 GB. Este tamaño incluye las carpetas /site
y /siteextensions
que se copiaron del almacén de contenido. También incluye los registros y carpetas de datos generados localmente.
Para aumentar este límite, use la configuración WEBSITE_LOCAL_CACHE_SIZEINMB
de la aplicación . Puedes aumentar el tamaño hasta 2 GB (2000 MB) por aplicación. Tenga en cuenta que un tamaño de caché mayor aumenta el tiempo de carga de la memoria caché.
Procedimientos recomendados para usar una caché local
Se recomienda usar una caché local junto con la característica de entornos de ensayo .
El siguiente proceso representa los procedimientos recomendados para usar una caché local:
Agregue la configuración de la aplicación persistente
WEBSITE_LOCAL_CACHE_OPTION
con el valorAlways
al espacio de producción. Si usaWEBSITE_LOCAL_CACHE_SIZEINMB
, marque también esa configuración como una configuración persistente para el slot de producción.Cree un espacio de almacenamiento provisional y publíquelo allí. Normalmente, no establece el espacio de ensayo para usar una caché local, lo que ayuda a habilitar un ciclo de vida de compilación, implementación o prueba sin problemas, a la vez que proporciona ventajas de caché local para la ranura de producción.
Pruebe su sitio en el espacio de ensayo.
Cuando esté listo, realice una operación de intercambio entre los espacios de almacenamiento provisional y producción.
La configuración pegajosa está vinculada a la ranura. Cuando el espacio de ensayo se intercambia en producción, hereda la configuración de la aplicación de la caché local. El espacio de producción recién cambiado se ejecuta contra la caché local tras algunos minutos y se calienta durante la activación del espacio. Una vez completado el intercambio, el espacio de producción se ejecuta en la caché local.
Preguntas más frecuentes
¿Qué ocurre si se supera el límite de tamaño de la caché local?
Si los archivos copiados superan el límite de tamaño de la caché local, la aplicación vuelve a leer desde el recurso compartido remoto. En la tabla siguiente se muestran los detalles.
Tamaño de caché local | Archivos copiados | Resultado |
---|---|---|
≤ 2 GB | ≤ tamaño de caché local | Lee de la caché local. |
≤ 2 GB | > tamaño de caché local | Lee desde el recurso compartido remoto. Es posible que se produzca un error en las operaciones de implementación e intercambio. |
¿Cómo puedo saber si mi aplicación puede beneficiarse de una caché local?
Una caché local es una buena opción si se aplican todas estas condiciones:
- La aplicación requiere un almacén de contenido confiable y de alto rendimiento.
- La aplicación no usa el almacén de contenido para escribir datos críticos en tiempo de ejecución.
- El tamaño total es inferior a 2 GB.
Para comprobar el tamaño total de sus carpetas /site
y /siteextensions
, puede usar la extensión del sitio Uso de discos de Azure Web Apps.
¿Cómo puedo saber si mi sitio ha cambiado a usar una caché local?
Cuando se usa una caché local con entornos de ensayo, la operación de intercambio no finaliza hasta que se calienta la memoria caché local. Para comprobar que el sitio se ejecuta en la caché local, compruebe la variable de entorno de proceso de trabajo WEBSITE_LOCALCACHE_READY
. Para inspeccionar esta variable en varias instancias, consulte las instrucciones de Kudu para la variable de entorno del proceso de trabajo.
¿Por qué mi aplicación no refleja los cambios recién publicados?
Si la aplicación usa una caché local, debe reiniciar el sitio para cargar los cambios más recientes. Si prefiere no publicar cambios directamente en el sitio de producción, considere la posibilidad de usar ranuras de implementación como se describe en la sección anterior sobre los procedimientos recomendados.
Nota:
La opción ejecutar desde paquete no es compatible con la característica de caché local.
¿Dónde están mis registros?
Cuando se usa una caché local, la estructura de las carpetas de datos y de registro cambia ligeramente. Las subcarpetas ahora están anidadas en una carpeta denominada con el identificador de máquina virtual único y una marca de tiempo. Cada una de estas carpetas corresponde a la instancia de máquina virtual en la que se estaba ejecutando o la aplicación.
¿Por qué la aplicación sigue reiniciando con una caché local habilitada?
Una caché local ayuda a evitar que se reinicie la aplicación relacionada con el almacenamiento. Sin embargo, es posible que la aplicación se reinicie durante las actualizaciones de infraestructura planeadas en la máquina virtual. En general, debe observar menos reinicios con una caché local habilitada.
¿Una caché local excluye algunos directorios de ser copiados en la unidad local más rápida?
Durante el proceso de copia, se excluye cualquier carpeta denominada repository
. Este comportamiento es útil en escenarios en los que el contenido del sitio incluye un repositorio de control de código fuente que no necesita para las operaciones diarias.
¿Cómo se vacían los registros de caché local después de una operación de administración de sitios?
Para vaciar los registros de caché local, detenga y reinicie la aplicación. Esta acción borra la memoria caché anterior.
¿Por qué App Service muestra los archivos implementados anteriormente después de un reinicio cuando se habilita una caché local?
Si los archivos implementados anteriormente vuelven a aparecer después de un reinicio, compruebe la presencia de la configuración WEBSITE_DISABLE_SCM_SEPARATION=true
de la aplicación . Al agregar esta configuración, las implementaciones a través de Kudu se escriben en la máquina virtual local en lugar del almacenamiento persistente. Para evitar esta situación, siga los procedimientos recomendados mencionados anteriormente y realice implementaciones en un espacio de ensayo que no tenga habilitada una caché local.