Compartir vía


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.

  1. En Azure Portal, busque y seleccione App Services y luego elija la aplicación.

    Búsqueda de App Services

  2. En el menú de la izquierda de la aplicación, seleccione Variables de entorno>Configuración de la aplicación.

    Captura de pantalla que muestra cómo desplazarse hasta la página 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.

  3. Para agregar una configuración de aplicación, seleccione Agregar. Para editar una configuración, haga clic en la configuración.

  4. 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 como ApplicationInsights__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).

  5. 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.

  1. En Azure Portal, busque y seleccione App Services y luego elija la aplicación.

    Búsqueda de App Services

  2. En el menú de la izquierda de la aplicación, seleccione Variables de entorno>Cadenas de conexión.

    Captura de pantalla que muestra la interfaz de usuario abierta a 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.

  3. Para agregar una nueva cadena de conexión, seleccione Agregar. Para editar una cadena de conexión, seleccione la cadena de conexión.

  4. En el cuadro de diálogo, puede fijar la cadena de conexión a la ranura actual.

  5. 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.

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 general de los contenedores de Linux

  • 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.

  1. En Azure Portal, busque y seleccione App Services y luego elija la aplicación.

  2. En el menú izquierdo de la aplicación, seleccione Configuración>Documentos predeterminados.

    Documentos predeterminados

  3. 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.

  1. En Azure Portal, busque y seleccione App Services y luego elija la aplicación.

  2. En el menú izquierdo de la aplicación, seleccione Configuración>Asignaciones de ruta de acceso.

  3. 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.

    Casilla Directorio

  4. 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:

  1. En Azure Portal, busque y seleccione App Services y luego elija la aplicación.

  2. En el menú izquierdo de la aplicación, seleccione Configuración>Asignaciones de ruta de acceso.

    Asignaciones de ruta de acceso

  3. 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.
  4. Seleccione Aceptar. No olvide volver a seleccionar Guardar en la página Configuración.

Configurar contenedores personalizados

Pasos siguientes