Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
Una aplicación de función se ejecuta en una versión específica del runtime de Azure Functions. De forma predeterminada, creará aplicaciones de función en la versión 4.x más reciente del entorno de ejecución de Functions. Las aplicaciones de función solo se admiten cuando se ejecutan en una versión principal compatible. En este artículo se explica cómo configurar una aplicación de funciones en Azure como destino o cómo anclar a una versión específica del entorno de ejecución de Azure Functions cuando sea necesario.
Consideraciones
Tenga en cuenta estas consideraciones al tener como destino una versión específica del entorno de ejecución:
- El plan flex Consumption solo se ejecuta en la versión 4.x del entorno de ejecución. Dado que el plan de consumo flexible no admite la configuración de la
FUNCTIONS_EXTENSION_VERSIONaplicación, la aplicación no puede tener como destino una versión específica del entorno de ejecución al ejecutarse en este plan. - La manera de establecer como destino una versión específica depende de si se ejecuta Windows o Linux.
- Este artículo es específico de Windows o Linux. Elija su sistema operativo en la parte superior del artículo.
- Siempre que sea posible, ejecute siempre la aplicación en la versión en tiempo de ejecución compatible más reciente. Ancle la aplicación a una versión específica solo si se le indica que lo haga debido a un problema con la versión más reciente. Pase siempre a la versión más reciente en tiempo de runtime tan pronto como las funciones se puedan ejecutar correctamente.
- Durante el desarrollo local, la versión instalada de Azure Functions Core Tools debe coincidir con la versión principal del entorno de ejecución que usa la aplicación de funciones en Azure. Para más información, consulte versiones de Core Tools.
Actualización de la versión del entorno de ejecución
Siempre que sea posible, ejecute siempre las aplicaciones de función en la versión más reciente compatible del entorno de ejecución de Azure Functions. Si la aplicación de funciones se está ejecutando actualmente en una versión anterior del entorno de ejecución, migre la aplicación a la versión 4.x.
Cuando la aplicación tenga funciones existentes, deberá tomar precauciones antes de pasar a una versión posterior del runtime principal. En los artículos siguientes se detallan los cambios importantes entre las versiones principales, incluidos los cambios importantes específicos del lenguaje. También se proporcionan instrucciones paso a paso para una migración correcta de la aplicación de funciones existente.
- Migración de la versión 3.x del runtime a la versión 4.x
- Migración de la versión 1.x del runtime a la versión 4.x
Para determinar la versión actual del entorno de ejecución, consulte Ver la versión actual del entorno de ejecución.
Visualización de la versión actual del runtime
Puede ver la versión actual del entorno de ejecución de la aplicación de funciones de una de estas maneras:
Para ver y actualizar la versión en runtime que usa actualmente una aplicación de funciones, siga estos pasos:
En Azure Portal, vaya a la aplicación de función.
Expanda Configuración y seleccione Configuración.
En la pestaña Configuración del entorno de ejecución de Function, busque la versión de runtime. En este ejemplo, la versión se establece en
~4.
Anclar a una versión específica
Azure Functions le permite usar la configuración de la aplicación FUNCTIONS_EXTENSION_VERSION para establecer como destino la versión en runtime que usa una aplicación de funciones determinada. Si especifica solo la versión principal (~4), la aplicación de funciones se actualiza automáticamente a las nuevas versiones secundarias del entorno de ejecución a medida que estén disponibles. Las actualizaciones de versiones menores son automáticas porque es poco probable que las nuevas versiones menores introduzcan cambios que interrumpan tus funciones.
Las aplicaciones Linux usan la configuración del sitio linuxFxVersion junto con FUNCTIONS_EXTENSION_VERSION para determinar la imagen base de Linux correcta en la que se deben ejecutar las funciones. Al crear una nueva aplicación de funciones en Linux, el entorno de ejecución elige automáticamente la imagen base correcta según la versión del entorno de ejecución de la pila de lenguajes.
El anclaje a una versión específica del entorno de ejecución reinicia la aplicación de funciones.
Cuando especificas una versión secundaria específica (como 4.0.12345) en FUNCTIONS_EXTENSION_VERSION, anclas la Function App a esa versión específica del runtime hasta que decidas explícitamente regresar a las actualizaciones automáticas de versiones. Ancle únicamente a una versión secundaria específica durante el tiempo necesario para resolver los problemas relacionados con su aplicación de funciones que le impidan dirigirse a la versión principal. Las versiones secundarias anteriores se quitan del entorno de producción de manera periódica. Cuando la aplicación de funciones está anclada a una versión secundaria que se quita más adelante, la aplicación de funciones se ejecuta en la versión existente más cercana en lugar de la versión establecida en FUNCTIONS_EXTENSION_VERSION.
Los anuncios de App Service anuncian eliminaciones de versiones secundarias.
Nota:
Al intentar publicar desde Visual Studio en una aplicación anclada a una versión secundaria específica del entorno de ejecución, un cuadro de diálogo le pedirá que actualice a la versión más reciente o cancele la publicación. Para evitar esta comprobación cuando tenga que usar una versión secundaria específica, agregue la propiedad <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate> en el archivo .csproj.
Use uno de estos métodos para anclar temporalmente la aplicación a una versión específica del entorno de ejecución:
Para ver y actualizar la versión en runtime que usa actualmente una aplicación de funciones, siga estos pasos:
En Azure Portal, vaya a la aplicación de función.
Expanda Configuración y seleccione Configuración.
En la pestaña Configuración del entorno de ejecución de Function, busque la versión de runtime. En este ejemplo, la versión se establece en
~4.
Para anclar la aplicación a una versión secundaria específica, en el panel izquierdo, expanda Configuración y, a continuación, seleccione Variables de entorno.
En la pestaña Configuración de la aplicación, seleccione FUNCTIONS_EXTENSION_VERSION, cambie Valor a la versión secundaria necesaria y, a continuación, seleccione Aplicar.
Seleccione Aplicar y, a continuación, seleccione Confirmar para aplicar los cambios y reiniciar la aplicación.
La aplicación de funciones se reinicia después de realizar el cambio en la configuración de la aplicación.
Para anclar la aplicación de funciones a una versión específica del entorno de ejecución en Linux, establezca una dirección URL de imagen base específica de la versión en la configuración del linuxFxVersion sitio con el formato DOCKER|<PINNED_VERSION_IMAGE_URI>.
Importante
Las aplicaciones de funciones ancladas en Linux no reciben actualizaciones de funcionalidad de seguridad y host de forma periódica. A menos que un profesional de soporte técnico lo recomiende, use la configuración FUNCTIONS_EXTENSION_VERSION y un valor estándar linuxFxVersion para el idioma y la versión, por ejemplo Python|3.12. Para ver los valores válidos, consulte el artículo de referencia linuxFxVersion.
El anclaje a un runtime específico no es compatible con las aplicaciones de funciones de Linux en un plan de consumo.
En el ejemplo siguiente se muestra el linuxFxVersion valor necesario para anclar una aplicación de funciones de Node.js 22 a una versión específica del entorno de ejecución 4.14.0.3:
DOCKER|mcr.microsoft.com/azure-functions/node:4.14.0.3-node22
Si lo necesita, un profesional del soporte técnico puede proporcionarle un URI de imagen base válido para la aplicación.
Use los comandos de la CLI de Azure siguientes para ver y establecer linuxFxVersion. En ese momento no se puede establecer linuxFxVersion en el portal ni mediante Azure PowerShell:
Para ver la versión actual del entorno de ejecución, use el comando az functionapp config show:
az functionapp config show --name <function_app> \ --resource-group <my_resource_group> --query 'linuxFxVersion' -o tsvEn este código, reemplace
<function_app>por el nombre de la aplicación de función. Reemplace también<my_resource_group>por el nombre del grupo de recursos para la aplicación de función. Se devuelve el valor actual delinuxFxVersion.Para actualizar el valor de
linuxFxVersionen la aplicación de funciones, use el comando az functionapp config set:az functionapp config set --name <FUNCTION_APP> \ --resource-group <RESOURCE_GROUP> \ --linux-fx-version <LINUX_FX_VERSION>Reemplace
<FUNCTION_APP>por el nombre de la aplicación de función. Reemplace también<RESOURCE_GROUP>por el nombre del grupo de recursos para la aplicación de función. Por último, sustituya<LINUX_FX_VERSION>por el valor de una imagen específica proporcionada por un profesional de soporte técnico.
Estos comandos se pueden ejecutar desde Azure Cloud Shell, para lo que es preciso elegir Abrir Cloud Shell en los ejemplos de código anteriores. También puede usar la CLI de Azure localmente para ejecutar este comando después de ejecutar az login para iniciar sesión.
La aplicación de funciones se reinicia después de realizar el cambio en la configuración del sitio.
Actualizar la imagen Linux administrada
Esta sección se aplica únicamente a las aplicaciones existentes en Python 3.11 y Java 8, 11 o 17 en planes Linux Elastic Premium o Dedicated (App Service) que usan una imagen gestionada por Debian Bullseye. Si tu aplicación no cumple todas estas condiciones, no necesitas seguir este procedimiento.
La imagen gestionada más reciente proporciona un camino temporal para que una aplicación afectada permanezca en su versión actual del idioma mientras pasa a una distribución Linux compatible. Este procedimiento no se aplica a Flex Consumption ni a aplicaciones de contenedores personalizados. Para una aplicación en el plan Linux Consumption, migra al plan Flex Consumption.
Esta actualización selecciona la distribución de Linux para la versión de idioma existente mediante un valor de tres partes linuxFxVersion. No ancla el host de Functions a una imagen específica DOCKER|<IMAGE_URI>.
Elige un valor Bookworm o Noble linuxFxVersion
Primero, determina si puedes actualizar la versión del idioma o si necesitas conservar la versión actual y selecciona una distribución Linux más reciente.
Considera actualizar la app a una versión de idioma más nueva compatible. Tras una actualización de idioma, la aplicación utiliza la imagen gestionada por defecto actual para esa versión del idioma.
Si la app debe permanecer en su versión actual del idioma, elige el valor de imagen más reciente correspondiente:
Versión de idioma valor de Debian Bullseye Distribución más reciente Valor de la imagen más reciente Python 3.11 Python\|3.11\|2.0Debian Bookworm Python\|3.11\|3.0Java 8 Java\|8\|2.0Ubuntu Noble Java\|8\|4.0Java 11 Java\|11\|2.0Ubuntu Noble Java\|11\|4.0Java 17 Java\|17\|2.0Ubuntu Noble Java\|17\|4.0Estos valores de tres elementos seleccionan explícitamente la imagen administrada de Linux para estas imágenes correspondientes a la era Bullseye. No son devueltos por el comando
az functionapp list-runtimes.
Prueba la imagen de Linux gestionada más reciente
Prueba tu app y sus dependencias de la imagen más reciente antes de actualizar la app de producción.
Crea una app de prueba separada o crea un espacio de despliegue.
Despliega el mismo código y configuración que usa tu app de producción en la app o slot de prueba.
Establece el valor de imagen más reciente siguiendo los pasos de Actualizar el valor de imagen. Cuando uses una ranura, incluye
--slot <SLOT_NAME>en cada comando de CLI de Azure.Invoca cada una de las funciones y verifica que la aplicación se inicie correctamente, que los desencadenadores se activen según lo previsto y que las dependencias nativas o del sistema operativo se carguen correctamente.
Actualizar el valor de la imagen
Cambiar el valor de la imagen reinicia la aplicación de funciones. Actualiza la producción durante una ventana de mantenimiento, o usa un espacio de despliegue.
Ver el valor actual
linuxFxVersion:az functionapp config show --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --query linuxFxVersion --output tsvEste comando devuelve el valor almacenado en la configuración del sitio. El valor devuelto podría contener solo el idioma y la versión del idioma, como
Python|3.11, en lugar del valor de tres partes que identifica la distribución de Linux. Si el valor no incluye la versión de la imagen, sigue los pasos en Verificar la distribución Linux para confirmar que la aplicación utiliza actualmente Debian Bullseye.Establece
linuxFxVersionen el nuevo valor de la imagen:az functionapp config set --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --linux-fx-version "<LANGUAGE|VERSION|IMAGE_VERSION>"Para Python 3.11 en Debian Bookworm, usa
Python|3.11|3.0. Para Java en Ubuntu Noble, usaJava|8|4.0,Java|11|4.0, oJava|17|4.0.Espera a que la app se reinicie.
Verifica la distribución de Linux
Verifica tanto el valor configurado como la distribución de Linux que ejecuta tu app.
Confirma el valor actualizado
linuxFxVersion:az functionapp config show --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --query linuxFxVersion --output tsvComo has establecido explícitamente un valor de tres componentes, este comando devuelve exactamente el valor de Bookworm o de Noble que hayas seleccionado.
Abre el sitio Kudu de la app en
https://<APP_NAME>.scm.azurewebsites.net.Selecciona Entorno y revisa
KUDU_ENV, o abre una sesión SSH y ejecuta:cat /etc/os-releaseConfirma que el resultado identifica a Debian Bookworm para Python 3.11 o Ubuntu Noble para Java 8, 11 o 17.
Invoca cada función y confirma que los desencadenadores y las dependencias siguen funcionando según lo previsto.
Revertir la actualización de imagen gestionada de Linux
Si la imagen actualizada causa un problema de compatibilidad, restaura temporalmente el valor anterior linuxFxVersion mientras solucionas el problema.
Warning
Debian Bullseye ya no es compatible tras su fecha de fin de vida útil y no recibe actualizaciones de seguridad. Usa el rollback solo como mitigación temporal y vuelve a una imagen soportada lo antes posible.
En la tabla Elegir un valor de Bookworm o Noble
linuxFxVersion, busque el valor de Debian Bullseye para la versión de idioma.Ajuste
linuxFxVersionen ese valor de Bullseye:az functionapp config set --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --linux-fx-version "<BULLSEYE_LINUX_FX_VERSION>"Espera a que la app se reinicie y luego repite las comprobaciones en Verificar la distribución de Linux.