Despliegue basado en paquetes para Azure Functions

Este artículo describe cómo crear un paquete de despliegue .zip listo para ejecutar, desplegarlo en Azure y configurar tu aplicación de funciones para que se ejecute directamente desde el paquete. Puedes desplegar usando Azure Functions Core Tools, CLI de Azure o las APIs REST de despliegue.

El despliegue basado en paquetes es el predeterminado para las aplicaciones de función que se ejecutan desde código. La tecnología de despliegue y la configuración del paquete dependen del plan de alojamiento. Selecciona tu plan de alojamiento al principio de este artículo.

Azure Functions ofrece toda la gama de opciones de despliegue e integración continua que ofrece Azure App Service. Para más información, vea Implementación continua para Azure Functions.

Despliegue de paquetes por plan de alojamiento

La siguiente tabla resume el proceso de despliegue y la configuración de paquetes para cada plan de alojamiento:

Plan de hospedaje Proceso de implementación Configuración de paquete
Plan de consumo flexible Despliegue gestionado de paquetes Se ejecuta desde el paquete desplegado por defecto. No establezca WEBSITE_RUN_FROM_PACKAGE.
Plan Premium Despliegue de ZIP Configura WEBSITE_RUN_FROM_PACKAGE en 1 para que se ejecute desde el paquete implementado.
Plan Dedicado (App Service) Despliegue de ZIP Configura WEBSITE_RUN_FROM_PACKAGE como 1 para ejecutar desde el paquete implementado.
Plan de consumo en Windows Despliegue de ZIP Configura WEBSITE_RUN_FROM_PACKAGE a 1 para ejecutar desde el paquete desplegado.
Plan de consumo en Linux URL de compilación remota o paquete externo Utiliza una URL de paquete externa para un paquete construido localmente.
Azure Container Apps (Aplicaciones de Contenedores de Azure) Despliegue de imágenes de contenedores El despliegue de código basado en paquetes no se aplica.

Note

El contenido de este artículo no es relevante para el plan de alojamiento seleccionado actualmente. Para elegir otro plan, utiliza el selector al principio de este artículo. Para una comparación de todos los planes de alojamiento, consulte las opciones de alojamiento de Azure Functions.

Las aplicaciones de función alojadas en Azure Container Apps se despliegan como imágenes de contenedores, no como paquetes .zip. Para crear y desplegar una aplicación de funciones basada en imágenes, consulte Crear una aplicación de funciones en Azure Container Apps usando código.

Crear un paquete de despliegue

En la mayoría de los casos, no necesitas crear tú mismo el paquete de despliegue. Estos métodos de despliegue basados en herramientas crean el paquete como parte del proceso de publicación:

Para las implementaciones de Azure Pipelines, los pasos de compilación de la canalización crean el archivo .zip y lo pasan a la tarea de implementación AzureFunctionApp.

Cuando necesites trabajar directamente con un paquete de despliegue listo para ejecutar, crea el paquete usando func pack. Por ejemplo, crea tú mismo el paquete cuando despliegues usando una URL externa de paquete.

También puedes crear el archivo .zip manualmente. Cuando crees el archivo manualmente, sigue estos requisitos de estructura de paquetes.

Requisitos del paquete de despliegue

El archivo zip que implemente debe contener todos los archivos necesarios para ejecutar la aplicación de funciones. Puede crear manualmente un archivo ZIP desde el contenido de una carpeta de proyecto de Functions mediante la funcionalidad de compresión integrada .zip o las herramientas que no son de Microsoft.

El archivo debe incluir el archivo host.json en la raíz de la carpeta extraída. La pila de lenguajes seleccionada para la aplicación de la función crea otros requisitos.

Importante

En el caso de los lenguajes que generan la salida compilada para la implementación, asegúrese de comprimir el contenido de la carpeta de salida que tiene pensado publicar y no toda la carpeta del proyecto. Cuando Functions extrae el contenido del archivo zip, el archivo host.json debe existir en la raíz del paquete.

Un proceso de despliegue zip extrae los archivos y carpetas del archivo .zip en el wwwroot directorio. Si incluyes el directorio padre al crear el archivo, el sistema no encuentra los archivos que espera ver en wwwroot.

Implementar un paquete

Flex Consumption utiliza el despliegue de paquetes para almacenar un paquete listo para ejecutarse en el contenedor de almacenamiento de despliegue de la app. La app se ejecuta directamente desde este paquete. No establezcas la configuración de la aplicación WEBSITE_RUN_FROM_PACKAGE.

Despliega el paquete usando Core Tools, Visual Studio Code o CLI de Azure. Estas herramientas seleccionan automáticamente el comportamiento correcto de despliegue de paquetes para una aplicación Flex Consumption.

Estas herramientas realizan un despliegue push enviando el paquete al punto final de despliegue de la app. Para Flex Consumption, estos clientes envían el paquete a /api/publish en el host de scm la aplicación. Cuando el punto final de despliegue solo es accesible a través de un punto final privado, el ordenador, ejecutor o agente que realiza el despliegue debe tener conectividad de red y resolución DNS para el punto final privado de despliegue. El servicio de despliegue almacena el paquete procesado en el contenedor de despliegue configurado; subir directamente un paquete a este contenedor no lo despliega. Para desplegar sin tener que empujar desde el cliente iniciador al punto final de despliegue, utiliza un despliegue de plantilla Bicep o ARM con una URL de paquete a la que el servicio de despliegue pueda acceder.

Implementación con la CLI de Azure

Usa el az functionapp deployment source config-zip comando para desplegar un paquete:

az functionapp deployment source config-zip --resource-group <RESOURCE_GROUP> \
  --name <APP_NAME> --src <ZIP_FILE_PATH>

Añade --build-remote true cuando el proyecto de origen requiera una compilación remota. No pidas una compilación remota para un paquete que func pack ya está integrado en estado listo para ejecutar, como un paquete de despliegue de Go.

Para configurar el almacenamiento de despliegue o recuperar un despliegue anterior, consulte Crear y gestionar aplicaciones de funciones en el plan de Consumo Flexible.

Implementar un paquete

Las aplicaciones premium, dedicadas y de los planes de consumo utilizan la API de despliegue zip. El servicio de despliegue realiza estas acciones:

  • Elimina los archivos que quedan de despliegues anteriores.
  • Ejecuta scripts de despliegue y otras personalizaciones de despliegue.
  • Escribe los registros de despliegue.
  • Se activa la función de sincronización.

Importante

En un despliegue zip, los archivos del despliegue anterior se eliminan o actualizan cuando formaban parte de ese despliegue. El proceso de despliegue conserva otros archivos y directorios en tu aplicación de funciones que no formaban parte del despliegue anterior. Para detalles de implementación, consulte la referencia de despliegue zip.

Implementación con la CLI de Azure

Usa CLI de Azure para activar un despliegue push. Para implementar el archivo .zip en la aplicación de función, use el comando az functionapp deployment source config-zip. Para usar este comando, debe usar la versión 2.0.21 o posterior de la CLI de Azure. Para ver la versión de la CLI de Azure que usa, use el az --version comando .

En el siguiente comando, reemplace el marcador de posición <zip_file_path> por la ruta de acceso a la ubicación del archivo .zip. Asimismo, reemplace <app_name> por el nombre único de su aplicación de funciones y <resource_group> por el nombre del grupo de recursos.

az functionapp deployment source config-zip -g <resource_group> -n \
<app_name> --src <zip_file_path>

Este comando despliega archivos de proyecto desde el archivo .zip a tu aplicación de función en Azure y reinicia la aplicación.

Cuando se usa la CLI de Azure en el equipo local, <zip_file_path> es la ruta de acceso al archivo .zip en el equipo. También puede ejecutar la CLI de Azure en Azure Cloud Shell. Cuando use Cloud Shell, recuerde que debe cargar primero el archivo .zip de implementación en la cuenta de Azure Files que esté asociada con Cloud Shell. En ese caso, <zip_file_path> será la ubicación de almacenamiento que utiliza la cuenta de Cloud Shell. Para obtener más información, consulte Persistencia de archivos en Azure Cloud Shell.

Implementación de un archivo ZIP con las API REST

Puede usar el servicio de implementación de las API de REST para implementar el archivo .zip en su aplicación en Azure. Para implementar, envíe un mensaje de solicitud a https://<app_name>.scm.azurewebsites.net/api/zipdeploy. La solicitud POST debe contener el archivo .zip en el cuerpo del mensaje. Las credenciales de implementación de la aplicación se proporcionan en la solicitud mediante la autenticación de HTTP BASIC. Para obtener más información, consulte la referencia de implementación para la inserción del archivo .zip.

Para la autenticación básica HTTP, necesita las credenciales de implementación de App Service. Para ver cómo establecer sus credenciales de implementación, consulte Establecimiento y restablecimiento de credenciales de nivel de usuario.

Con cURL

En el ejemplo siguiente se usa la herramienta cURL para implementar un archivo .zip. Reemplace los marcadores de posición <deployment_user>, <zip_file_path> y <app_name>. Cuando cURL se lo solicite, escriba la contraseña.

curl -X POST -u <deployment_user> --data-binary "@<zip_file_path>" https://<app_name>.scm.azurewebsites.net/api/zipdeploy

Esta solicitud desencadena la implementación de inserción desde el archivo .zip cargado. Puede revisar las implementaciones actuales y pasadas mediante el punto de conexión https://<app_name>.scm.azurewebsites.net/api/deployments, tal como se muestra en el siguiente ejemplo de cURL. Una vez más, reemplace <app_name> por el nombre de la aplicación y <deployment_user> por el nombre de usuario de las credenciales de implementación.

curl -u <deployment_user> https://<app_name>.scm.azurewebsites.net/api/deployments

Implementación asincrónica de archivos ZIP

Al implementar de forma sincrónica, es posible que reciba errores relacionados con los tiempos de espera de conexión. Agregue ?isAsync=true a la dirección URL para realizar una implementación de forma asincrónica. Recibirá una respuesta en cuanto se cargue el archivo ZIP con un encabezado Location que apunte a la dirección URL de estado de la implementación que hay que sondear. Al sondear la dirección URL proporcionada en el Location encabezado, recibirá una respuesta HTTP 202 (aceptada) mientras el proceso está en curso y una respuesta HTTP 200 (OK) una vez que el archivo se ha expandido y la implementación se completa correctamente.

Autenticación de Microsoft Entra

Una alternativa al uso de la autenticación básica HTTP para la implementación de archivos ZIP es usar una identidad de Microsoft Entra. Es posible que se necesite la identidad de Microsoft Entra si la autenticación HTTP BASIC está deshabilitada para el sitio SCM.

Se requiere un token de acceso de Microsoft Entra válido para el usuario o la entidad de servicio que realiza la implementación. Se puede recuperar un token de acceso mediante el comando az account get-access-token de la CLI de Azure. El token de acceso se usará en el encabezado de autenticación de la solicitud HTTP POST.

curl -X POST \
    --data-binary "@<zip_file_path>" \
    -H "Authorization: Bearer <access_token>" \
    "https://<app_name>.scm.azurewebsites.net/api/zipdeploy"

Con PowerShell

En el ejemplo siguiente se usa Publish-AzWebapp para cargar el archivo .zip. Reemplace los marcadores de posición <group-name>, <app-name> y <zip-file-path>.

Publish-AzWebapp -ResourceGroupName <group-name> -Name <app-name> -ArchivePath <zip-file-path>

Esta solicitud desencadena la implementación de inserción desde el archivo .zip cargado.

Para revisar las implementaciones actuales y pasadas, ejecute los siguientes comandos. De nuevo, reemplace los marcadores <deployment-user>, <deployment-password> y <app-name>.

$username = "<deployment-user>"
$password = "<deployment-password>"
$apiUrl = "https://<app-name>.scm.azurewebsites.net/api/deployments"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$userAgent = "powershell/1.0"
Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -UserAgent $userAgent -Method GET

Despliega usando Bicep o una plantilla de Azure Resource Manager

Puedes desplegar un paquete en una aplicación Flex Consumption como parte de un despliegue de plantillas de Bicep o Azure Resource Manager (ARM). Define un Microsoft.Web/sites/extensions recurso que utilice la /onedeploy extensión y proporcione la URL remota del paquete en la packageUri propiedad.

Debes nombrar el archivo del paquete released-package.zip. El anfitrión de Functions debe poder acceder tanto a la URL remota del paquete como al contenedor de almacenamiento de despliegue. Subir el paquete directamente al contenedor de despliegue no lo despliega.

Para ejemplos de plantillas de Bicep y ARM, véase Definir el paquete de despliegue de Flex Consumption.

Despliega usando una plantilla de Azure Resource Manager

Puedes usar la extensión ZipDeploy de la plantilla Azure Resource Manager (ARM) para enviar tu archivo de .zip a tu aplicación de función.

Ejemplo de plantilla ARM de ZipDeploy

Esta plantilla incluye un espacio de ensayo y producción y se implementa en una u otra. Normalmente, se utiliza esta plantilla para implementar en el slot de ensayo y luego intercambiarlo para que el nuevo paquete ZIP se ejecute en el slot de producción.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "appServiceName": {
      "type": "string"
    },
    "deployToProduction": {
      "type": "bool",
      "defaultValue": false
    },
    "slot": {
      "type": "string",
      "defaultValue": "staging"
    },
    "packageUri": {
      "type": "secureString"
    }
  },
  "resources": [
    {
      "condition": "[parameters('deployToProduction')]",
      "type": "Microsoft.Web/sites/extensions",
      "apiVersion": "2021-02-01",
      "name": "[format('{0}/ZipDeploy', parameters('appServiceName'))]",
      "properties": {
        "packageUri": "[parameters('packageUri')]",
        "appOffline": true
      }
    },
    {
      "condition": "[not(parameters('deployToProduction'))]",
      "type": "Microsoft.Web/sites/slots/extensions",
      "apiVersion": "2021-02-01",
      "name": "[format('{0}/{1}/ZipDeploy', parameters('appServiceName'), parameters('slot'))]",
      "properties": {
        "packageUri": "[parameters('packageUri')]",
        "appOffline": true
      }
    }
  ]
}

Para el despliegue inicial, despliega directamente al slot de producción. Para más información, consulte Implementaciones de ranuras.

Ejecución de funciones desde el paquete de implementación

Ejecutar directamente desde el paquete de despliegue evita copiar archivos al wwwroot directorio. En su lugar, el entorno de ejecución de Functions monta el paquete como un directorio de solo lectura wwwroot. Este enfoque:

  • Reduce los problemas de bloqueo de copias de archivos.
  • Comprueba los archivos que se ejecutan en la aplicación.
  • Mejora el rendimiento del despliegue de Azure Resource Manager.
  • Puede reducir el tiempo de arranque en frío, especialmente para aplicaciones JavaScript con grandes árboles de paquetes npm.

Configuración del paquete Flex Consumption

Las aplicaciones Flex Consumption se ejecutan por defecto desde un paquete. No añadas la configuración de la WEBSITE_RUN_FROM_PACKAGE app. Los ajustes de despliegue, incluyendo el contenedor de almacenamiento y su método de autenticación, son propiedades del recurso de la aplicación funcional. Para obtener más información, consulte Implementación.

Configuración premium y de paquetes dedicados

Configura WEBSITE_RUN_FROM_PACKAGE para 1 que se ejecute directamente desde el paquete desplegado localmente. El entorno de ejecución almacena el paquete en la c:\home\data\SitePackages carpeta de Windows o /home/data/SitePackages en la carpeta de Linux.

Configuración del paquete de consumo

El valor soportado WEBSITE_RUN_FROM_PACKAGE depende del sistema operativo:

Sistema operativo Value Comportamiento
Windows 1 La app se ejecuta desde un paquete en la c:\home\data\SitePackages carpeta.
Linux <URL> La aplicación se ejecuta desde el paquete en la URL especificada. Utiliza un contenedor privado de Azure Blob Storage al que se accede usando una identidad gestionada.

Importante

Las aplicaciones de funciones que siguen ejecutándose con el tiempo de ejecución v3 en su fase de fin de vida útil en Linux, en un plan de consumo, dejarán de ejecutarse después del 30 de septiembre de 2026. Para evitar interrupciones del servicio, migre la aplicación al entorno de ejecución v4.

La opción de hospedar aplicaciones de funciones en Linux en un plan de consumo se retira el 30 de septiembre de 2028. El plan de consumo de Linux no recibirá nuevas características ni versiones de idioma. Las aplicaciones que se ejecutan en Windows en un plan de consumo no se ven afectadas actualmente. Migre las aplicaciones al plan de consumo flexible antes de la fecha de retirada.

Consideraciones sobre el despliegue de paquetes

Ten en cuenta estos requisitos y limitaciones cuando despliegues y ejecutes tu aplicación de funciones desde un paquete:

  • El paquete debe usar .zip formato. No se admiten los formatos Tar y gzip.
  • El tamaño máximo del paquete es de 1 GB. El despliegue utiliza almacenamiento temporal al descomprimir archivos del proyecto, por lo que la aplicación también debe tener suficiente almacenamiento temporal. El plan de Consumo proporciona 500 MB de almacenamiento temporal por plan.
  • Cuando se ejecuta a partir de un paquete, los archivos de wwwroot son de solo lectura, incluso en el portal de Azure.
  • No puedes usar la caché local cuando ejecutas desde un paquete.
  • No establezcas WEBSITE_RUN_FROM_PACKAGE cuando solicites una compilación remota. En su lugar, establece SCM_DO_BUILD_DURING_DEPLOYMENT=true. En Linux, establece también ENABLE_ORYX_BUILD=true.
  • WEBSITE_RUN_FROM_PACKAGE no funciona con MSDeploy. Usa la implementación mediante ZIP en su lugar.

Agregar la configuración de WEBSITE_RUN_FROM_PACKAGE

Hay varias maneras de agregar, actualizar y eliminar opciones de configuración de la aplicación de función:

Para aplicar los cambios realizados en la configuración de la aplicación de funciones, es necesario reiniciar la aplicación de funciones.

Ejecutar desde un paquete cargado mediante implementación ZIP

Configura WEBSITE_RUN_FROM_PACKAGE para 1 antes de desplegar el paquete. La API de despliegue zip copia el paquete a la SitePackages carpeta en lugar de extraer su contenido a wwwroot. El despliegue también crea un archivo packagename.txt que identifica el paquete a montar. Tras reiniciar la aplicación, el paquete se monta como directorio de solo wwwroot lectura. Las aplicaciones de consumo de Linux no soportan este valor de configuración y deben ejecutarse desde una URL de paquete externo.

Cuando el despliegue se reinicia, las ejecuciones de funciones que están en ejecución terminan. Para obtener información sobre cómo escribir funciones que admitan reinicios de forma segura, consulte Escribir funciones sin estado.

Ejecutar desde una URL de paquete externa

Usa una URL externa de paquete cuando necesites gestionar el almacenamiento de paquetes tú mismo. Necesitas esta opción para ejecutar un paquete construido localmente en una app de Linux Consumption. No está compatible con Flex Consumption.

Note

No puedes cambiar una aplicación de funciones existente que usa WEBSITE_RUN_FROM_PACKAGE=1 para ejecutarse desde una dirección URL de un paquete externo. Para usar una URL de paquete externa, crea una nueva aplicación de funciones y establece WEBSITE_RUN_FROM_PACKAGE en la URL del paquete.

Usa un contenedor privado de Blob Storage y concede a la identidad administrada de la aplicación de funciones acceso al paquete. Usa la identidad gestionada porque los tokens SAS caducan y requieren mantenimiento. Cada vez que publiques un paquete actualizado, debes sincronizar manualmente los disparadores. Si actualiza el paquete en la misma ubicación sin cambiar su URL, reinicie la aplicación de función antes de sincronizar los desencadenadores.

Sube manualmente un paquete a Azure Blob Storage

  1. Crea un paquete de despliegue .zip.

  2. En Azure Portal, vaya a la cuenta de almacenamiento.

  3. En Almacenamiento de Datos, selecciona Contenedores y luego crea o selecciona un contenedor privado.

  4. Sube el paquete al contenedor.

  5. Selecciona el blob subido y copia su URL. Si no usas una identidad gestionada, genera una URL SAS en su lugar.

  6. En tu app de función, expande Configuración, selecciona variables de Entorno y luego selecciona Añadir en la pestaña de configuración de la App.

  7. Añade una configuración llamada WEBSITE_RUN_FROM_PACKAGE con la URL del paquete como valor.

  8. Aplica los cambios, reinicia la app y sincroniza manualmente los disparadores.

Obter un paquete desde Azure Blob Storage usando una identidad gestionada

Puede configurar Azure Blob Storage para autorizar solicitudes con Microsoft Entra ID. Esta configuración significa que, en lugar de generar una clave SAS con una expiración, puede confiar en la identidad administrada de la aplicación.

De manera predeterminada, se usa la identidad asignada por el sistema a la aplicación. Si desea especificar una identidad asignada por el usuario, puede establecer la configuración de la aplicación WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID en el identificador de recurso de esa identidad. La configuración también puede aceptar SystemAssigned como un valor, que es equivalente a omitir la configuración.

Para habilitar la obtención del paquete usando la identidad:

  1. Asegúrese de que el blob esté configurado para acceso privado.

  2. Conceda a la identidad el rol Lector de datos de Storage Blob con ámbito en el blob del paquete. Consulte Assignar un rol de Azure para acceder a datos de blobs para obtener más información sobre cómo crear la asignación de roles.

  3. Establezca la configuración de la aplicación WEBSITE_RUN_FROM_PACKAGE en la dirección URL del blob del paquete. Esta dirección URL suele ser del formato https://<storage-account-name>.blob.core.windows.net/<container-name>/<path-to-package> o similar.

  4. Si desea especificar una identidad asignada por el usuario, puede establecer la configuración de la aplicación WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID en el identificador de recurso de esa identidad. La configuración también puede aceptar SystemAssigned como un valor, aunque esto es lo mismo que omitir la configuración por completo. Un identificador de recurso es una representación estándar de un recurso en Azure. Para una identidad administrada asignada por el usuario, eso será /subscriptions/subid/resourcegroups/rg-name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-name. El ID de recurso de una identidad administrada asignada por el usuario se puede obtener en Configuración>Propiedades>ID para la identidad administrada asignada por el usuario.

Personalización de la implementación

En el proceso de implementación se da por supuesto que el archivo .zip que se inserta contiene una aplicación lista para ejecutarse. No se ejecuta ninguna personalización de forma predeterminada. Para habilitar los mismos procesos de compilación que se obtienen con la integración continua, agregue los siguientes elementos a la configuración de la aplicación:

SCM_DO_BUILD_DURING_DEPLOYMENT=true

Cuando se realiza la implementación de inserción del archivo .zip, el valor que se establece de forma predeterminada es false. El valor predeterminado es true para las implementaciones de integración continua. Cuando el valor se establece en true, la configuración relacionada con la implementación se usa durante la implementación. Puede configurar estas opciones a modo de configuración de la aplicación o en un archivo de configuración de implementación que se encuentra en la raíz del archivo .zip. Para obtener más información, consulte Repository and deployment-related settings (Repositorio y configuración relacionada con la implementación) en la referencia de la implementación.

Descarga de los archivos de aplicación de función

Si necesitas el paquete exacto que ejecuta tu app actualmente, descárgalo del contenedor Blob Storage configurado para los despliegues de tu app:

  1. En la página de tu app de funciones en el portal de Azure, expande Configuración y luego selecciona Configuración de despliegue.

  2. En la ubicación del paquete de aplicaciones, anote la cuenta de almacenamiento y el contenedor usados para los despliegues.

  3. Ve a esa cuenta de almacenamiento, expande el almacenamiento de datos y luego selecciona Contenedores.

  4. Selecciona el contenedor de despliegue, selecciona el paquete actual y luego selecciona Descargar.

El paquete descargado contiene el contenido de la app que has desplegado, que puede diferir del de tu proyecto de origen. Cada despliegue sobrescribe el paquete actual y el contenedor de despliegue no proporciona historial de despliegue.

Para aplicaciones desplegadas usando CI/CD, mantén el proyecto fuente en control de versiones y conserva artefactos de compilación listos para ejecutar según tu política de retención de versiones. Utiliza un artefacto retenido para volver a desplegar una versión específica. Usa el paquete en el contenedor de despliegue cuando necesites exactamente el paquete que la app ejecuta actualmente o cuando el artefacto original ya no esté disponible.

Descarga de los archivos de aplicación de función

Si creó las funciones mediante el editor de Azure Portal, puede descargar el proyecto de la aplicación de funciones existente como un archivo .zip de una de estas maneras:

  1. Inicie sesión en Azure Portal y vaya a la aplicación de función.

  2. En la pestaña Introducción, seleccione Descargar contenido de la aplicación. Seleccione las opciones de descarga y, a continuación, seleccione Descargar.

Captura de pantalla que muestra la página de Azure Portal para descargar el proyecto de aplicación de funciones.

El archivo .zip descargado tiene el formato correcto para volver a publicarlo en la aplicación de función mediante la implementación de inserción de archivos .zip. La descarga del portal también puede agregar los archivos necesarios para abrir la aplicación de función directamente en Visual Studio.

Para aplicaciones desplegadas usando CI/CD, mantén el proyecto fuente en control de versiones y conserva artefactos de compilación listos para ejecutar según tu política de retención de versiones. Un archivo fuente descargado de un repositorio no es un paquete de despliegue. Utiliza tu flujo de trabajo de despliegue para construir y desplegar el proyecto.