Compartir vía


Migración de Virtual Network personalizada

Nota:

Los planes de Básico, Estándar y Enterprise quedarán en desuso a partir de mediados de marzo de 2025, con un período de retiro de 3 años. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte el anuncio de retirada de Azure Spring Apps.

El plan de consumo estándar y dedicado quedará obsoleto a partir del 30 de septiembre de 2024, con un cierre completo al cabo de seis meses. Se recomienda realizar la transición a Azure Container Apps. Para obtener más información, consulte Migrar el plan de consumo y dedicado Azure Spring Apps Standard a Azure Container Apps.

Este artículo se aplica a: Enterprise ✅ Básico/Estándar ✅

En Azure Spring Apps, puede implementar las aplicaciones dentro de una red virtual administrada. Esta configuración permite una comunicación segura entre las aplicaciones y otros recursos de la red virtual, como bases de datos y otros servicios. Azure Container Apps ofrece una funcionalidad similar, pero con algunas diferencias. En este artículo se exploran estas diferencias y se proporcionan instrucciones sobre cómo crear y administrar entornos de Azure Container Apps con redes virtuales administradas.

Requisitos previos

Creación de un entorno de Azure Container Apps con una red virtual

En Azure Spring Apps, debe configurar dos subredes dentro de una red virtual: una para el entorno de ejecución del sistema y otra para la aplicación de usuario. Esta configuración garantiza el aislamiento y la seguridad para los componentes del sistema y las aplicaciones de usuario. Por otro lado, Azure Container Apps simplifica la configuración de red al requerir solo una subred para la infraestructura dentro de una red virtual.

En Azure Container Apps, la red virtual de infraestructura está aislada de la red virtual del cliente, lo que elimina la necesidad de conceder el permiso de servicio a la red virtual según sea necesario en Azure Spring Apps. Se admiten dos tipos de entornos. Para más información, consulte la sección Tipos de Entornos de Azure Container Apps. Al usar el entorno de perfiles de carga de trabajo, debe actualizar la red virtual para delegar la subred en Microsoft.App/environments. Para obtener más información, consulte la sección Creación de un entorno de Proporcionar una red virtual a un entorno de Azure Container Apps.

Además, los requisitos para intervalos de subredes más pequeños difieren entre los dos servicios.

Para crear un entorno de Azure Container Apps con una red virtual, use el siguiente comando de la CLI de Azure:

az containerapp env create \
    --resource-group $RESOURCE_GROUP \
    --name $ENVIRONMENT \
    --location "$LOCATION" \
    --internal-only true \
    --infrastructure-subnet-resource-id "$INFRASTRUCTURE_SUBNET"

La variable $INFRASTRUCTURE_SUBNET es el identificador de recurso de una subred de la red virtual del cliente, que es para los componentes de infraestructura y los contenedores de aplicaciones de usuario. Para obtener más información, consulte la sección Creación de un entorno de Proporcionar una red virtual a un entorno de Azure Container Apps.

Elegir usar una red virtual de cliente en Azure Container Apps no significa que la aplicación contenedora no pueda aceptar solicitudes públicas. Si desea limitar completamente el acceso solo a la red virtual del cliente, debe establecer el parámetro --internal-only en true. Esta configuración garantiza que no se creen puntos de conexión públicos. Para obtener más información, consulte la sección IP Virtual de Redes en el entorno de Azure Container Apps y Proporcionar una red virtual a un entorno interno de Azure Container Apps.

Migración de aplicaciones a Azure Container Apps

Después de crear un entorno de Azure Container Apps, el siguiente paso es migrar la aplicación a Azure Container Apps. Para obtener más información, vea Asignación de conceptos. Para migrar cada aplicación contenedora de Azure, consulte Información general sobre la migración de aplicaciones y seleccione una imagen de contenedor o un artefacto para el proceso de migración.

Cambiar la configuración de entrada

Azure Container Apps ofrece más opciones para personalizar la configuración de entrada en comparación con Azure Spring Apps. Para obtener más información, consulte Personalización de la configuración de entrada en Azure Spring Apps.

En la tabla siguiente se asignan las propiedades de configuración entre los dos servicios:

Característica Azure Spring Apps Azure Container Apps
Afinidad de sesión ingressSettings.sessionAffinity ingress.stickySessions.affinity
Antigüedad máxima de cookies de sesión ingressSettings.sessionCookieMaxAge EasyAuthConfig.login.cookieExpiration.timeToExpiration
Protocolo de back-end ingressSettings.backendProtocol ingress.transport
Autenticación de cliente ingressSettings.clientAuth ingress.clientCertificateMode
Tiempo de espera de lectura de entrada ingressSettings.readTimeoutInSeconds 240
Tiempo de espera de envío de entrada ingressSettings.sendTimeoutInSeconds 240

Azure Container Apps no permite a los usuarios especificar un valor de tiempo de espera personalizado. En su lugar, aplica un tiempo de espera de solicitud integrado para las solicitudes HTTP, que se limita a 240 segundos. Por lo tanto, si una solicitud supera esta duración, la conexión se finaliza automáticamente para garantizar una administración de recursos eficaz y evitar que las solicitudes de ejecución prolongada monopolicen el sistema.

Azure Container Apps no admite directamente un elemento de configuración de session-max-age. Sin embargo, puede administrar las duraciones y comportamientos de la sesión a través de otras configuraciones relacionadas. Por ejemplo, puede usar la configuración de cookieExpiration en la configuración de EasyAuth para controlar cuánto dura una sesión de autenticación. Esta configuración le permite especificar la duración para la que la cookie de autenticación sigue siendo válida.

Para más información sobre la configuración de entrada proporcionada por Azure Container Apps, consulte Entrada en Azure Container Apps.

Tanto Azure Spring Apps como Azure Container Apps ofrecen formas de generar puntos de conexión accesibles públicamente. En Azure Spring Apps, cada implementación tiene una dirección URL única con fines de prueba durante las implementaciones azul-verde. Del mismo modo, en Azure Container Apps, una etiqueta de revisión proporciona una dirección URL única que puede usar para enrutar el tráfico a la revisión específica a la que está asignada la etiqueta. Para más información, consulte la sección Etiquetas de Actualización e implementación de cambios en Azure Container Apps.

En Azure Spring Apps, el sistema sondea automáticamente el puerto 1025 de las aplicaciones en el plan Básico/Estándar y el puerto 8080 para las aplicaciones del plan Enterprise. Estos sondeos ayudan a determinar si el contenedor de aplicaciones está listo para aceptar el tráfico. Por otro lado, Azure Container Apps ofrece más flexibilidad al permitir a los usuarios especificar el propio puerto de sondeo mediante el parámetro --target-port. Esta configuración proporciona a los usuarios más control sobre la configuración y el comportamiento de su aplicación.

Para actualizar el puerto de destino de entrada de una aplicación contenedora, puede usar el siguiente comando de la CLI de Azure:

az containerapp ingress update \
    --resource-group <resource-group> \
    --name <app-name> \
    --target-port <target-port>

En la lista siguiente se explica cada parámetro:

  • --name: El nombre de la aplicación contenedora.
  • --resource-group: El grupo de recursos que contiene la aplicación contenedora.
  • --target-port: Puerto en el que escucha la aplicación contenedora.

Para más información, consulte la sección Habilitar entrada de Configuración de la entrada para la aplicación en Azure Container Apps.

Cambiar la configuración de salida (UDR)

Tanto Azure Spring Apps como Azure Container Apps ofrecen maneras de controlar el tráfico saliente a través de la característica de traiga su propia tabla de rutas: Rutas definidas por el usuario (UDR) con Azure Firewall. Sin embargo, tome nota de las siguientes diferencias:

  • No es necesario agregar una asignación de roles para un proveedor de recursos de Azure Container Apps.
  • No se requiere una subred dedicada para la subred en tiempo de ejecución del servicio Azure Container Apps.
  • Azure Container Apps proporciona una manera más flexible de admitir UDR. En Azure Container Apps, no es necesario establecer explícitamente la opción --outbound-type en userDefinedRouting al aprovisionar Azure Spring Apps.

Para más información, consulte la sección Rutas de Configuración de subred con la CLI y Control del tráfico saliente en Azure Container Apps con rutas definidas por el usuario.

En Azure Container Apps, solo los perfiles de carga de trabajo del entorno admiten UDR. Además, Azure Container Apps admite la salida a través de NAT Gateway y la creación de puntos de conexión privados en el entorno de la aplicación contenedora.

Para crear un entorno de Azure Container Apps que admita UDR, use el siguiente comando:

az containerapp env create \
    --resource-group $RESOURCE_GROUP \
    --name $ENVIRONMENT \
    --location "$LOCATION" \
    --enable-workload-profiles \
    --infrastructure-subnet-resource-id "$INFRASTRUCTURE_SUBNET"

Establezca el parámetro --enable-workload-profiles en true para habilitar los perfiles de carga de trabajo.

Protección de redes virtuales con grupos de seguridad de red

Tanto Azure Spring Apps como Azure Container Apps ofrecen una sólida compatibilidad, lo que le permite administrar y proteger el tráfico saliente de forma eficaz mediante grupos de seguridad de red (NSG). Las principales diferencias se encuentran en las configuraciones específicas.

Para más información, consulte Protección de una red virtual personalizada en Azure Container Apps con grupos de seguridad de red.

Cambiar la configuración de DNS

Tanto Azure Spring Apps como Azure Container Apps admiten el uso de servidores DNS personalizados en una red virtual del cliente. Se recomienda agregar 168.63.129.16 IP de Azure DNS como servidor DNS ascendente en el servidor DNS personalizado.

Para más información, consulte la sección DNS de Redes en el entorno de Azure Container Apps.

Actualmente, Azure Container Apps en un tipo de entorno de solo consumo no admite cambios en la configuración de DNS de vaciado, como hace Azure Spring Apps. Para más información, consulte Cambios en la configuración de DNS de vaciado en Azure Spring Apps. Sin embargo, el tipo de perfil de carga de trabajo del entorno actualiza automáticamente la configuración de DNS cada 5 minutos.

Azure Container Apps admite la implementación con una zona DNS privada. Para más información, consulte la sección Implementación con un DNS privado de Proporcionar una red virtual a un entorno de Azure Container Apps. Este enfoque proporciona una manera más flexible de admitir la vinculación de una zona DNS privada que el uso de Azure Spring Apps. Para más información, consulte la sección Vinculación de la zona DNS privada con Azure Spring Apps de Acceso a una aplicación en Azure Spring Apps en una red virtual.

Acceso a una aplicación en Azure Container Apps dentro de una red virtual del cliente

Azure Container Apps proporciona Acceso a la red pública y características de Punto de conexión privado para exponer aplicaciones a Internet o protegerlas dentro de una red privada. Del mismo modo, Azure Spring Apps admite estas características, como se describe en los artículos siguientes: