Configuración de una aplicación de App Service
Nota:
A partir del 1 de junio de 2024, todas las aplicaciones de App Service recién creadas tendrán la opción de generar un nombre de host predeterminado único mediante la convención de nomenclatura <app-name>-<random-hash>.<region>.azurewebsites.net
. Los nombres de aplicación existentes permanecerán sin cambios.
Ejemplo: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Para obtener más información, consulte Nombre de host predeterminado único para el recurso App Service.
En este artículo se explica cómo configurar los ajustes comunes de aplicaciones web, back-end para dispositivos móviles o aplicación de API. Para Azure Functions, consulte Referencia de configuración de aplicación para Azure Functions.
Configuración de aplicaciones
Nota:
- Los nombres de configuraciones de aplicaciones solo pueden contener letras, números (0-9), puntos (".") y guiones bajos ("_")
- Los caracteres especiales en el valor de una configuración de aplicación deben escaparse según sea necesario para el sistema operativo de destino
Por ejemplo, para establecer una variable de entorno en App Service Linux con el valor "pa$$w0rd\"
, la cadena para la configuración de la aplicación debe ser: "pa\$\$w0rd\\"
En App Service, las configuraciones de aplicaciones son variables que se pasan como variables de entorno al código de la aplicación. En el caso de las aplicaciones Linux y de los contenedores personalizados, App Service pasa la configuración de la aplicación al contenedor mediante la marca --env
para establecer la variable de entorno en el contenedor. En cualquier caso, se insertan en el entorno de la aplicación al iniciar la aplicación. Al agregar, quitar o editar la configuración de la aplicación, App Service desencadena un reinicio de la aplicación.
Para los desarrolladores de ASP.NET y ASP.NET Core, la configuración de las opciones de aplicación en App Service es como configurarlas en <appSettings>
en Web.config o appsettings.json, pero los valores de App Service reemplazan a los de Web.config o appsettings.json. Puede mantener la configuración de desarrollo (por ejemplo, la contraseña de MySQL local) de Web.config o appsettings.json y los secretos de producción (por ejemplo, la contraseña de base de datos de Azure MySQL) de forma segura en App Service. El mismo código usa la configuración de desarrollo cuando se depura localmente, y utiliza los secretos de producción cuando se implementa en Azure.
Del mismo modo, otras pilas de lenguaje obtienen la configuración de la aplicación como variables de entorno en tiempo de ejecución. Para obtener pasos específicos de la pila de lenguaje, consulte:
La configuración de la aplicación siempre se cifra cuando se almacena (cifrado en reposo).
Nota:
Si almacena secretos en la configuración de la aplicación, considere la posibilidad de usar referencias de Key Vault. Si sus secretos son para la conectividad con recursos de back-end, considere opciones de conectividad más seguras que no requieran secretos en absoluto. Para más información, consulte Conectividad segura a servicios y bases de datos de Azure desde Azure App Service.
En Azure Portal, busque y seleccione App Services y luego elija la aplicación.
En el menú de la izquierda de la aplicación, seleccione Variables de entorno>Configuración de la aplicación.
De forma predeterminada, los valores de configuración de la aplicación están ocultos en el portal por motivos de seguridad. Para ver un valor oculto de la configuración de una aplicación, seleccione su campo Valor. Para ver los valores ocultos de todas las configuraciones de aplicación, seleccione el botón Mostrar valores.
Para agregar una configuración de aplicación, seleccione Agregar. Para editar una configuración, haga clic en la configuración.
En el cuadro de diálogo, puede fijar la configuración a la ranura actual.
Nota:
En un servicio de aplicaciones de Linux predeterminado o en un contenedor de Linux personalizado, cualquier estructura de claves JSON anidada en el nombre de configuración de la aplicación, como
ApplicationInsights:InstrumentationKey
, debe configurarse en App Service comoApplicationInsights__InstrumentationKey
para el nombre de clave. Es decir, los símbolos:
deben reemplazarse por__
(doble subrayado). Los puntos que se encuentra en el nombre de configuración de la aplicación se reemplazarán por un_
(carácter de subrayado único).Cuando termine, seleccione Aplicar. No olvide seleccionar Aplicar de nuevo en la página Variables de entorno.
Edición de la configuración de la aplicación en bloque
Seleccione el botón Edición avanzada. Edite la configuración en el área de texto. Cuando termine, seleccione Aceptar. No olvide seleccionar Aplicar de nuevo en la página Variables de entorno.
La configuración de la aplicación tiene el formato JSON siguiente:
[
{
"name": "<key-1>",
"value": "<value-1>",
"slotSetting": false
},
{
"name": "<key-2>",
"value": "<value-2>",
"slotSetting": false
},
...
]
Configurar cadenas de conexión
Nota:
Considere las opciones de conectividad más seguras que no requieren secretos de conexión. Para más información, consulte Conectividad segura a servicios y bases de datos de Azure desde Azure App Service.
Para los desarrolladores de ASP.NET y ASP.NET Core, la configuración de las cadenas de conexión en App Service es como configurarlas en <connectionStrings>
en Web.config, pero los valores establecidos en App Service reemplazan a los de Web.config. Puede mantener la configuración de desarrollo (por ejemplo, un archivo de base de datos) en Web.config y los secretos de producción (por ejemplo, credenciales de SQL Database) seguros en App Service. El mismo código usa la configuración de desarrollo cuando se depura localmente, y utiliza los secretos de producción cuando se implementa en Azure.
En cambio, para otras pilas de lenguaje es mejor usar la configuración de la aplicación, dado que las cadenas de conexión requieren un formato especial en las claves de variable para acceder a los valores.
Nota
Hay un caso en el que puede que quiera usar cadenas de conexión en lugar de la configuración de la aplicación para los lenguajes que no son .NET: la copia de seguridad de determinados tipos de bases de datos de Azure se realiza junto con la aplicación solo si se configura una cadena de conexión para la base de datos en la aplicación de App Service. Para obtener más información, consulte Creación de una copia de seguridad personalizada. Si no necesita esta copia de seguridad automatizada, use la configuración de la aplicación.
En tiempo de ejecución, las cadenas de conexión están disponibles como variables de entorno, con los siguientes tipos de conexión como prefijo:
- SQLServer:
SQLCONNSTR_
- MySQL:
MYSQLCONNSTR_
- SQLAzure:
SQLAZURECONNSTR_
- Personalizado:
CUSTOMCONNSTR_
- PostgreSQL:
POSTGRESQLCONNSTR_
- Centro de notificaciones:
NOTIFICATIONHUBCONNSTR_
- Service Bus:
SERVICEBUSCONNSTR_
- Centro de eventos:
EVENTHUBCONNSTR_
- Base de datos de documentos:
DOCDBCONNSTR_
- Redis Cache:
REDISCACHECONNSTR_
Nota:
Las aplicaciones .NET destinadas a PostgreSQL, centro de notificaciones, Service Bus, centro de eventos, base de datos de documentos y Redis Cache deben establecer la cadena de conexión en Personalizado como solución alternativa para un problema conocido de en .NET EnvironmentVariablesConfigurationProvider.
Por ejemplo, se puede obtener acceso a una cadena de conexión de MySQL denominada connectionstring1 como la variable de entorno MYSQLCONNSTR_connectionString1
. Para obtener pasos específicos de la pila de lenguaje, consulte:
Las cadenas de conexión siempre se cifran cuando se almacenan (cifrado en reposo).
Nota
Las cadenas de conexión se pueden resolver desde Key Vault mediante las referencias de Key Vault.
En Azure Portal, busque y seleccione App Services y luego elija la aplicación.
En el menú de la izquierda de la aplicación, seleccione Variables de entorno>Cadenas de conexión.
De forma predeterminada, los valores de las cadenas de conexión están ocultos en el portal por motivos de seguridad. Para ver un valor oculto de una cadena de conexión, seleccione el campo Valor. Para ver los valores ocultos de todas las cadenas de conexión, seleccione el botón Mostrar valor.
Para agregar una nueva cadena de conexión, seleccione Agregar. Para editar una cadena de conexión, seleccione la cadena de conexión.
En el cuadro de diálogo, puede fijar la cadena de conexión a la ranura actual.
Cuando termine, seleccione Aplicar. No olvide seleccionar Aplicar de nuevo en la página Variables de entorno.
Modificar cadenas de conexión de forma masiva
Seleccione el botón Edición avanzada. Edite las cadenas de conexión en el área de texto. Cuando termine, seleccione Aplicar. No olvide seleccionar Aplicar de nuevo en la página Variables de entorno.
Las cadenas de conexión tienen el formato JSON siguiente:
[
{
"name": "name-1",
"value": "conn-string-1",
"type": "SQLServer",
"slotSetting": false
},
{
"name": "name-2",
"value": "conn-string-2",
"type": "PostgreSQL",
"slotSetting": false
},
...
]
Configurar las opciones de pila de lenguaje
Configurar las opciones generales
En Azure Portal, busque y seleccione App Services y luego elija la aplicación. En el menú izquierdo de la aplicación, seleccione configuración>Configuración general.
En este caso, puede configurar algunas opciones comunes para la aplicación. Algunas configuraciones requieren escalar verticalmente hasta los planes de tarifa superiores.
Configuración de pila: La pila de software para ejecutar la aplicación, incluidos el lenguaje y las versiones del SDK.
En el caso de las aplicaciones de Linux, puede seleccionar la versión de Language Runtime y establecer un comando de startup opcional o un archivo de comandos de startup.
Configuración de plataforma: Le permite configurar opciones para la plataforma de alojamiento, incluidas:
- Valor de bits de plataforma: 32 o 64 bits. Solo para aplicaciones Windows.
- Estado de FTP: permita solo FTPS o deshabilite FTP por completo.
- Versión de HTTP: Establézcala en 2.0 para habilitar la compatibilidad con el protocolo HTTPS/2.
Nota
Los exploradores más modernos admiten el protocolo HTTP/2 sobre TLS únicamente, mientras que el tráfico no cifrado sigue usando HTTP/1.1. Para asegurarse de que los exploradores del cliente se conectan a la aplicación con HTTP/2, proteja el nombre DNS personalizado. Para más información, consulte Protección de un nombre DNS personalizado con un enlace TLS/SSL en Azure App Service.
Sockets web: Para ASP.NET SignalR o socket.io, por ejemplo.
Always On: mantiene la aplicación cargada, incluso cuando no hay tráfico. Cuando Always On no está activado (configuración predeterminada), la aplicación se descarga después de 20 minutos sin ninguna solicitud entrante. La aplicación descargada puede provocar una latencia alta para las nuevas solicitudes debido a su tiempo de preparación. Cuando Always On está activado, el equilibrador de carga front-end envía una solicitud GET a la raíz de la aplicación cada cinco minutos. Es importante asegurarse de que esta solicitud recibe una respuesta 200 OK para asegurarse de que las operaciones de nueva creación de imágenes se realicen de forma correcta. El ping continuo impide que la aplicación se descargue.
Always On es necesario en los WebJobs continuos o WebJobs que se desencadenan mediante una expresión CRON.
Afinidad de sesión: en una implementación de varias instancias, asegúrese de que el cliente esté enrutado a la misma instancia de la vida de la sesión. Puede establecer esta opción en Desactivada para las aplicaciones sin estado.
Proxy de afinidad de sesión: el proxy de afinidad de sesión se puede activar si la aplicación está detrás de un proxy inverso (como Azure Application Gateway o Azure Front Door) y usa el nombre de host predeterminado. El dominio de la cookie de afinidad de sesión se alineará con el nombre de host reenviado desde el proxy inverso.
Solo HTTPS: cuando está habilitado, todo el tráfico HTTP se redirige a HTTPS.
Versión mínima de TLS: seleccione la versión mínima de cifrado TLS requerida por la aplicación.
Depuración: habilite la depuración remota para las aplicaciones ASP.NET, ASP.NET Core o Node.js. Esta opción se desactiva automáticamente después de 48 horas.
Certificados de cliente entrantes: requiera certificados de cliente en autenticación mutua.
Configurar documentos predeterminados
Esta configuración solo es para las aplicaciones de Windows.
El documento predeterminado es la página web que se muestra en la dirección URL raíz de una aplicación App Service. Se usa el primer archivo coincidente en la lista. Si la aplicación usa módulos que se enrutan en función de la dirección URL en lugar de servir contenido estático, no hay necesidad de documentos predeterminados.
En Azure Portal, busque y seleccione App Services y luego elija la aplicación.
En el menú izquierdo de la aplicación, seleccione Configuración>Documentos predeterminados.
Para agregar un documento predeterminado, seleccione Nuevo documento. Para quitar un documento predeterminado, seleccione Eliminar a su derecha.
Asignación de una ruta de acceso URL a un directorio
De forma predeterminada, App Service inicia la aplicación desde el directorio raíz del código de la aplicación. Sin embargo, algunos marcos web no se inician en el directorio raíz. Por ejemplo, Laravel se inicia en el subdirectorio public
. Por ejemplo, en http://contoso.com/public
, se podría acceder a una aplicación de este tipo, pero normalmente, en su lugar, querrá redirigir http://contoso.com
al directorio public
. Si el archivo de startup de la aplicación está en una carpeta diferente, o si el repositorio tiene más de una aplicación, puede editar o agregar aplicaciones y directorios virtuales.
Importante
El directorio virtual a una característica de ruta de acceso física solo está disponible en las aplicaciones de Windows.
En Azure Portal, busque y seleccione App Services y luego elija la aplicación.
En el menú izquierdo de la aplicación, seleccione Configuración>Asignaciones de ruta de acceso.
Seleccione Nueva aplicación o directorio virtual.
- Para asignar un directorio virtual a una ruta de acceso física, deje activada la casilla Directorio. Especifique el directorio virtual y la ruta de acceso relativa (física) correspondiente a la raíz del sitio web (
D:\home
). - Para marcar un directorio virtual como aplicación web, desactive la casilla Directorio.
- Para asignar un directorio virtual a una ruta de acceso física, deje activada la casilla Directorio. Especifique el directorio virtual y la ruta de acceso relativa (física) correspondiente a la raíz del sitio web (
Seleccione Aceptar. No olvide volver a seleccionar Guardar en la página Configuración.
Configuración de asignaciones de controladores
Para aplicaciones de Windows, puede personalizar las asignaciones de controlador de IIS, así como las aplicaciones y directorios virtuales. Las asignaciones de controlador permiten agregar procesadores de script personalizados para controlar solicitudes de extensiones de archivo específicas.
Para agregar un controlador personalizado:
En Azure Portal, busque y seleccione App Services y luego elija la aplicación.
En el menú izquierdo de la aplicación, seleccione Configuración>Asignaciones de ruta de acceso.
Seleccione Nueva asignación de controlador. Configure el controlador de la manera siguiente:
- Extensión. La extensión de archivo que quiere controlar, por ejemplo, *.php o handler.fcgi.
- Procesador de script. La ruta de acceso absoluta del procesador de script. El procesador de script procesa las solicitudes a archivos que coincidan con esta extensión de archivo. Utilice la ruta de acceso
D:\home\site\wwwroot
para hacer referencia al directorio raíz de la aplicación. - Argumentos. Argumentos opcionales de la línea de comandos para el procesador de script.
Seleccione Aceptar. No olvide volver a seleccionar Guardar en la página Configuración.
Configurar contenedores personalizados
- Configuración de un contenedor de Linux personalizado para Azure App Service
- Adición de almacenamiento personalizado para la aplicación en contenedor
Pasos siguientes
- Referencia de variables de entorno y configuración de la aplicación
- Configuración de un nombre de dominio personalizado en Azure App Service
- Configuración de entornos de ensayo en Azure App Service
- Protección de un nombre DNS personalizado con un enlace TLS/SSL en Azure App Service
- Habilitar los registros de diagnóstico
- Escalado de una aplicación en Azure App Service
- Aspectos básicos de supervisión en Azure App Service
- Cambiar la configuración applicationHost.config por applicationHost.xdt