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 función se crean 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 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, ejecute siempre las funciones en la versión compatible más reciente del entorno de ejecución de Azure Functions. Solo debe anclar la aplicación a una versión específica 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, 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:

Para ver y actualizar la versión en runtime que usa actualmente una aplicación de funciones, siga estos pasos:

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

  2. Expanda Configuración y seleccione Configuración.

  3. 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.

    Recorte de pantalla que muestra cómo ver la versión en runtime.

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 secundarias se realizan automáticamente porque es probable que las nuevas versiones secundarias introduzcan cambios que interrumpirían las 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 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 de versiones. 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 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 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:

Para ver y actualizar la versión en runtime que usa actualmente una aplicación de funciones, siga estos pasos:

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

  2. Expanda Configuración y seleccione Configuración.

  3. 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.

    Recorte de pantalla que muestra cómo ver la versión en runtime.

  1. 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.

  2. 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.

  3. 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 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.

En el ejemplo siguiente se muestra el valor de linuxFxVersion necesario para anclar una aplicación de función de Node.js 16 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-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