Migrar de Functions on Azure Container Apps V1 a Functions on Azure Container Apps V2

Utiliza esta guía para pasar del modelo heredado Functions on Azure Container Apps V1 al modelo recomendado Functions on Azure Container Apps V2. Aprenderá por qué migrar, qué cambios y cómo ejecutar la transición con un riesgo mínimo.

Nota:

Utiliza el asistente de migración de Azure Functions en Azure Container Apps v1 para ayudar a migrar tus aplicaciones de funciones del modelo v1 al modelo v2.

Puede hospedar Azure Functions en Azure Container Apps mediante dos modelos de implementación:

  • Funciones en Azure Container Apps V1: Modelo proxy heredado que utiliza una Function App (Microsoft.Webproveedor de recursos) más una aplicación de contenedor detrás de cámaras.

  • Funciones en Azure Container Apps V2: Modelo nativo que crea un único recurso de Azure Container App (Microsoft.App) con kind=functionapp.

Cuando pasas a Functions en Azure Container Apps V2, simplificas la gestión, desbloqueas funciones nativas y te alineas con la hoja de ruta futura de Azure Functions.

Comparación de modelos

Area Funciones en Azure Container Apps V1 (heredado) Funciones en Azure Container Apps V2 (recomendado)
Modelo de recursos Aplicación de funciones de proxy emparejada con una aplicación contenedora oculta Aplicación de contenedor nativa única (kind=functionapp)
Características nativas

(revisiones, secretos, comprobaciones de estado, dominios personalizados, sidecars)
No está soportado Compatible
Controles de escalado

(tiempo de espera, intervalo de sondeo)
Limitado Opciones de escalado de aplicaciones de contenedor completas
Registro y solución de problemas Indirecto. Sin consola activa Directo. Incluye registros activos y diagnósticos
Integración de Dapr Problemático en algunos escenarios de .NET aislados Soportado con patrones estándar
Autenticación (autenticación sencilla) No disponible Disponible
Certificados y dominios personalizados No disponible Disponible
Métricas y alertas Básico Métricas y alertas nativas completas
Plan de desarrollo futuro

(lista de funciones, claves, recuento de invocaciones)
No planeado Programado
Complejidad operativa Administración de recursos duales Recurso único
Recomendado para nuevas implementaciones No Sí

Limitaciones de Functions en Azure Container Apps V1

Las funciones en Azure Container Apps V1 tienen varias limitaciones que afectan a la escalabilidad, la gestión y la disponibilidad de funciones. Comprender estas restricciones ayuda a aclarar los beneficios de migrar a Funciones en Azure Container Apps V2.

Diferencias de funcionalidades

Las siguientes características no están disponibles para Functions en aplicaciones V1 de Azure Container Apps:

  • Autenticación sencilla
  • Comprobaciones de salud
  • Dominios personalizados
  • Contenedores sidecar
  • Certificados administrados
  • Secretos de la aplicación de contenedores
  • Configuración de escala pormenorizada
  • División de tráfico de multirevisión

Solución de problemas de restricciones

Con las aplicaciones V1 de Functions en Azure Container Apps, no se tiene acceso directo al contenedor ni salida de consola en tiempo real. En su lugar, utiliza Log Analytics para diagnósticos de infraestructura y Application Insights para registros de aplicaciones.

Problemas de integración de Dapr

Las funciones aisladas de Dapr y .NET pueden entrar en conflicto durante la compilación o el entorno de ejecución debido a restricciones de ordenación de dependencia e inicialización.

Beneficios de las funciones en Azure Container Apps v2

Functions on Azure Container Apps V2 crea directamente un recurso nativo de aplicación contenedor. Este enfoque elimina la indirección de proxy y habilita todas las funcionalidades de Azure Container Apps.

Ventajas clave:

  • Habilite Easy Auth para la descarga de identidades.
  • Configure sondeos de salud para mejorar la resiliencia.
  • Establezca dominios personalizados y use certificados administrados.
  • Reduzca la sobrecarga operativa con un único recurso.
  • Almacene secretos de forma nativa y monte contenedores sidecar.
  • Obtenga métricas, alertas y streaming de registros en vivo más claras.
  • Utilice implementaciones de múltiples revisiones y divida el tráfico de manera segura.
  • Aplicar reglas de escalado pormenorizadas (intervalo de sondeo, enfriamiento).

Nota:

No se requiere ningún cambio de código. Puede reutilizar la imagen de contenedor existente.

Implementación de imágenes directas heredadas (no admitida)

Algunas implementaciones usan una aplicación de contenedor estándar sin kind=functionapp y ejecutan manualmente una imagen de Functions.

Importante

Este enfoque no se admite. No dispone de reglas de escalado automáticas y no recibe las próximas funciones de la plataforma Azure Container Apps V2 como listado de funciones, teclas y conteos de invocaciones.

Recomendación: Migrar a funciones en Azure Container Apps v2.

Prerrequisitos

Antes de migrar:

  • Suscripción y permiso de Azure para crear recursos.
  • [CLI de Azure](/cli/azure/install-azure-cli-windows?view=azure-cli-latest (última versión) instalado.
  • Extensiones necesarias: az extension add --name containerapp, az extension add --name functionapp (si procede).
  • Acceso a la imagen del contenedor utilizada por tus funciones en el despliegue de Azure Container Apps V1.
  • Inventario de variables de entorno, secretos, enlaces de almacenamiento y configuración de red.

Procedimiento de migración

1. Preparar

  1. Identifica que tu despliegue actual es una aplicación Functions on Azure Container Apps V1.
  2. Exporte todos los datos de configuración, incluidas las variables de entorno, los secretos, las cadenas de conexión y los enlaces personalizados.
  3. Revise las cuotas de entorno (CPU, memoria, instancias máximas) y ajuste si es necesario.
  4. Confirme la disponibilidad de imágenes en el registro.

2. Crear funciones en Azure Container Apps v2 app

  1. Cree o reutilice un entorno de Azure Container Apps.

  2. Implementar una nueva aplicación de Functions en Azure Container Apps V2 con la misma imagen.

    az containerapp create \
      --name my-func-v2 \
      --resource-group <RESOURCE_GROUP_NAME> \
      --environment <ENVRONMENT_NAME> \
      --image myregistry.azurecr.io/<IMAGE_NAME>:<TAG_NAME> \
      --kind functionapp \
      --ingress external --target-port <TARGET_PORT>
    
  3. Vuelva a aplicar los detalles de configuración, incluidos los secretos, las variables de entorno, la identidad y las redes.

  4. Habilite la autenticación o el dominio personalizado si es necesario.

  5. Defina las reglas de escalado (HTTP, CPU, correlación del desencadenador de cola según corresponda).

3. Validar

  1. Invocar funciones desencadenadas por HTTP (curl o explorador).

  2. Pruebe cada tipo de desencadenador (Event Hubs, Service Bus, temporizador).

  3. Confirme la telemetría de Application Insights y los registros de análisis de Log Analytics.

  4. Compruebe el comportamiento de escalado bajo carga (activación de reglas de escalado automático).

  5. Compruebe que los secretos y las cadenas de conexión se resuelven correctamente.

  6. Verifique el estado del sondeo de salud y los detalles de revisión del contenedor.

4. Actualizar DNS o dominios personalizados (opcional)

  1. Si usas un dominio personalizado, asícialo al nombre de host nuevo de Functions on Azure Container Apps V2 (CNAME o registro A).

  2. Volver a enlazar los certificados SSL/TLS (gestionados o cargados).

  3. Pruebe la resolución de dominio y el protocolo de enlace TLS.

  4. Comunicar los cambios de punto de conexión internamente.

5. Migrar

  1. Cambie el tráfico de producción (actualice las reglas de enrutamiento o TTL de DNS).

  2. Monitorear la latencia, los errores y los recuentos de invocaciones.

  3. Ajuste los parámetros de escalado si es necesario (periodo de enfriamiento, instancias mínimas/máximas).

  4. Realice un seguimiento de los registros de anomalías durante las primeras horas.

6. Limpiar

  1. Desactiva las antiguas funciones en la app Azure Container Apps V1 y recursos relacionados.

    Precaución

    Verifica que ningún tráfico de producción siga apuntando a las Funciones en el endpoint de Azure Container Apps V1 antes de eliminarlo.

  2. Quite secretos o referencias de almacenamiento no usadas.

  3. Actualice la documentación interna y los runbooks operativos.

Lista de comprobación de validación

Elemento Criterios de paso
Los desencadenadores se activan Todos los desencadenadores configurados se ejecutan correctamente
Registros y telemetría Application Insights muestra invocaciones; transmisión de registros en vivo
Scaling El recuento de instancias se ajusta por configuración de regla
Autenticación (si está habilitada) Los puntos de conexión protegidos devuelven códigos de estado esperados
Dominios El dominio personalizado se soluciona con un certificado válido
Secrets Los valores confidenciales se cargan sin errores

Mejoras operativas (opcional)

Mejora de la confiabilidad después de la migración: