Compartir a través de


Actualización de las versiones de la pila de lenguajes en Azure Functions

En Azure Functions, la compatibilidad con una pila de lenguajes se limita a versiones específicas. A medida que las nuevas versiones estén disponibles, es posible que quiera actualizar las aplicaciones de funciones para aprovechar las nuevas características. El soporte en Functions también finaliza para versiones antiguas y normalmente se alinea con los cronogramas de fin de soporte técnico de la comunidad. Para obtener más información, consulte la directiva de compatibilidad de tiempo de ejecución de lenguaje. Para obtener versiones compatibles de varios idiomas, consulte Idiomas por versión en tiempo de ejecución.

Para asegurarse de que las aplicaciones de funciones siguen recibiendo soporte técnico, siga las instrucciones de este artículo para actualizarlas a las versiones disponibles más recientes. La forma en que actualiza la aplicación de funciones depende de varios factores:

  • El lenguaje que se usa para desarrollar las aplicaciones de funciones. Asegúrese de seleccionar el lenguaje de programación en la parte superior de este artículo.
  • Sistema operativo en el que se ejecuta la aplicación de funciones en Azure: Windows o Linux.
  • El Plan de hospedaje.

Nota:

En este artículo se muestra cómo actualizar la versión de .NET de una aplicación de funciones que usa el modelo de trabajo aislado. Si la aplicación de funciones se ejecuta en una versión anterior de .NET y usa el modelo en proceso, tenga en cuenta las siguientes opciones:

Preparación de la aplicación de funciones

Antes de actualizar la configuración de pila de la aplicación de funciones en Azure, complete las tareas de las secciones siguientes.

Revisión de las dependencias

Antes de actualizar las versiones del lenguaje, revise estas posibles dependencias:

  • Agrupaciones de extensiones: compruebe que el host.json archivo hace referencia a una versión de agrupación de extensiones compatible. Se recomiendan paquetes de la versión 4.x para la mayoría de los escenarios.
  • Extensiones de vinculación: actualice las referencias de extensión de vinculación explícitas a las versiones compatibles con la nueva versión del lenguaje de programación.

  • Dependencias del paquete: revise y actualice todas las dependencias del paquete a las versiones que admiten la versión del idioma de destino.

  • Herramientas locales: asegúrese de que las herramientas de desarrollo locales, como Azure Functions Core Tools, los SDK y los IDE, admiten la nueva versión del lenguaje.

Comprobación local de la aplicación de funciones

Pruebe y compruebe el código de la aplicación de funciones localmente en la nueva versión de destino.

Siga estos pasos para actualizar el proyecto en el equipo local:

  1. Asegúrese de que la versión de destino del SDK de .NET está instalada.

    Si tiene como destino una versión preliminar, consulte Las instrucciones de Functions para obtener una versión preliminar de .NET para asegurarse de que la versión es compatible. El uso de versiones preliminares de .NET puede requerir más pasos.

  2. Actualice las referencias a las versiones más recientes de Microsoft.Azure.Functions.Worker y Microsoft.Azure.Functions.Worker.Sdk.

  3. Actualice la plataforma de destino del proyecto a la nueva versión. Para los proyectos de C#, debe actualizar el elemento <TargetFramework> en el archivo .csproj. Para obtener más información sobre su versión, consulte marcos de destino.

    Cambiar el marco de destino del proyecto también puede requerir cambios en partes de la cadena de herramientas, fuera del código del proyecto. Por ejemplo, en Visual Studio Code, es posible que tenga que actualizar la configuración de extensión azureFunctions.deploySubpath en la configuración de usuario o en el archivo .vscode/settings.json del proyecto. Compruebe si hay dependencias en la versión del marco que existe fuera del código del proyecto, como parte de los pasos de compilación o una canalización de integración continua y entrega continua (CI/CD).

  4. Realice actualizaciones en el código del proyecto que requiera la nueva versión de .NET. Compruebe las notas de la versión de la versión para obtener información específica. También puede usar el Asistente para actualización de .NET para ayudar a actualizar el código en respuesta a los cambios en las versiones principales.

Después de realizar esos cambios, recompile el proyecto y pruébelo para confirmar que la aplicación de funciones se ejecuta según lo previsto.

Pasar al entorno de ejecución de Functions más reciente

Asegúrese de que la aplicación de funciones se ejecuta en la versión más reciente del entorno de ejecución de Functions (versión 4.x). Determine la versión en tiempo de ejecución en Azure Portal o mediante la CLI de Azure.

Siga estos pasos para determinar la versión del entorno de ejecución de Functions:

  1. En Azure Portal, busque y seleccione la aplicación de funciones. En el menú lateral, seleccione Ajustes>Configuración.

  2. Vaya a la pestaña Configuración del entorno de ejecución de la función y compruebe el valor de Versión en tiempo de ejecución. La aplicación de funciones debe ejecutarse en la versión 4.x del entorno de ejecución de Functions (~4).

Si necesita actualizar la aplicación de funciones a la versión 4.x, consulte Migración de aplicaciones de la versión 1.x de Azure Functions a la versión 4.x o Migración de aplicaciones de la versión 3.x de Azure Functions a la versión 4.x. Siga las instrucciones de esos artículos en lugar de simplemente cambiar la FUNCTIONS_EXTENSION_VERSION configuración.

Publicar actualizaciones de la aplicación de funciones

Si ha actualizado la aplicación de funciones para que se ejecute correctamente en la nueva versión, publique las actualizaciones de la aplicación de funciones antes de actualizar la configuración de la pila de la aplicación de funciones.

Sugerencia

Para simplificar el proceso de actualización, minimice el tiempo de inactividad de las aplicaciones de funciones y proporcione una versión potencial para la reversión, publique la aplicación de funciones actualizada en un espacio de ensayo. Para obtener más información, consulte Ranuras de implementación de Azure Functions.

Al publicar la aplicación de funciones actualizada en una ranura de ensayo, asegúrese de seguir las instrucciones de actualización específicas de ranura en el resto de este artículo. Posteriormente, cambie el espacio de ensayo actualizado a producción.

Considere la posibilidad de usar ranuras

Antes de actualizar la versión del lenguaje de la aplicación de funciones, cree una ranura de implementación que se usará para realizar pruebas e implementaciones. Este enfoque minimiza el tiempo de inactividad y proporciona una opción de reversión sencilla si se producen problemas. En los ejemplos de este artículo se usa un entorno de pruebas denominado staging.

Plan de consumo flexible: las ranuras no se admiten actualmente. Primero debe comprobar el código actualizado en una aplicación de funciones no productiva. Al implementar en una aplicación en ejecución, es posible que pueda usar la estrategia de actualización gradual. Para obtener más información, consulte Estrategias de actualización del sitio en Flex Consumption.

Importante

La estrategia de actualización gradual está actualmente en versión preliminar y no se recomienda para las aplicaciones de producción. Revise las limitaciones y consideraciones actuales antes de habilitar esta estrategia en cualquier aplicación de producción.

Actualice la configuración de la pila

La forma en que actualiza la configuración de la pila depende de si la aplicación de funciones se ejecuta en Windows o en Linux en Azure.

Al usar un espacio de prueba, asegúrese de que sus actualizaciones se dirijan al espacio correcto.

Siga los siguientes pasos para actualizar la versión de Java:

  1. En Azure Portal, busque y seleccione la aplicación de funciones. En el menú lateral, seleccione Ajustes>Configuración. Si tiene un espacio de ensayo, seleccione el espacio específico.

  2. En la pestaña Configuración general, actualice Versión de Java a la versión deseada.

  3. Haga clic en Guardar. Cuando se le notifique sobre un reinicio, seleccione Continuar.

Siga los pasos siguientes para actualizar la versión de .NET:

  1. En Azure Portal, busque y seleccione la aplicación de funciones. En el menú lateral, seleccione Ajustes>Configuración. Si tiene un espacio de ensayo, seleccione el espacio específico.

  2. En la pestaña Configuración general, actualice Versión de .NET a la versión deseada.

  3. Haga clic en Guardar. Cuando se le notifique sobre un reinicio, seleccione Continuar.

Siga los pasos siguientes para actualizar la versión de Node.js:

  1. En Azure Portal, busque y seleccione la aplicación de funciones. En el menú lateral, seleccione Ajustes>Configuración. Si tiene un espacio de ensayo, seleccione el espacio específico.

  2. En la pestaña Configuración general, actualice Versión de Node.js a la versión deseada.

  3. Haga clic en Guardar. Cuando se le notifique sobre un reinicio, seleccione Continuar. Este cambio actualizará la configuración de la aplicación WEBSITE_NODE_DEFAULT_VERSION.

Siga los pasos siguientes para actualizar la versión de PowerShell:

  1. En Azure Portal, busque y seleccione la aplicación de funciones. En el menú lateral, seleccione Ajustes>Configuración. Si tiene un espacio de ensayo, seleccione el espacio específico.

  2. En la pestaña Configuración general, actualice Versión de PowerShell Core a la versión deseada.

  3. Haga clic en Guardar. Cuando se le notifique sobre un reinicio, seleccione Continuar.

El portal no admite aplicaciones de Python en Windows. Vaya a la pestaña Linux en su lugar.

La aplicación de funciones se reiniciará después de actualizar la versión.

Nota:

Durante el reinicio, la aplicación de funciones no está disponible durante un breve período, normalmente de 30 a 60 segundos. Si actualiza una aplicación de funciones de producción directamente (sin usar un espacio de ensayo), planee este tiempo de inactividad durante una ventana de mantenimiento. El reinicio termina cualquier solicitud en curso, y las nuevas solicitudes fallarán hasta que la aplicación se reinicie correctamente.

Verificar la actualización

Una vez reiniciada la aplicación de funciones, compruebe que la actualización de la versión del lenguaje se realizó correctamente.

  1. En Azure Portal, busque y seleccione la aplicación de funciones. En el menú lateral, seleccione Ajustes>Configuración.

  2. En la pestaña Configuración general , compruebe que la versión de idioma muestra la nueva versión seleccionada.

  3. Seleccione Información general en el menú lateral y confirme que el estado se muestra como En ejecución.

Después de comprobar la versión, compruebe también que las funciones funcionan según lo previsto.

Intercambio de ranuras

Si usa un slot de ensayo para implementar su proyecto de código y actualizar su configuración, cambie el slot de ensayo a producción. Para obtener más información, consulte Intercambiar ranuras.

Solución de problemas

Si experimenta problemas después de actualizar la versión del lenguaje, use las instrucciones siguientes para resolver problemas comunes:

La app de funciones no arranca

Síntomas: El estado de la aplicación de funciones se muestra como Detenido o reinicia continuamente.

Soluciones:

  1. Compruebe los registros de la aplicación en Azure Portal:

    • Vaya a la aplicación de funciones y seleccione Supervisión>del flujo de registro.
    • Busque mensajes de error relacionados con errores de coincidencia de versiones en tiempo de ejecución o de idioma.
  2. Compruebe que todas las dependencias son compatibles con la nueva versión del lenguaje:

    • Para .NET, asegúrese de que los paquetes NuGet admiten la plataforma de destino.
    • Para Python, compruebe que las versiones del paquete en requirements.txt son compatibles.
    • Para Node.js, compruebe que package.json las dependencias admiten la nueva versión de Node.
  3. Compruebe la versión del paquete de extensiones en el host.json archivo. Es posible que los paquetes más antiguos no admitan versiones de idioma más recientes.

Las funciones producen errores en tiempo de ejecución

Síntomas: Se produce un error en las funciones individuales cuando se desencadenan, con errores en los registros.

Soluciones:

  1. Revise los cambios importantes de la versión de idioma:

  2. Actualice las extensiones de enlace a las versiones compatibles con la nueva versión del lenguaje.

  3. Pruebe las funciones localmente con la nueva versión del lenguaje antes de volver a implementar.

Conflictos de versión de extensión

Síntomas: Errores que mencionan incompatibilidades de versión de extensión o vinculación.

Soluciones:

  1. Actualice la versión del paquete de extensiones en host.json a la versión 4.x o posterior.

    {
      "version": "2.0",
      "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.*, 5.0.0)"
      }
    }
    
  2. En el caso de los proyectos de .NET que usan referencias de extensión explícitas, actualice todos los Microsoft.Azure.WebJobs.Extensions.* paquetes a sus versiones más recientes.

Revertir la actualización

Si necesita revertir a la versión de idioma anterior:

  1. Si ha usado un entorno de preproducción:

    • Vuelva a intercambiar el espacio de ensayo a producción.
    • Restaurar el slot de prueba a la versión anterior para futuros intentos.
  2. Si actualizó la producción directamente:

    • Siga los mismos pasos de actualización de este artículo, pero especifique la versión de idioma anterior.
    • Vuelva a implementar la versión de código anterior.
  3. Supervise la aplicación de funciones para asegurarse de que vuelve al funcionamiento normal.

Sugerencia

Para evitar problemas, pruebe siempre las actualizaciones de la versión del lenguaje en un espacio de ensayo antes de aplicarlas a producción. Cree una copia de seguridad de la configuración de la aplicación de funciones antes de realizar cambios.