Migración de aplicaciones del plan de consumo al plan de consumo flexible

En este artículo se muestra cómo migrar las aplicaciones de funciones existentes del plan de consumo al plan de consumo flexible. Para la mayoría de las apps, esta migración es sencilla. Las aplicaciones que migran desde Windows también deben ser compatibles con Linux y pueden requerir cambios de código.

Importante

La compatibilidad con el hospedaje de aplicaciones de funciones en Linux en un plan de consumo se retira el 30 de septiembre de 2028. A partir de hoy, no se están realizando mejoras de características ni de lenguaje en el plan de Consumo para Linux. Siga este artículo para migrar las aplicaciones del plan de consumo para que se ejecuten en su lugar en el plan de consumo flexible. Para obtener más información sobre las fechas de finalización del soporte técnico del plan de Consumo para Linux, consulte Hosting del plan de Consumo de Azure Functions (heredado).

Métodos de migración

En este artículo se admite la migración a una aplicación de funciones de Linux en un plan de consumo flexible para aplicaciones linux y Windows. Functions proporciona varias maneras de simplificar la mayoría de los pasos de migración, especialmente para aplicaciones Linux.

En la tabla siguiente se muestran los métodos de migración disponibles para cada sistema operativo y se tratan en este artículo.

Método de migración Descripción Linux Windows
Azure Skills en GitHub Copilot Deja que Copilot guíe y automatize tu migración de forma interactiva. ✅ ✅
Comando de migración de la CLI Use az functionapp flex-migration para automatizar la migración. ✅ ❌
Comandos de la CLI estándar Migración paso a paso mediante comandos CLI de Azure. ➖ ✅
Azure Portal Migración paso a paso en el portal de Azure. ✅ ✅
Infraestructura como código Cree código de migración repetible mediante plantillas de ARM, archivos Bicep o Terraform. ➖ ➖

✅ Admitido y destacado | ➖ Admitido, no destacado | ❌ No admitido

Para ver las instrucciones adecuadas para la aplicación, seleccione el sistema operativo en la parte superior del artículo.

Puedes revisar el flujo de trabajo de migración de Linux Consumption y el flujo de trabajo de migración de Windows Consumption en el repositorio de habilidades de Azure.

Qué cabe esperar

Los pasos específicos necesarios para migrar la aplicación plan de consumo dependen del sistema operativo y del método de migración específico:

Configura GitHub Copilot usando los requisitos previos y luego usa las indicaciones en Iniciar la migración. Copilot te guía en la evaluación, preparación del código de Windows a Linux, creación y configuración del entorno de destino, despliegue, validación y transición a producción. Te pide tu opinión o aprobación cuando lo necesita.

Las siguientes secciones explican las tareas de comprobación y migración para referencia. No necesitas realizar los pasos manuales de CLI o portal cuando sigues el flujo de trabajo de Copilot.

Copilot mantiene la aplicación de origen en modo solo lectura durante la evaluación y la replicación. Los cambios en los disparadores de origen, configuración, estado de la app o recursos requieren aprobación explícita para la acción específica.

Independientemente del método de migración, estos son los principios generales de la migración:

  • Comprueba la compatibilidad del código. Las aplicaciones de Linux en una versión de lenguaje compatible no suelen necesitar cambios en el código. Las aplicaciones de Windows también deben eliminar dependencias específicas de Windows antes de ejecutarse en Linux. Esta guía le ayuda a comprobar.
  • Debe crear una nueva aplicación. El proceso de migración crea una nueva aplicación Flex Consumption junto con la existente, por lo que puede probar antes de cambiar.
  • Use el mismo grupo de recursos. La nueva aplicación se ejecuta en el mismo grupo de recursos con acceso a las mismas dependencias.
  • Controla el tiempo. Pruebe la nueva aplicación exhaustivamente antes de redirigir el tráfico y retirar el antiguo.

Nota:

Si usa Azure Government, Flex Consumption aún no está disponible allí. Revise esta guía ahora para que esté listo cuando esté disponible.

Ventajas de migrar al consumo flexible

Cuando migras una aplicación compatible, tus funciones obtienen estos beneficios:

  • Arranques en frío más rápidos: las instancias siempre listas significan que las funciones responden con mayor rapidez.
  • Mejor escalado: los controles de escalado por función y simultaneidad te ofrecen más control.
  • Compatibilidad con redes virtuales: conecte las funciones a redes privadas y use puntos de conexión privados.
  • Inversión activa: Flex Consumption es donde primero llegan nuevas características y mejoras.

Para obtener más información, consulte Flex Consumption plan benefits and hosting plan comparison( Ventajas del plan de consumo flexible y comparación de planes de hospedaje).

Implementaciones basadas en recursos

En este artículo no se muestra explícitamente cómo usar la infraestructura como código (IaC) para la migración. Sin embargo, puede seguir los mismos pasos de migración para convertir las plantillas de ARM, los archivos Bicep y las configuraciones de Terraform.

El plan de consumo flexible presenta una nueva sección functionAppConfig de la definición de recursos Microsoft.Web/sites, que reemplaza varias configuraciones de aplicación heredadas. Para obtener más información sobre estos cambios, consulte Desusos del plan de Consumo flexible.

Estos recursos pueden ayudarle a empezar a trabajar con implementaciones de recursos de Flex Consumption:

Después de una migración correcta, actualice los archivos de implementación de recursos para que coincidan con la nueva configuración de Flex Consumption.

Prerrequisitos

  • Acceso a la suscripción de Azure que contiene una o varias aplicaciones de funciones que se van a migrar. La cuenta usada para realizar las tareas de migración debe tener los permisos siguientes:

    • Cree y administre aplicaciones de funciones y planes de hospedaje de App Service.
    • Asignar roles a identidades administradas.
    • Cree y administre cuentas de almacenamiento.
    • Cree y administre recursos de Application Insights.
    • Acceda a todos los recursos dependientes de la aplicación, como Azure Key Vault, Azure Service Bus o Azure Event Hubs.

    La asignación de los roles Propietario o Colaborador en el grupo de recursos suele proporcionar permisos suficientes.

  • Para migrar mediante el CLI de Azure o la GitHub Copilot:

    • CLI de Azure, versión 2.77.0 o posterior. Obligatorio al usar comandos de CLI de Azure. Los scripts se prueban mediante CLI de Azure en Azure Cloud Shell.
    • Inicie sesión en CLI de Azure ejecutando az login. Asegúrese de que ha iniciado sesión en la suscripción que contiene las aplicaciones de funciones que desea migrar.
    az extension add --name resource-graph
    
  • Para migrar mediante GitHub Copilot, configure GitHub Copilot en el modo deseado:

    1. Instalación de la CLI de Copilot

    2. Inicie sesión en CLI de Azure si aún no lo ha hecho:

      az login
      

      Asegúrese de que ha iniciado sesión en la suscripción que contiene las aplicaciones de funciones que desea migrar.

    3. Inicie la CLI de Copilot:

      copilot
      
    4. Agregue la fuente del marketplace (solo la primera vez):

      /plugin marketplace add microsoft/azure-skills
      
    5. Instale el complemento:

      /plugin install azure@azure-skills
      
    6. Después de la instalación, vuelva a cargar los servidores del Protocolo de contexto de modelo (MCP):

      /mcp reload
      
    7. Compruebe la instalación:

      /mcp show
      

      Debería ver que el complemento de Azure aparece con una marca de verificación. La functionapp herramienta forma parte de este complemento.

    Sugerencia

    Si Copilot tiene como destino la suscripción incorrecta, pídale que use un identificador de suscripción específico. Para encontrar el identificador de suscripción, ejecute az account show --query id -o tsv. Si Copilot se conecta al inquilino de Azure incorrecto, pida a Copilot que use su identificador de inquilino específico al realizar llamadas Azure. Para encontrar el identificador de inquilino, ejecute az account show --query tenantId -o tsv.

Identificación de las aplicaciones potenciales que se van a migrar

Sugerencia

¿Ya sabe qué aplicación se va a migrar? Puede omitir esta sección y ir directamente a Evaluar la aplicación existente.

Si tiene varias aplicaciones de función y no está seguro de cuáles deben migrarse, esta sección le ayuda a encontrarlos. Obtendrá una lista de nombres de aplicación, grupos de recursos, ubicaciones y pilas en tiempo de ejecución.

Para iniciar una migración interactiva que examine la suscripción y le pida que elija qué aplicaciones migrar, use este mensaje:

migrate my linux function apps in azure from consumption to flex consumption

Copilot identifica las aplicaciones de consumo de Linux aptas, le permite elegir cuáles se van a migrar y, a continuación, le guía por la evaluación, la creación de aplicaciones, la configuración y la implementación de cada aplicación. Continúe con los pasos de migración.

Si solo desea ver qué aplicaciones son compatibles sin iniciar la migración, use este comando en su lugar:

list my linux consumption apps eligible for flex consumption migration

Copilot devuelve una lista de aplicaciones aptas e inelegibles, junto con las razones de cualquier incompatibilidad. Después, puede migrar una aplicación específica utilizando el aviso en Iniciar la migración para Linux.

Para identificar las aplicaciones de Windows Consumption en tu suscripción sin iniciar una migración, utiliza este prompt:

What Windows Consumption Function Apps can I upgrade to Flex Consumption?

Copilot detecta aplicaciones candidatas y comprueba su región, tiempo de ejecución, configuración de despliegue y otros requisitos de compatibilidad. El descubrimiento identifica candidatos, no garantiza que cada aplicación esté lista para migrar. Revisa la evaluación antes de continuar.

Para migrar una aplicación específica, utilice la indicación de Iniciar la migración.

Evaluación de la aplicación existente

La habilidad de Azure realiza estas tareas automáticamente. Al usar la aptitud Azure, vaya directamente a Iniciar la migración.

Antes de migrar, ejecute esta lista de comprobación rápida para asegurarse de que la aplicación está lista. La mayoría de las aplicaciones pasan estas comprobaciones sin problemas:

Al usar Copilot, solicita una evaluación sin crear una aplicación objetivo:

Assess whether my Windows Consumption Function App <APP_NAME> is ready to migrate to Flex Consumption.

Sustituye <APP_NAME> por el nombre de tu app de origen. Copilot genera una evaluación de compatibilidad y registra los bloqueadores y la preparación necesaria. Para aplicaciones de Windows, también comprueba las dependencias de código específicas de Windows.

Confirmación de la compatibilidad de regiones

Confirme que el plan de Flex Consumption actualmente está soportado en la misma región que la aplicación del plan de consumo que quiere migrar.

Confirmado: Cuando la salida del comando az functionapp flex-migration list o la evaluación de Copilot incluye su aplicación en la lista eligible_apps, el plan de Flex Consumption es compatible en la misma región utilizada por su aplicación actual de Linux Consumption. En este caso, puede continuar para Comprobar la compatibilidad de la pila de idiomas.

Acción necesaria: Cuando la salida incluye la aplicación en la ineligible_apps lista, verá un mensaje de error que indica The site '<name>' is not in a region supported in Flex Consumption. Please see the list of regions supported in Flex Consumption by running az functionapp list-flexconsumption-locations. En este caso, el plan Flex Consumption no se admite en la región que usa la aplicación Linux Consumption actual.

Copilot comprueba si Flex Consumption está disponible en la región de la app de origen y registra el resultado en la evaluación. Si la región no está soportada, resuelve la elección de ubicación antes de crear la aplicación objetivo.

Si su región no está actualmente admitida y aún así decide migrar su aplicación de función, la aplicación debe ejecutarse en otra región donde se admita el Flex Consumption plan. Sin embargo, ejecutar la aplicación en una región diferente de otros servicios conectados puede introducir una latencia adicional. Asegúrese de que la nueva región puede cumplir los requisitos de rendimiento de la aplicación antes de completar la migración.

Comprobación de la compatibilidad de la pila de idiomas

Los planes de Consumo flexible no son compatibles con todas las pilas de lenguajes de funciones. Esta tabla indica qué stacks de idiomas se admiten actualmente.

Configuración de pila Nombre de pila Compatible
dotnet-isolated .NET (modelo de trabajo aislado) ✅ Sí
node JavaScript/TypeScript ✅ Sí
java Java ✅ Sí
python Python ✅ Sí
powershell PowerShell ✅ Sí
go Go ✅ Sí
dotnet .NET (modelo en proceso) ❌ No
custom Controladores personalizados ✅ Sí

Confirmado: Si el comando az functionapp flex-migration list o la evaluación de Copilot incluyeron su aplicación en la lista de eligible_apps, la aplicación de consumo de Linux ya utiliza un stack de lenguajes admitido por Flex Consumption y puede proceder a Verificar la compatibilidad de la versión del stack.

Acción necesaria: Si la salida incluyó tu aplicación de Consumo de Linux en la ineligible_apps lista con un mensaje de error que indica Runtime '<name>' not supported for function apps on the Flex Consumption plan., tu aplicación de Consumo de Linux no está ejecutando un runtime compatible con Flex Consumption.

Si la aplicación de funciones utiliza un entorno de ejecución no compatible:

Copilot lee el entorno de ejecución de origen y la versión del host de Functions durante la evaluación. Un runtime del trabajador no compatible o una versión del host de Functions distinta de la versión 4 requiere preparación antes de la migración.

Comprobación de la compatibilidad de la versión de la pila

Antes de migrar, asegúrese de que se admite la versión de la pila de ejecución de la aplicación cuando se ejecuta en un plan de Consumo flexible en la región actual.

Confirmado: Si el comando az functionapp flex-migration list o la evaluación de Copilot incluye su aplicación en la lista eligible_apps, su aplicación de Consumo para Linux ya usa una versión del conjunto de lenguajes compatible con Consumo flexible y puede seguir a Verificar el uso de los espacios de implementación.

Acción necesaria: Si la salida incluye tu aplicación en la ineligible_apps lista con un mensaje de error que indica Invalid version {0} for runtime {1} for function apps on the Flex Consumption plan. Supported versions for runtime {1} are {2}., tu aplicación de Consumo de Linux no ejecuta un runtime compatible con Flex Consumption.

Copilot compara la versión en el idioma original con las versiones soportadas por Flex Consumption en la región objetivo. Utiliza metadatos del proyecto o del paquete de despliegue cuando falta o es ambigua la configuración de Azure, y te pide que selecciones una versión objetivo cuando la evidencia no identifica una única versión compatible.

Si su aplicación de funciones utiliza una versión de stack de lenguaje no compatible, primero actualice su código de aplicación a una versión compatible antes de migrar al plan de consumo flexible.

Verificar el uso de espacios de implementación

Las aplicaciones del plan de consumo pueden tener un slot de implementación definido. Para obtener más información, consulte Ranuras de implementación de Azure Functions. Sin embargo, el plan de consumo flexible no admite actualmente ranuras de implementación. Antes de migrar, determine si la aplicación tiene una ranura de implementación. Si es así, defina una estrategia para administrar su aplicación sin espacios de implementación al ejecutarse en un plan de Consumo flexible.

Confirmado: Cuando la aplicación actual tiene ranuras de implementación habilitadas, el comando az functionapp flex-migration list o la evaluación de Copilot muestra la función de aplicación en la lista eligible_apps sin mostrar advertencias. Continúe con Comprobar el uso de certificados.

Acción requerida: Tu aplicación actual tiene slots de implementación habilitados, y la salida muestra tu aplicación de funciones en la eligible_apps lista pero agrega una advertencia que indica: The site '<name>' has slots configured. This condition doesn't block migration, but please note that slots aren't supported in Flex Consumption.

Copilot detecta las ranuras de despliegue de origen y las registra en la evaluación. Dado que Consumo flexible no admite ranuras, elige cómo consolidar su funcionalidad o utiliza aplicaciones independientes antes de continuar.

Si la aplicación de funciones usa actualmente ranuras de implementación, actualmente no puede reproducir esta funcionalidad en el plan de consumo flexible. Antes de migrar, tenga en cuenta las siguientes opciones:

  • Rediseñe la aplicación para usar aplicaciones de funciones independientes. De este modo, puede desarrollar, probar e implementar el código de función en una segunda aplicación que no sea de producción en lugar de usar ranuras.
  • Migre cualquier código o función nueva desde el slot de implementación al slot principal (producción).

Comprobación del uso de certificados

El plan Flex Consumption soporta certificados TLS/SSL mediante un modelo de certificado con alcance de sitio. A diferencia de otros planes de hospedaje en los que los certificados se comparten entre aplicaciones de la misma región y grupo de recursos, los certificados de consumo flexible se limitan a cada aplicación individual. Si la aplicación existente usa certificados, tenga en cuenta estas diferencias:

  • La configuración de aplicación WEBSITE_LOAD_CERTIFICATES no se usa en el plan Flex Consumption. En cambio, puede hacer accesible cada certificado al código con el conmutador Accesible para el código de la aplicación en el portal. Para obtener más información, consulte Hacer que un certificado sea accesible para el código.
  • Dado que flex Consumption se ejecuta en Linux, el código debe cargar certificados desde rutas de acceso de archivo (/var/ssl/certs para público, /var/ssl/private para privado) en lugar de desde el almacén de certificados de Windows.
  • Cada aplicación admite un máximo de tres certificados privados y tres certificados públicos (.cer).

Confirmado: Si el comando az functionapp flex-migration list o la evaluación de Copilot incluye su aplicación en la lista eligible_apps, su aplicación Linux Consumption es compatible y puede continuar para comprobar sus desencadenadores de Blob Storage. Si la aplicación usa certificados, debe agregarlos a la nueva aplicación después de la migración.

Acción requerida: Si la salida incluye su aplicación en la lista ineligible_apps con un error relacionado con certificados, revise las consideraciones sobre certificados con ámbito de sitio y compruebe que su aplicación puede funcionar dentro de los límites de los certificados.

Copilot cataloga los certificados utilizados por la aplicación de origen y comprueba los límites de certificados con alcance del sitio. No transfiere automáticamente los certificados. Vuelve a añadir los certificados necesarios utilizando el proceso de certificado con alcance de sitio y actualiza el código que lee el almacén de certificados de Windows para usar rutas de archivos de certificados de Linux.

Si la aplicación usa certificados, planee volver a agregarlos a la nueva aplicación Flex Consumption después de la migración mediante el proceso de certificado con ámbito de sitio. Asegúrese de que las necesidades de certificado de la aplicación se ajusten a los límites de ámbito de sitio (3 privados + 3 públicos por aplicación).

Comprobación de los desencadenadores de Blob Storage

Actualmente, el plan de Consumo flexible solo admite desencadenadores basados en eventos para Azure Blob Storage, que se definen con una configuración Source de EventGrid. El plan no admite desencadenadores de Blob Storage que utilicen sondeo de contenedores y usen una configuración Source de LogsAndContainerScan. Dado que el sondeo de contenedores es el valor predeterminado, debe determinar si alguno de los desencadenadores de Blob Storage usa la configuración de origen predeterminada LogsAndContainerScan . Para más información, consulte Desencadenador en un contenedor de blobs.

Confirmado: Si el comando az functionapp flex-migration list o la evaluación de Copilot incluye tu aplicación en la lista eligible_apps, tu aplicación de Consumo para Linux no está utilizando desencadenadores de sondeo de almacenamiento Blob. Puede seguir considerando los servicios dependientes.

Acción necesaria: Si la salida incluye su aplicación en la lista ineligible_apps con un mensaje de error indicando The site '<name>' has blob storage triggers that don't use Event Grid as the source: <list> Flex Consumption only supports Event Grid-based blob triggers. Please convert these triggers to use Event Grid or replace them with Event Grid triggers before migration., su aplicación de consumo de Linux no es compatible con Flex Consumption.

Copilot identifica los enlaces de desencadenador Blob por tipo y marca cualquier desencadenador cuya fuente no sea explícitamente EventGrid. Guía el cambio de código requerido y la configuración de la suscripción a eventos antes del despliegue.

Si su aplicación tiene desencadenadores de Blob Storage que no tienen un origen de Event Grid, debe cambiar a un origen de Event Grid antes de migrar al plan de Consumo Flexible.

Importante

Antes de convertir un disparador de Blob de sondeo, verifica que Event Grid pueda alcanzar el endpoint de entrega de eventos de la aplicación de función objetivo. La entrega push de Event Grid no soporta la entrega a través de endpoints privados. Si el objetivo es solo privado, resuelve la arquitectura de entrega de eventos antes de la migración; la integración de red virtual por sí sola no proporciona conectividad entrante desde Event Grid.

Los pasos básicos para cambiar un desencadenador de Blob Storage existente a un origen de Event Grid son:

  1. Agregue o actualice la propiedad source en la definición del desencadenador de Blob Storage a EventGrid y vuelva a implementar la aplicación.

  2. Constrúyase la URL del punto de conexión en la aplicación de funciones que se utilizará para la suscripción de eventos.

  3. Cree una suscripción de eventos en el contenedor de Blob Storage.

Para más información, consulte Tutorial: Desencadenamiento de Azure Functions en contenedores de blobs mediante una suscripción de eventos.

Comprueba dependencias de código específicas de Windows

Flex Consumption funciona en Linux. Revisa tu app para detectar las API exclusivas de Windows, paquetes, binarios nativos, rutas específicas de Windows y suposiciones sobre mayúsculas y minúsculas, módulos PowerShell y acceso al almacén de certificados de Windows. Las aplicaciones dirigidas a .NET Framework o publicadas para un identificador de ejecución de Windows también requieren preparación.

Flex Consumption no soporta dependencias gestionadas por PowerShell. Antes de migrar, empaqueta todos los módulos de PowerShell necesarios con tu aplicación en su carpeta raíz Modules y verifica que esos módulos soportan Linux. Un requirements.psd1 archivo por sí solo no instala módulos en la app de destino. Para más información, consulta la gestión de dependencias de PowerShell.

Durante la evaluación, Copilot ofrece un escaneo heurístico de dependencias. Proporciona un directorio de fuentes local o un repositorio clonado cuando sea posible. Si el código fuente no está disponible, Copilot puede recuperar el paquete desplegado, pero los artefactos compilados pueden limitar la cobertura de escaneo. El escaneo no es exhaustivo y tú eres responsable de verificar la compatibilidad con Linux.

Compila y valida cualquier cambio de código necesario antes de desplegar en la nueva aplicación. Si no puedes eliminar las dependencias necesarias de Windows, considera el plan Premium en Windows en lugar de Flex Consumption.

Consideración de los servicios dependientes

Sugerencia

¿Aplicación sencilla de solo HTTP? Si las funciones solo usan desencadenadores HTTP y no se conectan a otros servicios de Azure, es probable que omita la mayoría de esta sección. Recuerde actualizar los clientes para que apunten a la dirección URL de la nueva aplicación después de la migración.

Dado que Azure Functions es un servicio de proceso, tenga en cuenta el efecto de la migración en los datos y los servicios tanto ascendentes como descendentes de la aplicación.

Estrategias de protección de datos

Para proteger los datos ascendentes y descendentes durante la migración, use estas estrategias:

  • Idempotency: asegúrese de que las funciones pueden procesar de forma segura el mismo mensaje varias veces sin efectos secundarios negativos. Para obtener más información, consulte Diseño de funciones de Azure para entradas idénticas.
  • Registro y supervisión: para realizar un seguimiento del procesamiento de mensajes, habilite el registro detallado en ambas aplicaciones durante la migración. Para obtener más información, consulte Supervisar ejecuciones en Azure Functions.
  • Control de puntos de control: para los desencadenadores de streaming, como el desencadenador de Event Hubs, implemente los comportamientos de punto de control correctos para realizar un seguimiento de la posición de procesamiento. Para obtener más información, consulte Azure Functions procesamiento de eventos confiables.
  • Procesamiento paralelo: considere la posibilidad de ejecutar temporalmente ambas aplicaciones en paralelo durante la transición. Asegúrese de supervisar y validar cuidadosamente cómo se procesan los datos desde el servicio ascendente. Para obtener más información, consulte Soluciones personalizadas de varias regiones para lograr resistencia.
  • Transición gradual: en el caso de los sistemas de gran volumen, considere la posibilidad de implementar una transición gradual mediante la redirección de partes del tráfico a la nueva aplicación. Puede administrar el enrutamiento de solicitudes ascendentes desde las aplicaciones mediante servicios como Azure API Management o Azure Application Gateway.

Mitigaciones por tipo de desencadenador

Planifique estrategias de mitigación para proteger los datos de los desencadenadores de funciones específicos de su aplicación.

Desencadenador Riesgo para los datos Estrategia
Azure Blob Storage Alto Cree un contenedor independiente para el desencadenador basado en eventos en la nueva aplicación.
Con la nueva aplicación en ejecución, cambie los clientes para que usen el nuevo contenedor.
Permitir que el contenedor original se procese completamente antes de detener la aplicación antigua.
Azure Cosmos DB Alto Cree un contenedor de concesión dedicado específicamente para la nueva aplicación.
Establezca este nuevo contenedor de concesión como configuración leaseCollectionName en la nueva aplicación.
Requiere que las funciones sean idempotentes o que pueda controlar los resultados del procesamiento duplicado de la fuente de cambios.
Establezca la configuración StartFromBeginning en false en la nueva aplicación para evitar volver a procesar toda la fuente.
Azure Event Grid Media Vuelva a crear la misma suscripción de eventos en la nueva aplicación.
Requiere que las funciones sean idempotentes o que puedas controlar los resultados del procesamiento de eventos duplicados.
Azure Event Hubs Media Cree un nuevo grupo de consumidores para usarlo en la nueva aplicación. Para más información, consulte Estrategias de migración para desencadenadores de Event Grid.
Azure Service Bus Alto Cree un tema o una cola nuevos para usarlos en la nueva aplicación.
Actualice remitentes y clientes para usar el nuevo tema o cola.
Después de que el tema original esté vacío, cierre la aplicación antigua.
Cola de Azure Storage Alto Cree una nueva cola que sea utilizada por la nueva aplicación.
Actualice los remitentes y clientes para usar la nueva cola.
Después de que la cola original esté vacía, cierre la aplicación antigua.
HTTP Bajo Recuerde cambiar los clientes y otras aplicaciones o servicios para que tengan como destino los nuevos puntos de conexión HTTP después de la migración.
Temporizador Bajo Durante la migración, asegúrese de desplazar la programación del temporizador entre las dos aplicaciones para evitar ejecuciones simultáneas de ambas aplicaciones.
Deshabilite el desencadenador de temporizador en la aplicación anterior después de que la nueva aplicación se ejecute correctamente.

Tareas anteriores a la migración

Antes de crear la nueva aplicación Flex Consumption, recopile información sobre la aplicación actual. Este paso garantiza que no pierda ninguna configuración durante la transición.

Cuando utilizas Copilot, la habilidad realiza un inventario de esta configuración como parte del flujo de trabajo de migración. Revisa sus hallazgos y decisiones en lugar de ejecutar los comandos manuales de nuevo.

Sugerencia

Este paso es principalmente el trabajo de copiar y pegar. Recopile la configuración de la aplicación existente para que pueda aplicarla a la nueva aplicación.

Complete estas tareas antes de migrar:

Recopilación de la configuración de la aplicación

Si tiene previsto usar las mismas fuentes de desencadenadores y enlaces, así como otras configuraciones de los ajustes de la aplicación, primero anote los ajustes actuales de la aplicación en su aplicación existente del plan Consumo.

Copilot revisa nombres de configuración de apps sin mostrar valores secretos. Te pregunta si deseas copiar la configuración de origen filtrada o aplazarla para que puedas configurar las dependencias de destino de forma aislada. Si pospones la configuración, el despliegue espera hasta que la configuración de destino requerida esté lista.

Precaución

La configuración de la aplicación suele contener claves y otros secretos compartidos. Almacene siempre la configuración de la aplicación de forma segura, idealmente cifrada. Para mejorar la seguridad, utilice la autenticación de Microsoft Entra ID con identidades administradas en la nueva aplicación del plan Flex Consumption en lugar de secretos compartidos.

Recopilación de configuraciones de aplicación

Existen otras configuraciones de aplicación más allá de la configuración de la aplicación. Capture estas configuraciones de la aplicación existente para que pueda volver a crearlas correctamente en la nueva aplicación.

Revise esta configuración. Si alguno de ellos existe en la aplicación actual, decida si desea volver a crearlos en la nueva aplicación de plan de consumo flexible:

Configuración Configuración Comentario
Configuración de CORS cors Determina cualquier configuración existente de uso compartido de recursos entre orígenes (CORS), que los clientes podrían necesitar.
Dominios personalizados Si su aplicación está utilizando actualmente un dominio distinto a *.azurewebsites.net, debe reemplazar esta asignación de dominio personalizada por una asignación a su nueva aplicación.
Versión de HTTP http20Enabled Determina si la aplicación requiere HTTP 2.0.
Solo HTTPS httpsOnly Determina si se requiere TSL/SSL para acceder a la aplicación.
Certificados de cliente entrantes clientCertEnabled
clientCertMode
clientCertExclusionPaths
Establece los requisitos de las solicitudes de cliente que usan certificados para la autenticación.
Límite máximo de escalabilidad horizontal WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT Establece el límite en instancias escaladas horizontalmente. El valor máximo predeterminado es 200. Este valor se encuentra en la configuración de la aplicación, pero en una aplicación de plan de consumo flexible, se agrega como una configuración de sitio (maximumInstanceCount).
Versión mínima de TLS de entrada minTlsVersion Establece una versión mínima de TLS requerida por la aplicación.
Cifrado TLS de entrada mínimo minTlsCipherSuite Establece un requisito mínimo de cifrado TLS para la aplicación.
Recursos compartidos de Azure Files montados azureStorageAccounts Determina si existen recursos compartidos de archivos montados explícitamente en la aplicación (solo Linux).
Credenciales de publicación de autenticación básica de SCM scm.allow Determina si el scm sitio de publicación está habilitado. Aunque no se recomienda para la seguridad, algunos métodos de publicación lo requieren.

Copilot hace un inventario de la configuración del sitio, los límites de escala, CORS, los dominios personalizados y otras configuraciones. Registra los elementos no soportados o manipulados manualmente en la evaluación. Los metadatos explícitos de montaje en Azure Files son solo de inventario para esta migración de Windows.

Identificación de identidades administradas y acceso basado en roles

Antes de migrar, documente si la aplicación se basa en la identidad administrada asignada por el sistema o en cualquier identidad administrada asignada por el usuario. Determine los permisos de control de acceso basado en rol (RBAC) concedidos a estas identidades. Debe recrear la identidad administrada asignada por el sistema y las asignaciones de roles en su nueva aplicación. Puede reutilizar las identidades administradas asignadas por el usuario en la nueva aplicación.

Copilot realiza un inventario de las identidades administradas asignadas por el sistema y por el usuario, así como de sus asignaciones de roles. Utiliza este inventario para configurar las identidades del objetivo y recrear el acceso necesario sobre los recursos apropiados.

Identificación de la configuración de autenticación integrada

Antes de migrar a Flex Consumption, recopile información sobre las configuraciones de autenticación integradas. Si quiere que la aplicación use los mismos comportamientos de autenticación de cliente, debe volver a crearlos en la nueva aplicación. Para obtener más información, consulte Authentication and authorization in Azure Functions.

Preste especial atención a los URI de redireccionamiento, las redirecciones externas permitidas y la configuración de tokens para garantizar una transición sin problemas para los usuarios autenticados.

Copilot realiza un inventario de los proveedores habilitados y del comportamiento de autenticación sin exponer los secretos de los proveedores. Identifica los URI de callback específicos de cada objetivo y guía la configuración del proveedor antes del despliegue del código. No copia automáticamente los registros de proveedores ni los secretos.

Revisión de las restricciones de acceso de entrada

Puede establecer restricciones de acceso de entrada en las aplicaciones de un plan de consumo. Es posible que quiera mantener estas restricciones en la nueva aplicación. Para cada restricción que defina, asegúrese de capturar estas propiedades:

  • Direcciones IP o intervalos CIDR
  • Valores de prioridad
  • Tipo de acción (Permitir/Denegar)
  • Nombres de las reglas

Copilot realiza un inventario y recrea las restricciones de acceso compatibles. No debilita automáticamente esas restricciones para que las comprobaciones de salud del despliegue o la validación HTTP tengan éxito.

Al ejecutarse en el plan de consumo flexible, puede volver a crear estas restricciones basadas en IP de entrada. Puede proteger aún más la aplicación implementando otras restricciones de red, como la integración de red virtual y los puntos de conexión privados entrantes. Para obtener más información, consulte Integración de la red virtual.

Inicio de la migración

Importante

Si el acceso con clave compartida está deshabilitado en el host seleccionado o en la cuenta de almacenamiento de implementación, o si tu organización requiere acceso al almacenamiento sin claves, configura la autenticación de identidad administrada y las asignaciones de roles necesarias tanto para el almacenamiento del host como para el almacenamiento de implementación. Los flujos básicos de creación basados en CLI descritos en este artículo utilizan cadenas de conexión de almacenamiento. Crear la app con claves y convertirla después no cumple con el requisito de prohibir la autenticación por clave compartida durante la provisión. Para más información, consulte Conexiones de almacenamiento de host basadas en identidad y Configurar configuraciones de despliegue.

Si ha usado la solicitud de detección en la sección Identificar, la habilidad ya ha evaluado, creado y configurado su nueva aplicación Consumo flexible. Puede omitir esta sección y continuar con los pasos de migración.

Si ya sabe qué aplicación se va a migrar, use este mensaje:

migrate my app <APP_NAME> to flex consumption

La habilidad gestiona automáticamente la evaluación, la creación de aplicaciones y la migración de configuración az functionapp flex-migration start, que son equivalentes al comando y sus pasos de comprobación.

Después de iniciar correctamente la migración, continúe con Obtención del paquete de implementación de código.

Si ya sabe qué aplicación se va a migrar, use este mensaje:

Migrate my Windows Consumption Function App <APP_NAME> to Flex Consumption.

Sustituye <APP_NAME> por el nombre de tu app de origen. Copilot presenta el plan de migración, realiza evaluaciones, inventaría la configuración y crea una nueva aplicación Flex Consumption junto a la aplicación de origen.

Por defecto, el flujo de trabajo propone <APP_NAME>-flex como nombre de la aplicación de destino. Copilot te pide que elijas si reutilizar la cuenta de almacenamiento fuente, crear una nueva o usar una cuenta existente específica antes de crear la aplicación objetivo. Puedes solicitar un nombre de destino diferente o indicar tu preferencia de almacenamiento en el prompt. Revisa la elección de almacenamiento porque las dependencias compartidas permiten que ambas aplicaciones procesen los mismos eventos.

Copilot comprueba si las cuentas de almacenamiento seleccionadas permiten la autenticación por clave compartida y pregunta sobre los requisitos de política solo de identidad. Si no se permite la creación basada en claves, Copilot pausa antes de crear la aplicación objetivo. Aprovisiona una aplicación Flex Consumption vacía dedicada a esta migración en la misma suscripción, mediante infraestructura como código con prioridad para la identidad. Configura el acceso mediante identidad administrada tanto para el almacenamiento de host como para el de implementación, las asignaciones de roles requeridas y la supervisión. No implementes el código de la función todavía. Para ejemplos de provisionamiento, véase los ejemplos de infraestructura como código de Flex Consumption.

Devuelva el ID completo de recurso de Azure del destino y la ruta guardada del archivo de progreso. Copilot verifica el destino existente y, tras tu aprobación, reanuda la configuración y el despliegue sin crear otra aplicación. Utilice este indicador

Resume the Flex Consumption migration for <APP_NAME> using progress at <PROGRESS_FILE_PATH>.
I provisioned a keyless target at <TARGET_RESOURCE_ID>. Use that existing target; do not create another app.

Antes del despliegue, Copilot guía la preparación del código de Windows a Linux, la configuración de destino, la autenticación integrada y la seguridad de desencadenadores no HTTP. Luego ofrece el despliegue a través de una pipeline actualizada, un proyecto local o un paquete de despliegue compatible.

Por defecto, Copilot registra el progreso en .azure-upgrade/<SOURCE_APP_NAME>/upgrade-status.md. Para reanudar, utiliza este prompt:

Resume the Flex Consumption migration for <APP_NAME>.

Obtención del paquete de implementación de código

Para volver a implementar la aplicación, necesita los archivos de origen del proyecto o el paquete de implementación. Lo ideal es mantener los archivos del proyecto en el control de código fuente para que pueda volver a implementar fácilmente el código de función en la nueva aplicación. Si tiene los archivos de código fuente, puede omitir esta sección y continuar con Capture performance benchmarks (opcional) (Captura de pruebas comparativas de rendimiento [opcional]).

Si ya no tiene acceso a los archivos de origen del proyecto, puede descargar el paquete de implementación actual de la aplicación plan de consumo existente en Azure. La ubicación del paquete de implementación depende de si se ejecuta en Linux o Windows.

Las aplicaciones del plan de consumo en Linux mantienen el archivo de paquete ZIP de implementación en una de estas ubicaciones:

  • Un contenedor de Azure Blob Storage llamado scm-releases en la cuenta de almacenamiento de host predeterminada (AzureWebJobsStorage). Este contenedor es el origen de implementación predeterminado para una aplicación de plan de consumo en Linux.

  • Si la aplicación tiene una configuración de WEBSITE_RUN_FROM_PACKAGE que es una dirección URL, el paquete se encuentra en una ubicación accesible externamente que se mantiene. Un paquete externo debe hospedarse en un contenedor de Blob Storage con acceso restringido. Para obtener más información, consulte Dirección URL del paquete externo.

Sugerencia

Si restringe el acceso de la cuenta de almacenamiento solo a identidades administradas, podría necesitar concederle a la cuenta de Azure acceso de lectura al contenedor de almacenamiento agregándola al rol Storage Blob Data Reader.

El paquete de implementación se comprime mediante el squashfs formato . Para ver lo que hay dentro del paquete, debe usar herramientas que puedan descomprimir este formato.

Siga estos pasos para descargar el paquete de implementación de la aplicación actual:

La funcionalidad de migración de Copilot intenta descargar y desplegar su proyecto de código existente en la nueva aplicación. Si no tiene éxito, en su lugar le orienta a través de la obtención e implementación del paquete de código como parte del proceso de migración. Puede omitir esta sección y continuar con los pasos de migración.

La ubicación de los archivos de origen del proyecto depende de la configuración de la WEBSITE_RUN_FROM_PACKAGE aplicación como se indica a continuación:

WEBSITE_RUN_FROM_PACKAGE valor Ubicación del archivo de origen
1 Los archivos están en un paquete ZIP que se almacena en el recurso compartido de Azure Files de la cuenta de almacenamiento definida por la configuración WEBSITE_CONTENTAZUREFILECONNECTIONSTRING. La configuración WEBSITE_CONTENTSHARE define el nombre del recurso de archivos compartido.
Dirección URL de un punto de conexión Los archivos se encuentran en un paquete ZIP en una ubicación accesible externamente que se mantiene. Un paquete externo debe hospedarse en un contenedor de Blob Storage con acceso restringido. Para obtener más información, consulte Dirección URL del paquete externo.

Copilot pide primero un directorio de origen local. Si el origen no está disponible, ofrece la posibilidad de recuperar el paquete implementado desde el recurso compartido de contenido de la aplicación de origen o desde una URL de paquete externa. Comprueba si el paquete es adecuado para Linux y Flex Consumption; las compilaciones específicas de Windows requieren preparación en lugar de redespliegue directo.

Captura de pruebas comparativas de rendimiento (opcional)

Si planea validar la mejora del rendimiento en la aplicación en función de la migración al plan de consumo flexible, considere la posibilidad de capturar las pruebas comparativas de rendimiento del plan actual. A continuación, puedes compararlos con los mismos puntos de referencia para tu aplicación que se ejecuta en un plan Flex Consumption.

Sugerencia

Compare siempre el rendimiento en condiciones similares, como la hora del día, el día de la semana y la carga del cliente. Intente ejecutar las dos pruebas comparativas lo más cerca posible.

Estos son algunos puntos de referencia que se deben tener en cuenta para las pruebas de rendimiento estructuradas:

Prueba comparativa sugerida Comentario
Arranque en frío Mida el tiempo de la primera solicitud a la primera respuesta después de un período de inactividad.
Rendimiento Mida las solicitudes máximas por segundo mediante herramientas de pruebas de carga para determinar cómo la aplicación controla las solicitudes simultáneas.
Latencia Realice un seguimiento de los tiempos de respuesta de P50, P95 y P99 bajo varias condiciones de carga. Puede supervisar estas métricas en Application Insights.

Use esta consulta de Kusto para revisar los tiempos de respuesta de latencia sugeridos en Application Insights:

requests
| where timestamp > ago(1d)
| summarize percentiles(duration, 50, 95, 99) by bin(timestamp, 1h)
| render timechart

Pasos de migración

Para migrar las funciones de una aplicación de plan de consumo a una aplicación de plan de consumo flexible, siga estos pasos principales:

Comprobación de la aplicación Flex Consumption creada y configurada

Después de ejecutar el comando az functionapp flex-migration start , compruebe que la nueva aplicación Flex Consumption se ha creado correctamente y configurado correctamente. Estos son algunos pasos para validar los resultados de la migración:

La habilidad de migración de Copilot verifica automáticamente la nueva aplicación como parte de la migración. Si inició la migración con un consulta de Copilot en Iniciar la migración para Linux, la aptitud ya ha comprobado que la aplicación se creó y configuró correctamente. Puede omitir esta sección y continuar con Configurar la autenticación integrada.

Revisión del resumen de la migración

El comando de migración automatizada transfiere la mayoría de las configuraciones. Sin embargo, compruebe manualmente que estos elementos han sido migrados. Es posible que tenga que configurarlos manualmente:

  • Certificados: Vuelve a añadir certificados TLS/SSL a la aplicación Flex Consumption utilizando el proceso de certificados con alcance del sitio.
  • Ranuras de implementación: no se admite en el Consumo flexible.
  • Configuración de autenticación integrada: debe volver a configurar esta configuración manualmente.
  • Configuración de CORS: es posible que tenga que comprobar esta configuración manualmente en función de la configuración.

Si falta alguna configuración crítica o es incorrecta, configúrela manualmente mediante los pasos descritos en las secciones Windows proceso de migración de este artículo.

Revisión final del plan

Antes de continuar con el proceso de migración, dedique un momento a realizar estos últimos pasos preparatorios:

Cuando utilices Copilot, revisa la evaluación, el inventario de configuración, los cambios en el código, la opción de implementación y las decisiones sobre la seguridad de los desencadenadores antes de aprobar la creación y la implementación del destino. Una migración exitosa solo de validación no implica que se transfiera el tráfico de producción ni los desencadenantes.

  • Revise toda la información recopilada: revise todas las notas, los detalles de la configuración y los ajustes de la aplicación que documentó en las secciones de evaluación y premigración anteriores. Si algo no está claro, vuelva a ejecutar los comandos CLI de Azure o obtenga la información del portal.

  • Definir el plan de migración: en función de los resultados, cree una lista de comprobación para la migración que resalte:

    • Cualquier configuración que necesite atención especial
    • Desencadenadores y enlaces u otras dependencias que podrían verse afectados durante la migración
    • Estrategia de pruebas para la validación posterior a la migración
    • Plan de reversión si hay problemas inesperados
  • Planeación del tiempo de inactividad: considere cuándo detener la aplicación de funciones original para evitar la pérdida de datos y el procesamiento duplicado de eventos, y cómo esta migración podría afectar a los usuarios o a los sistemas de bajada. En algunos casos, es posible que tenga que deshabilitar funciones específicas antes de detener toda la aplicación.

Una revisión final cuidadosa ayuda a garantizar un proceso de migración más suave y minimiza el riesgo de pasar por alto configuraciones importantes.

Creación de una aplicación en el plan de consumo flexible

Puede crear una aplicación de funciones en el plan de consumo flexible junto con otros recursos necesarios Azure de varias maneras:

Create Option (Opción de creación) Artículos de referencia
GitHub Copilot Usa el prompt de Windows en Iniciar la migración. Copilot confirma los recursos objetivo y crea la app como parte del flujo de trabajo guiado.
CLI de Azure Creación de una aplicación de consumo flexible
portal de Azure Crear una aplicación de funciones en el portal de Azure
Infraestructura como código Plantilla de ARM
azd
Bicep
Terraform
Visual Studio Code Visual Studio Code implementación
Visual Studio Visual Studio implementación

Sugerencia

Cuando sea posible, use Microsoft Entra ID para la autenticación en lugar de las cadenas de conexión, que contienen claves compartidas. El uso de identidades administradas es un procedimiento recomendado que mejora la seguridad mediante la eliminación de la necesidad de almacenar secretos compartidos directamente en la configuración de la aplicación. Si la aplicación original usó cadenas de conexión, el plan de consumo flexible admite identidades administradas. La mayoría de estos vínculos muestran cómo habilitar identidades administradas en la aplicación de funciones.

Aplicación de la configuración de la aplicación migrada en la nueva aplicación

Antes de implementar el código, configure la nueva aplicación con la configuración de la aplicación de plan Flex Consumption correspondiente desde la aplicación de funciones original.

Importante

No todas las configuraciones de la aplicación plan de consumo se admiten al ejecutarse en un plan de consumo flexible. Para más información, consulte Desuso de planes de Consumo flexible.

Tras la aprobación, Copilot copia los ajustes compatibles de la app sin mostrar ni persistir los valores secretos en bruto. Conserva el almacenamiento propiedad del destino y la configuración de Application Insights. También revisa las conversiones de nombres de : a __ necesarias en Linux y se detiene si los nombres de origen se asignan de forma ambigua.

Aplicación de otras configuraciones de aplicaciones

Busque la lista de otras configuraciones de aplicación de la aplicación antigua que recopiló durante la migración previa y establézcalas en la nueva aplicación.

Copilot aplica la configuración de sitio compatible a partir del inventario y verifica el destino. Los ajustes no soportados y los elementos que requieren manipulación manual permanecen como trabajo de seguimiento explícito en lugar de ser copiados silenciosamente.

Configuración de la escala y la simultaneidad

El plan Flex Consumption utiliza el escalado por función. Cada función dentro de la aplicación se escala de forma independiente en función de su carga de trabajo. El escalado está más estrictamente relacionado con la configuración de simultaneidad. Esta configuración le ayuda a tomar decisiones de escalado en función de las ejecuciones simultáneas actuales. Para obtener más información, consulte los temas Escalado por función y Simultaneidad en el artículo sobre el Plan de consumo flexible.

Si quiere que la nueva aplicación se escale como la aplicación original, considere la configuración de simultaneidad. Establecer valores de simultaneidad más altos puede dar lugar a que se creen menos instancias para controlar la misma carga.

Si establece un límite de escalado personalizado en la aplicación original, puede aplicarlo a la nueva aplicación. De lo contrario, vaya a la sección siguiente.

El número máximo de instancias predeterminado es 100. Establézcalo en un valor entre 1 y 1000.

Nota:

Reducir el número máximo de instancias por debajo de 40 para las aplicaciones de funciones HTTP puede provocar errores de solicitud frecuentes y ventanas de limitación prolongada cuando el tráfico supera la capacidad. Esta configuración está pensada únicamente para escenarios avanzados en los que se acepta una escalabilidad limitada y se ha probado de manera exhaustiva.

Copilot comprueba cualquier configuración máxima de escalabilidad horizontal de origen con el rango de consumo de Flex admitido antes de aplicarla. Si el origen no ha establecido un límite personalizado, se mantiene el límite predeterminado del destino. Revisa el ajuste de la concurrencia específico de la carga de trabajo tras la migración.

Configurar los dominios personalizados y el acceso a CORS

Si la aplicación original tenía dominios personalizados enlazados o la configuración de CORS, vuelva a crearlos en la nueva aplicación. Para obtener más información sobre los dominios personalizados, consulte Set up an existing custom domain in Azure App Service.

Copilot recrea una configuración CORS compatible y guía la configuración personalizada del dominio. Cualquier cambio en las vinculaciones de origen, DNS o enrutamiento de producción requiere aprobación separada; crear la aplicación objetivo no completa la conmutación del tráfico.

Configuración de identidades administradas y asignación de roles

La configuración de identidades administradas en la nueva aplicación depende del tipo de identidad administrada:

Tipo de identidad administrada Creación de la identidad Asignaciones de roles
Asignada por el usuario Opcional Puede seguir usando las mismas identidades administradas asignadas por el usuario con la nueva aplicación. Debe reasignar estas identidades a la aplicación Flex Consumption y comprobar que todavía tienen las asignaciones de roles correctas en los servicios remotos. Si decide crear nuevas identidades para la nueva aplicación, debe asignar los mismos roles que las identidades existentes.
Asignado por el sistema Sí Dado que cada aplicación de funciones tiene su propia identidad administrada asignada por el sistema, debe habilitar la identidad administrada asignada por el sistema en la nueva aplicación y reasignar los mismos roles que en la aplicación original.

Volver a crear correctamente las asignaciones de roles es clave para asegurarse de que la aplicación de funciones tiene el mismo acceso a Azure recursos después de la migración.

Sugerencia

Si la aplicación original usó cadenas de conexión u otros secretos compartidos para la autenticación, esta es una gran oportunidad para mejorar la seguridad de la aplicación cambiando al uso de Microsoft Entra ID autenticación con identidades administradas. Para más información, consulte Configurar conexiones a servicios remotos en Azure Functions.

Copilot habilita una identidad asignada por el sistema en el destino y vuelve a crear las asignaciones de roles necesarias para su nuevo principal. Verifica el acceso contra los recursos objetivo en lugar de reutilizar el principal de origen.

Configuración de restricciones de acceso a la red

Si la aplicación original tenía restricciones de acceso entrante basadas en IP, vuelva a crear cualquiera de las mismas reglas de acceso entrante que quiera mantener en la nueva aplicación.

Sugerencia

El plan flex Consumption es totalmente compatible con la integración de red virtual. Debido a esta compatibilidad, también puede usar puntos de conexión privados entrantes después de la migración. Para obtener más información, consulte Puntos de conexión privados.

Copilot recrea restricciones de acceso a fuentes compatibles y las verifica. Si esas restricciones impiden las pruebas HTTP directas, registra la validación como diferida en lugar de abrir el acceso automáticamente.

Habilitación de la supervisión

Antes de iniciar la nueva aplicación en el plan de consumo flexible, asegúrese de que Application Insights está habilitado. Al configurar Application Insights, puede solucionar cualquier problema que aparezca durante la implementación de código y el inicio.

Implemente una estrategia de supervisión completa que abarque las métricas, los registros y los costos de la aplicación. Con esta estrategia, puede validar el éxito de la migración, identificar los problemas rápidamente y optimizar el rendimiento y el costo de la nueva aplicación.

Si tiene previsto comparar esta nueva aplicación con la aplicación actual, asegúrese de que el esquema también recopila los puntos de referencia necesarios para la comparación. Para obtener más información, consulte Configuración de la supervisión.

Al utilizar Copilot, la habilidad verifica la configuración de Application Insights del destino antes de la implementación. Conserva la ingestión autenticada por Microsoft Entra cuando la fuente la utilizó y valida la telemetría tras el despliegue.

Configurar la autenticación integrada

Si la aplicación original usó la autenticación de cliente integrada (a veces llamada Easy Auth), vuelva a crearla en la nueva aplicación. Si planea reutilizar el mismo registro de cliente, asegúrese de establecer los puntos de conexión autenticados de la nueva aplicación en el proveedor de autenticación.

La aptitud de migración Copilot para Linux no automatiza la configuración de autenticación integrada. Use las pestañas CLI de Azure o Azure portal para volver a crear manualmente la configuración de autenticación.

Copilot guía la configuración y verificación proveedor por proveedor en el destino. Debes configurar los secretos del proveedor directamente a través del portal, una configuración existente con el secreto o una referencia de Key Vault, y registrar el URI de callback destino. Si la autenticación se aplaza, Copilot se detiene antes de desplegar el código para que el destino no exponga los endpoints previamente protegidos sin autenticación.

Implementa el código de tu aplicación en el nuevo recurso Flex Consumption

Después de configurar la nueva aplicación de plan flex Consumption en función de la configuración de la aplicación original, implemente el código en los nuevos recursos de la aplicación en Azure.

Precaución

Tras un despliegue exitoso, los disparadores activados en tu nueva aplicación pueden empezar a procesar inmediatamente los datos de los servicios conectados. Para minimizar los datos duplicados y evitar la pérdida de datos al iniciar la nueva aplicación y apagar la aplicación original, revise las estrategias que definió en mitigaciones por tipo de desencadenador.

Antes de la implementación, Copilot clasifica cada desencadenador y propone desactivar las funciones que no sean HTTP y que puedan procesar eventos de producción o ejecutar programaciones. Si apruebas la desactivación, escribe y verifica la configuración de desactivación antes del despliegue, y luego verifica el estado efectivo de la función tras el despliegue. Las funciones HTTP permanecen activadas porque los clientes deben ser redirigidos al nuevo nombre de host.

Los nombres de funciones que contienen un guion (-) no pueden desactivarse en Linux mediante la configuración de la app por función. Para estas funciones, Copilot requiere una decisión de seguridad independiente: aislar las dependencias, cambiar el nombre y volver a empaquetar, aprobar una transición source-first o aceptar explícitamente el procesamiento activo. No trata una bandera de desactivación ineficaz como protección.

Planifica la administración de las claves de función antes de la transición a HTTP. La nueva aplicación tiene sus propias claves de host y de función. Para los llamantes que usan estas claves, deben conservar las claves compatibles de host de origen y funciones HTTP o actualizar los llamantes para que usen las claves de la aplicación de destino antes de redirigir el tráfico. Copilot pregunta qué estrategia usar y, si eliges preservación, copia y verifica las claves seleccionadas tras el despliegue. Validar las solicitudes autenticadas contra el endpoint objetivo antes de la conmutación.

Copilot no copia la _master tecla ni las teclas del sistema gestionadas por extensiones. Actualizar las integraciones de webhooks que requieran claves de sistema generadas por el sistema de destino por separado. Preservar las claves del cliente significa que esas credenciales autorizan ambas aplicaciones mientras coexisten.

Al usar Copilot, elige si actualizar tu pipeline CI/CD, publicar un proyecto local preparado o desplegar un paquete recuperado compatible. Tras la validación, Copilot guía el corte de producción y pide aprobación explícita antes de cambiar la aplicación de origen.

Functions proporciona varias maneras de implementar el código, ya sea desde el proyecto de código o como un paquete de implementación listo para ejecutarse.

Sugerencia

Si mantiene el código del proyecto en un repositorio de código fuente, ahora es el momento perfecto para configurar una canalización de implementación continua. La implementación continua le permite implementar automáticamente las actualizaciones de aplicaciones en función de los cambios en un repositorio conectado.

Actualice los flujos de trabajo de implementación existentes para implementar el código fuente en la nueva aplicación:

También puede crear un nuevo flujo de trabajo de implementación continua para la nueva aplicación. Para obtener más información, consulte implementación continua para Azure Functions.

Pasos posteriores a la migración

🎉 ¡Felicitaciones! La aplicación se está ejecutando ahora en Flex Consumption. Para sacar el máximo partido del nuevo plan, tenga en cuenta estas tareas de seguimiento opcionales:

Comprobación de la funcionalidad básica

  1. Compruebe que la nueva aplicación se está ejecutando en un plan de consumo flexible:

    La habilidad de migración de Copilot valida tu nueva aplicación tras el despliegue, incluyendo su plan de alojamiento y el estado de la función. Las pruebas HTTP pueden permanecer aplazadas cuando las restricciones de acceso intencionadas impiden realizarlas. Revisa cualquier prueba diferida y valida el procesamiento no HTTP antes del corte de producción. Si necesita volver a validar, utilice este indicador:

    verify my flex consumption app <APP_NAME> is running correctly
    
  2. Use un cliente HTTP para llamar al menos a un punto de conexión de desencadenador HTTP en la nueva aplicación para asegurarse de que responde según lo previsto.

Captura de pruebas comparativas de rendimiento

Con la nueva aplicación en ejecución, ejecute las mismas pruebas comparativas de rendimiento que recopiló de la aplicación original, como:

Prueba comparativa sugerida Comentario
Arranque en frío Mida el tiempo de la primera solicitud a la primera respuesta después de un período de inactividad.
Rendimiento Mida las solicitudes máximas por segundo mediante herramientas de pruebas de carga para determinar cómo la aplicación controla las solicitudes simultáneas.
Latencia Realice un seguimiento de los tiempos de respuesta de P50, P95 y P99 bajo varias condiciones de carga. Puede supervisar estas métricas en Application Insights.

Use esta consulta de Kusto para revisar los tiempos de respuesta de latencia sugeridos en Application Insights:

requests
| where timestamp > ago(1d)
| summarize percentiles(duration, 50, 95, 99) by bin(timestamp, 1h)
| render timechart

Nota:

Las métricas del plan de consumo flexible difieren de las métricas del plan de consumo. Al comparar el rendimiento antes y después de la migración, tenga en cuenta que debe usar diferentes métricas para realizar un seguimiento de características de rendimiento similares. Para obtener más información, consulte Configuración de la supervisión.

Creación de paneles personalizados

Con las métricas de Azure Monitor y Application Insights, puede crear paneles en el portal de Azure que muestran gráficos de métricas de plataforma y registros y análisis en tiempo de ejecución.

Considere la posibilidad de configurar paneles y alertas en las métricas clave en el portal de Azure. Para obtener más información, consulta Monitor tu aplicación en Azure.

Refinar la configuración del plan

Las mejoras de rendimiento reales y las implicaciones de costos de la migración pueden variar en función de las cargas de trabajo y la configuración específicas de la aplicación. El plan flex Consumption proporciona varias opciones de configuración que puedes ajustar para refinar el rendimiento de la aplicación. Es posible que desee realizar ajustes para que coincidan más estrechamente con el comportamiento de la aplicación original o equilibrar el costo frente al rendimiento. Para obtener más información, consulta Ajustar la aplicación en el artículo Consumo flexible.

Actualización de los archivos de implementación de recursos

Si administra la infraestructura de su aplicación de funciones mediante Bicep o Terraform, actualice sus archivos de implementación para que ahora apunten al plan de Consumo flexible. En esta sección se muestran las principales diferencias entre las definiciones de recursos del plan de consumo y el plan de consumo flexible.

Importante

No se puede convertir una aplicación de un plan de consumo existente a Flex Consumption directamente. Debe crear nuevos recursos con un nuevo nombre o eliminar los recursos existentes antes de implementar los equivalentes de Flex Consumption.

Diferencias clave

Al migrar las implementaciones de recursos de Consumption a Flex Consumption, tenga en cuenta estos cambios importantes:

Aspecto Plan de consumo Plan de consumo flexible
SKU del plan de hospedaje Y1 (Dinámico) FC1 (FlexConsumption)
Plan requerido Opcional (autocreado) Obligatorio (debe ser explícito)
Sistema operativo Windows o Linux Solo para Linux.
Configuración Configuración de aplicaciones Sección functionAppConfig
Compartición de contenido de almacenamiento Configuración de WEBSITE_CONTENTSHARE deployment.storage en functionAppConfig

En los ejemplos siguientes se muestran las principales diferencias entre las definiciones de recursos del plan consumo y el plan de consumo flexible. Usan la identidad administrada asignada por el sistema, pero no están completas. No incluyen todos los recursos necesarios, como cuentas de almacenamiento, Application Insights o todas las asignaciones de roles necesarias. Para ver ejemplos completos y listos para producción, revise los ejemplos Flex Consumption IaC.

Plan de consumo (antes):

// Consumption plan (optional - auto-created if omitted)
resource hostingPlan 'Microsoft.Web/serverfarms@2022-03-01' = {
  name: hostingPlanName
  location: location
  sku: {
    name: 'Y1'
    tier: 'Dynamic'
  }
  properties: {
    reserved: true // Linux
  }
}

resource functionApp 'Microsoft.Web/sites@2022-03-01' = {
  name: functionAppName
  location: location
  kind: 'functionapp,linux'
  properties: {
    serverFarmId: hostingPlan.id
    siteConfig: {
      linuxFxVersion: 'DOTNET-ISOLATED|8.0'
      appSettings: [
        { name: 'FUNCTIONS_EXTENSION_VERSION', value: '~4' }
        { name: 'FUNCTIONS_WORKER_RUNTIME', value: 'dotnet-isolated' }
        { name: 'AzureWebJobsStorage__accountName', value: storageAccount.name }
        { name: 'WEBSITE_CONTENTAZUREFILECONNECTIONSTRING__accountName', value: storageAccount.name }
        { name: 'WEBSITE_CONTENTSHARE', value: functionAppName }
        { name: 'APPLICATIONINSIGHTS_CONNECTION_STRING', value: appInsights.properties.ConnectionString }
        { name: 'APPLICATIONINSIGHTS_AUTHENTICATION_STRING', value: 'Authorization=AAD' }
      ]
    }
  }
  identity: {
    type: 'SystemAssigned'
  }
}

Plan de consumo flexible (después):

// Flex Consumption plan (required)
resource hostingPlan 'Microsoft.Web/serverfarms@2023-12-01' = {
  name: hostingPlanName
  location: location
  sku: {
    name: 'FC1'
    tier: 'FlexConsumption'
  }
  kind: 'functionapp'
  properties: {
    reserved: true
  }
}

// Deployment storage container (required)
resource deploymentContainer 'Microsoft.Storage/storageAccounts/blobServices/containers@2023-05-01' = {
  name: '${storageAccount.name}/default/deployments'
}

resource functionApp 'Microsoft.Web/sites@2023-12-01' = {
  name: functionAppName
  location: location
  kind: 'functionapp,linux'
  properties: {
    serverFarmId: hostingPlan.id
    functionAppConfig: {
      deployment: {
        storage: {
          type: 'blobContainer'
          value: '${storageAccount.properties.primaryEndpoints.blob}deployments'
          authentication: {
            type: 'SystemAssignedIdentity'
          }
        }
      }
      scaleAndConcurrency: {
        maximumInstanceCount: 100
        instanceMemoryMB: 2048
      }
      runtime: {
        name: 'dotnet-isolated'
        version: '8.0'
      }
    }
    siteConfig: {
      appSettings: [
        { name: 'AzureWebJobsStorage__accountName', value: storageAccount.name }
        { name: 'APPLICATIONINSIGHTS_CONNECTION_STRING', value: appInsights.properties.ConnectionString }
        { name: 'APPLICATIONINSIGHTS_AUTHENTICATION_STRING', value: 'Authorization=AAD' }
      ]
    }
  }
  identity: {
    type: 'SystemAssigned'
  }
}

Nota:

Al utilizar APPLICATIONINSIGHTS_AUTHENTICATION_STRING con Authorization=AAD, también debe asignar el rol de Publicador de métricas de supervisión a la identidad administrada de la aplicación de funciones en el recurso de Application Insights.

Para ver ejemplos completos de Bicep, consulte los ejemplos de Bicep de consumo flexible.

Conciliación de implementaciones de recursos después de la migración

Si usa la infraestructura como código para administrar las implementaciones de recursos de Azure, actualice los archivos de implementación después de migrar a Flex Consumption para evitar el desfase de configuración. Este es un enfoque recomendado:

  1. No mezclar implementaciones manuales y basadas en recursos: si usó el CLI de Azure o el portal para crear la aplicación Flex Consumption durante la migración, actualice los archivos de recursos antes de la siguiente implementación. De lo contrario, su implementación podría intentar volver a crear los recursos del antiguo plan de Consumo.

  2. Actualice los nombres de recursos o use la administración del ciclo de vida: dado que no se puede convertir una aplicación de consumo a consumo flexible, tiene dos opciones:

    • Nuevos nombres de recursos: actualice el código de implementación para usar nuevos nombres para el plan de hospedaje y la aplicación de funciones. Este enfoque mantiene intactos los recursos antiguos hasta que esté seguro de que la migración se ha realizado correctamente.
    • Importar recursos existentes: si desea mantener los mismos nombres, elimine primero los recursos antiguos y deje que la implementación cree los nuevos recursos de Flex Consumption. Como alternativa, importe los recursos creados manualmente en el estado de Terraform mediante terraform import o haga referencia a recursos existentes en Bicep.
  3. Comprobar la alineación de estado: después de actualizar los archivos de implementación, ejecute un plan o una operación de vista previa (terraform plan o az deployment group what-if) para confirmar que no se producen cambios inesperados.

  4. Actualizar canalizaciones de CI/CD: si las canalizaciones de implementación hacen referencia a la configuración anterior del plan de consumo, actualícelas para usar las nuevas definiciones de recursos y métodos de implementación de Flex Consumption.

Sugerencia

Para minimizar la interrupción, considere la posibilidad de ejecutar la aplicación consumo anterior y la nueva aplicación Flex Consumption en paralelo durante un período de transición. Actualice la implementación para administrar la nueva aplicación Flex Consumption, compruebe que funciona correctamente y, a continuación, quite los recursos antiguos de la aplicación Consumo de Azure y los archivos de implementación.

Quitar la aplicación original (opcional)

Sugerencia

No hay prisa aquí. Mantenga la aplicación original durante unos días o semanas mientras comprueba que todo funciona. El plan de consumo solo cobra por el uso real, por lo que mantener la antigua aplicación (con desencadenadores deshabilitados) cuesta poco.

Cuando esté seguro de que la nueva aplicación funciona correctamente, puede limpiar el original. Este paso es opcional: algunos equipos mantienen la aplicación antigua como una opción de referencia o reversión.

Importante

Esta acción elimina la aplicación de funciones original. El plan de consumo permanece intacto si otras aplicaciones la usan. Antes de continuar, asegúrese de hacer lo siguiente:

  • Migre correctamente todas las funciones a la nueva aplicación Flex Consumption.
  • Compruebe que no hay tráfico dirigido a la aplicación original.
  • Se ha copiado una copia de seguridad de los registros, la configuración o los datos pertinentes que puedan ser necesarios para referencia.

La skill de migración de Copilot puede eliminar la aplicación original una vez completada la transición de producción y la validación del objetivo. Si el trabajo de preparación sigue siendo aplazado o el origen sigue procesando cargas de producción, conserva la aplicación fuente. Copilot siempre pide su confirmación explícita antes de eliminar cualquier cosa. Utilice este indicador

delete my original consumption app <ORIGINAL_APP_NAME>

Estrategias de solución de problemas y recuperación

La mayoría de las migraciones finalizan sin problemas. Si algo no funciona según lo previsto, pruebe estas soluciones para problemas comunes:

Cuestión Solución
Problemas de rendimiento de arranque en frío • Revisar la configuración de simultaneidad
• Comprobar si faltan dependencias
Faltan enlaces • Verificar paquetes de extensiones
• Actualizar configuraciones de enlace
Errores de permisos • Comprobar las asignaciones de identidad y los permisos de rol
Problemas de conectividad de red • Validar las restricciones de acceso y la configuración de red
Falta el Application Insights • Volver a crear la conexión de Application Insights
No se puede iniciar la aplicación Consulte Pasos generales de solución de problemas.
Los desencadenadores no procesan eventos Consulte Pasos generales de solución de problemas.

Si experimenta problemas para migrar una aplicación de producción, considere la posibilidad de revertir la migración a la aplicación original mientras soluciona problemas.

Pasos generales para solucionar problemas

Siga estos pasos para los casos en los que la nueva aplicación no se inicia o los desencadenadores de función no procesan eventos:

  1. En la página de la nueva aplicación del portal Azure, seleccione Diagnose y resuelva problemas en el panel izquierdo de la página de la aplicación. Seleccione Disponibilidad y rendimiento y revise el detector de errores de informe o la aplicación de funciones. Para obtener más información, consulte Información general sobre diagnósticos de Azure Functions.

  2. En la página de la aplicación, seleccione Supervisión>Application Insights>Ver datos de Application Insights y luego seleccione Investigar>fallos y compruebe si hay eventos de fallo.

  3. Seleccione Registros de supervisión> y ejecute esta consulta de Kusto para comprobar si hay errores en estas tablas:

    traces
        | where severityLevel == 3
        | where cloud_RoleName == "<APP_NAME>"
        | where timestamp > ago(1d)
        | project timestamp, message, operation_Name, customDimensions
        | order by timestamp desc
    

    En estas consultas, reemplace por <APP_NAME> el nombre de la nueva aplicación. Estas consultas comprueban si hay errores en el último día (where timestamp > ago(1d)).

  4. De nuevo en la página de la aplicación, seleccione Configuración Variables> deentorno y compruebe que todas las configuraciones críticas de la aplicación se transfieren correctamente. Busque cualquier configuración en desuso que pueda migrarse incorrectamente o cualquier error tipográfico o cadena de conexión incorrecta. Compruebe la conexión de almacenamiento de host predeterminada.

  5. Seleccione Identidad de configuración> y compruebe que existen las identidades esperadas y que están asignadas a los roles correctos.

  6. En su código, verifique que todas las configuraciones de enlace sean correctas, prestando especial atención a los nombres de las cadenas de conexión, a los nombres de las colas y contenedores de almacenamiento, y a la configuración de grupos de consumidores en los desencadenadores de Event Hubs.

Pasos de reversión para aplicaciones de producción críticas

Si no puede solucionar el problema, considere la posibilidad de revertir a la aplicación original mientras sigue solucionando problemas.

  1. Si se detiene la aplicación original, reiníciela:

    Pide a Copilot que reinicie la aplicación original y revierta la migración.

    restart my original consumption app <ORIGINAL_APP_NAME>
    
  2. Si ha creado nuevas colas, temas o contenedores, asegúrese de que los clientes se redirigen de nuevo a los recursos originales.

  3. Si ha modificado DNS o dominios personalizados, revierta estos cambios para que apunten a la aplicación original.

Proporcionar comentarios

Si tiene problemas con la migración mediante este artículo o quiere proporcionar otros comentarios sobre esta guía, use uno de estos métodos para obtener ayuda o proporcionar sus comentarios: