Cómo seleccionar un destino para versiones en tiempo de ejecución de Azure Functions

Una aplicación de función se ejecuta en una versión específica del runtime de Azure Functions. De manera predeterminada, las aplicaciones de funciones se crean en la versión 4.x más reciente del entorno de ejecución de Functions. Las aplicaciones de funciones solo se admiten cuando se ejecutan en una versión principal admitida. En este artículo, se explica cómo configurar una aplicación de funciones en Azure para que tenga como destino (o anclar a) una versión específica cuando sea necesario.

La manera de establecer como destino una versión específica depende de si se ejecuta Windows o Linux. Esta versión del artículo admite Windows. Elija su sistema operativo en la parte superior del artículo.

La manera de establecer como destino una versión específica depende de si se ejecuta Windows o Linux. Esta versión del artículo admite Linux. Elija su sistema operativo en la parte superior del artículo.

Importante

Siempre que sea posible, debe ejecutar las funciones en la versión más reciente compatible del entorno de ejecución de Azure Functions. Solo debe anclar la aplicación a una versión específica cuando se le indique que lo haga debido a un problema en la versión más reciente. Siempre debe pasar a la versión más reciente del entorno de ejecución en cuanto sus 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, debe ejecutar las aplicaciones de funciones en la versión más reciente compatible del entorno de ejecución de Azure Functions. Si la aplicación de funciones se ejecuta actualmente en una versión anterior del entorno de ejecución, debe migrar 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.

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:

Utilice el siguiente procedimiento para ver y actualizar la versión del runtime que utiliza una aplicación de función.

  1. En Azure Portal, vaya a la aplicación de función.

  2. En las opciones de configuración haga clic en Configuración. En la pestaña Configuración del entorno de ejecución de Function, busque la versión del entorno de ejecución. Anote la versión específica del entorno de ejecución. En el ejemplo siguiente, la versión se establece en ~4.

    Screenshot showing how to view the runtime version.

Anclaje a una versión específica

Azure Functions permite usar la configuración de la aplicación FUNCTIONS_EXTENSION_VERSION para establecer como destino la versión del entorno de ejecución que usa una aplicación de funciones determinada. Cuando se especifica solo la versión principal (~4), la aplicación de funciones se actualizará automáticamente a las nuevas versiones secundarias del entorno de ejecución cuando estén disponibles. Las actualizaciones de versiones secundarias se realizan automáticamente porque las nuevas versiones secundarias no deberían introducir cambios importantes.

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 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 hace que la aplicación de funciones se reinicie.

Cuando se especifica una versión secundaria determinada (como 4.0.12345) en FUNCTIONS_EXTENSION_VERSION, la aplicación de funciones se ancla a esa versión específica del entorno de ejecución hasta que se decida explícitamente volver a las actualizaciones automáticas. Solo debe anclar a una versión secundaria específica el tiempo suficiente como para resolver cualquier problema con la aplicación de funciones que le impida tener como destino la versión principal. Las versiones secundarias anteriores se quitan del entorno de producción de manera periódica. Cuando se ha anclado a una versión secundaria que luego se quita, la aplicación de funciones se ejecuta en su lugar en la versión existente más cercana en lugar de la versión establecida en FUNCTIONS_EXTENSION_VERSION. Las eliminaciones de versiones secundarias se anuncian en los anuncios de App Service.

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:

Utilice el siguiente procedimiento para ver y actualizar la versión del runtime que utiliza una aplicación de función.

  1. En Azure Portal, vaya a la aplicación de función.

  2. En las opciones de configuración haga clic en Configuración. En la pestaña Configuración del entorno de ejecución de Function, busque la versión del entorno de ejecución. Anote la versión específica del entorno de ejecución. En el ejemplo siguiente, la versión se establece en ~4.

    Screenshot showing how to view the runtime version.

  1. Para anclar la aplicación a una versión secundaria específica, seleccione Configuración de la aplicación>FUNCTIONS_EXTENSION_VERSION, cambie el campo Valor a la versión secundaria necesaria y seleccione Aceptar.

  2. Seleccione Guardar>Continuar 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 la dirección URL de la imagen base específica de la versión en la configuración del sitio linuxFxVersion 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.9. Para ver los valores válidos, consulte el linuxFxVersionartículo de referencia.

El anclaje a un runtime específico no es compatible con las aplicaciones de funciones de Linux en un plan de consumo.

A continuación, se muestra un ejemplo del valor de linuxFxVersion necesario para anclar una aplicación de funciones de Node.js 16 a una versión específica del entorno de ejecución, la versión 4.14.0.3:

DOCKER|mcr.microsoft.com/azure-functions/node:4.14.0.3-node16

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 tsv
    

    En 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 de linuxFxVersion.

  • Para actualizar el valor de linuxFxVersion en 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.

Pasos siguientes