Administración de la aplicación de funciones

En Azure Functions, una Function App ofrece el contexto de ejecución de funciones individuales. Los comportamientos de Function App se aplican a todas las funciones hospedadas en una Function App determinada. Todas las funciones de una aplicación de funciones deben compartir el mismo lenguaje.

Las funciones individuales de una aplicación de funciones se implementan y escalan juntas. Todas las funciones de la misma aplicación de funciones comparten recursos (por instancia) a medida que se escala la aplicación de funciones.

Las cadenas de conexión, las variables de entorno y otras opciones de configuración de la aplicación se definen por separado para cada aplicación de funciones. Los datos que se deben compartir entre las aplicaciones de funciones deben almacenarse externamente en un almacén persistente.

Introducción a Azure Portal

Nota:

Debido a limitaciones en la edición del código de función en Azure Portal, debe desarrollar las funciones localmente y publicar el proyecto de código en una aplicación de funciones en Azure. Para más información, consulte Limitaciones de desarrollo en Azure Portal.

  1. Para empezar, inicie sesión en Azure Portal usando su cuenta de Azure. En la barra de búsqueda en la parte superior del portal, escriba el nombre de la aplicación de funciones y selecciónela en la lista.

  2. En Configuración en el panel izquierdo, seleccione Configuración.

    Function app overview in the Azure portal

Puede navegar a todo lo que necesita para administrar Function App desde la página de información general, en particular la Configuración de la aplicación y las Características de la plataforma .

Trabajo con la configuración de la aplicación

Puede crear cualquier número de configuraciones de aplicación que requiera el código de la función. Functions también usa configuraciones de aplicación predefinidas. Para obtener más información, vea Referencia de configuración de aplicación para Azure Functions.

Esta configuración se almacena cifrada. Para más información, consulte Seguridad de la configuración de la aplicación.

La configuración de la aplicación se puede administrar no solo tanto desde Azure Portal, como desde la CLI de Azure y Azure PowerShell. También se puede administrar desde Visual Studio Code y desde Visual Studio.

Para buscar la configuración de la aplicación, consulte Introducción a Azure Portal.

La pestaña Configuración de la aplicación mantiene la configuración de la aplicación que la aplicación de funciones usa. Debe seleccionar Mostrar valores para ver los valores en el portal. Para agregar una configuración en el portal, seleccione Nueva configuración de la aplicación y agregue el nuevo par clave-valor.

Function app settings in the Azure portal.

Uso de la configuración de la aplicación

Esta configuración de la aplicación de función también se puede leer en el código como variables de entorno. Para más información, consulte la sección Variables de entorno de estos temas de referencia específicos del lenguaje:

Al desarrollar una aplicación de funciones localmente, debe mantener copias locales de estos valores en el archivo del proyecto local.settings.json. Para más información, consulte el archivo de configuración local.

Configuración de implementación de FTPS

Azure Functions admite la implementación de código de proyecto en la aplicación de funciones mediante FTPS. Dado que este método de implementación requiere que sincronices desencadenadores, no se recomienda este método. Para transferir archivos de proyecto de forma segura, use siempre FTPS y no FTP.

Puede obtener las credenciales necesarias para la implementación de FTPS mediante uno de estos métodos:

Puede obtener las credenciales de publicación de FTPS en Azure Portal descargando el perfil de publicación de la aplicación de funciones.

Importante

El perfil de publicación contiene credenciales de seguridad importantes. Siempre debe proteger el archivo descargado en el equipo local.

Para descargar el perfil de publicación de la aplicación de funciones:

  1. Seleccione la página Información general de la aplicación de funciones y, después, seleccione Obtener perfil de publicación.

    Download publish profile

  2. Guarde y copie el contenido del archivo.

  1. En el archivo, localice el publishProfile elemento con el atributo publishMethod="FTP". En este elemento, los atributos publishUrl, userName y userPWD contienen la dirección URL de destino y las credenciales para la publicación de FTPS.

Tipo de plan de hospedaje

Al crear una aplicación de funciones, también se crea un plan de hospedaje en el que se ejecuta la aplicación. Un plan puede tener una o varias aplicaciones de funciones. La funcionalidad, el escalado y el precio de las funciones dependen del tipo de plan. Para más información, consulte las opciones de hospedaje de Azure Functions.

Puede determinar el tipo de plan que usa la aplicación de funciones desde Azure Portal o mediante el uso de las API de la CLI de Azure o Azure PowerShell.

Los valores siguientes indican el tipo de plan:

Tipo de plan Portal Azure CLI/PowerShell
Consumo Consumo Dynamic
Premium ElasticPremium ElasticPremium
Dedicado (App Service) Varios Varios

Para determinar el tipo de plan que usa la aplicación de funciones, consulte Plan de App Service en la pestaña Introducción de la aplicación de funciones en Azure Portal. Para ver el plan de tarifa, seleccione el nombre del Plan de App Service y, a continuación, seleccione Propiedades en el panel izquierdo.

View scaling plan in the portal

Planear la migración

Puede usar Azure Portal o los comandos de la CLI de Azure para migrar una aplicación de funciones de un plan de Consumo y un plan Premium en Windows. Al migrar entre planes, tenga en cuenta las consideraciones siguientes:

  • Actualmente no se admite la migración directa a un plan dedicado (App Service).
  • La migración no se admite en Linux.
  • El plan de origen y el plan de destino deben estar en el mismo grupo de recursos y región geográfica. Para obtener más información, consulte Move an app to another App Service plan (Mover una aplicación a otro plan de App Service).
  • Los comandos específicos de la CLI dependen de la dirección de la migración.
  • El tiempo de inactividad de las ejecuciones de funciones se producirá cuando la aplicación de funciones se migre entre planes.
  • Se mantiene el estado y otro contenido específico de la aplicación, ya que la aplicación usará el mismo recurso compartido de Azure Files tanto antes como después de la migración.

Migración en el portal

En Azure Portal, vaya a la aplicación de plan de Consumo o Premium y elija Cambiar el plan de App Service en Plan de App Service. Seleccione el otro tipo de plan, cree un nuevo plan de App Service del nuevo tipo y seleccione Aceptar. Para obtener más información, consulte Move an app to another App Service plan (Mover una aplicación a otro plan de App Service).

De consumo a Prémium

Use el siguiente procedimiento para migrar de un plan de consumo a un plan Premium en Windows:

  1. Ejecute el comando az functionapp plan create de la siguiente manera para crear un nuevo plan de App Service (Premium elástico) en la misma región y grupo de recursos que su aplicación de función existente:

    az functionapp plan create --name <NEW_PREMIUM_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP> --location <REGION> --sku EP1
    
  2. Ejecute el comando az functionapp update de la siguiente manera para migrar la aplicación de funciones existente al nuevo plan Premium:

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_PREMIUM_PLAN>
    
  3. Si ya no necesita el plan de consumo de la aplicación de funciones anterior, elimínelo después de confirmar que ha migrado correctamente al nuevo. Ejecute el comando az functionapp plan list de la siguiente manera para obtener una lista de todos los planes de consumo en su grupo de recursos:

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='Y'].{PlanName:name,Sites:numberOfSites}" -o table
    

    Puede eliminar el plan con seguridad sin ningún sitio, que es desde el que migró.

  4. Ejecute el comando az functionapp plan delete tal como se indica a continuación para eliminar el plan de consumo del que ha realizado la migración.

    az functionapp plan delete --name <CONSUMPTION_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP>
    

De Prémium a consumo

Use el siguiente procedimiento para migrar de un plan Prémium a un plan de consumo en Windows:

  1. Ejecute el comando az functionapp plan create de la siguiente manera para crear una nueva aplicación de funciones (Consumo) en la misma región y grupo de recursos que su aplicación de funciones existente. Este comando también crea un plan de consumo en el que se ejecuta la aplicación de funciones.

    az functionapp create --resource-group <MY_RESOURCE_GROUP> --name <NEW_CONSUMPTION_APP_NAME> --consumption-plan-location <REGION> --runtime dotnet --functions-version 3 --storage-account <STORAGE_NAME>
    
  2. Ejecute el comando az functionapp update de la siguiente manera para migrar la aplicación de funciones existente al nuevo plan de Consumo.

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_CONSUMPTION_PLAN> --force
    
  3. Ejecute el comando az functionapp delete de la siguiente manera para eliminar la aplicación de funciones que creó en el paso 1, ya que solo necesita el plan que se creó para ejecutar la aplicación de funciones existente.

    az functionapp delete --name <NEW_CONSUMPTION_APP_NAME> --resource-group <MY_RESOURCE_GROUP>
    
  4. Si ya no necesita el plan Prémium de la aplicación de funciones anterior, elimínelo después de confirmar que ha migrado correctamente al nuevo. Hasta que se elimine el plan Premium, se te seguirá cobrando por él. Ejecute el comando az functionapp plan list de la siguiente manera para obtener una lista de todos los planes Premium en su grupo de recursos.

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='EP'].{PlanName:name,Sites:numberOfSites}" -o table
    
  5. Ejecute el comando az functionapp plan delete tal como se indica a continuación para eliminar el plan Premium del que ha realizado la migración.

    az functionapp plan delete --name <PREMIUM_PLAN> --resource-group <MY_RESOURCE_GROUP>
    

Obtención de las claves de acceso de la función

Por lo general, se puede llamar a las funciones desencadenadas por HTTP mediante una dirección URL con el formato : https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>. Cuando la autorización para la función se establece en un valor distinto de anonymous, también debe proporcionar una clave de acceso en la solicitud. La clave de acceso se puede proporcionar en la dirección URL mediante la cadena de consulta ?code= o en el encabezado de solicitud. Para obtener más información, vea Claves de acceso de función. Hay varias formas de obtener las claves de acceso.

  1. Inicie sesión en Azure Portal, busque y seleccione Aplicación de funciones.

  2. Seleccione la función que quiera comprobar.

  3. En el panel de navegación izquierdo, en Functions, seleccione Claves de la aplicación.

    Esto devuelve las claves de host, que se pueden usar para acceder a cualquier función de la aplicación. También devuelve la clave del sistema, que proporciona a cualquier usuario acceso de nivel de administrador a todas las API de una aplicación de funciones.

También puede emplear menos privilegios si usa la clave simplemente para la clave de función concreta al seleccionar Claves de función en Desarrollador en la función desencadenada por HTTP.

Limitaciones de desarrollo en Azure Portal

Debes tener en cuenta estas limitaciones al desarrollar las funciones en Azure Portal:

  • La edición en el portal solo es compatible con las funciones de JavaScript, PowerShell, Python y el script de C#.
  • La edición en el portal de Python solo se admite cuando se ejecuta en el plan de consumo.
  • Actualmente, la edición en el portal solo se admite para las funciones que se crearon o modificaron por última vez en el portal.
  • Al implementar código en una aplicación de funciones desde fuera del portal, ya no se puede editar el código de esa aplicación de funciones en el portal. En este caso, solo tiene que seguir usando el desarrollo local.
  • En el caso de las funciones de C# compiladas, las funciones de Java y algunas funciones de Python, puedes crear la aplicación de funciones y los recursos relacionados en el portal. Sin embargo, debes crear el proyecto de código de funciones localmente y, a continuación, publicarlo en Azure.

Cuando sea posible, debes desarrollar las funciones localmente y publicar el proyecto de código en una aplicación de funciones en Azure. Para más información, consulte Codificación y comprobación de las funciones de Azure Functions en un entorno local.

Instalación manual de extensiones

Las funciones de biblioteca de clases de C# pueden incluir los paquetes de NuGet para extensiones de enlace directamente en el proyecto de biblioteca de clases. Para otros lenguajes de non-.NET y script de C#, debe usar agrupaciones de extensiones. Si debes instalar manualmente extensiones, puedes hacerlo mediante Azure Functions Core Tools localmente. Si no puede usar conjuntos de extensiones y solo puede trabajar en el portal, debe usar Herramientas avanzadas (Kudu) para crear manualmente el archivo extensions.csproj directamente en el sitio. Asegúrese de quitar primero el elemento extensionBundle del archivo host.json.

Este mismo proceso funciona para cualquier otro archivo que necesite agregar a la aplicación.

Importante

Cuando sea posible, no debe editar archivos directamente en la aplicación de funciones de Azure. Se recomienda descargar los archivos de la aplicación localmente, usar Core Tools para instalar extensiones y otros paquetes, validar los cambios y volver a publicar la aplicación mediante Core Tools o uno de los otros métodos de implementación admitidos.

El editor de Functions integrado en Azure Portal te permite actualizar los archivos de configuración y código de función directamente en el portal.

  1. Seleccione la aplicación de funciones y, a continuación, en Functions, seleccione Funciones.
  2. Elija la función y seleccione Código y prueba en Desarrollador.
  3. Elija el archivo para editar y seleccione Guardar cuando haya terminado.

Los archivos de la raíz de la aplicación, como function.proj o extensions.csproj, deben crearse y editarse mediante Herramientas avanzadas (Kudu).

  1. Seleccione la aplicación de funciones, a continuación, en Herramientas de desarrollo, seleccione Herramientas avanzadas>Go.

  2. Si se le pide, inicie sesión en el sitio de SCM con sus credenciales de Azure.

  3. En el menú Consola de depuración, elija CMD.

  4. Vaya a .\site\wwwroot, seleccione el botón más (+) en la parte superior y seleccione Nuevo archivo.

  5. Nombre el archivo, por ejemplo extensions.csproj, y presione Enter.

  6. Seleccione el botón editar situado junto al nuevo archivo, agregue o actualice el código en el archivo y seleccione Guardar.

  7. Para un archivo de proyecto como extensions.csproj, ejecute el siguiente comando para recompilar el proyecto de extensiones:

    dotnet build extensions.csproj
    

Características de la plataforma

Las aplicaciones de funciones se ejecutan en la plataforma de Azure App Service, donde también se realiza su mantenimiento. Por tanto, Function App tiene acceso a la mayoría de las características de la plataforma de hospedaje web principal de Azure. En Azure Portal, el panel de la izquierda es el lugar en el que puede acceder a muchas características de la plataforma de App Service que puede usar en las aplicaciones de funciones.

La siguiente matriz indica la compatibilidad de características del portal mediante el plan de hospedaje y el sistema operativo:

Característica Plan de consumo Plan Premium Plan dedicado
Herramientas avanzadas (Kudu) Windows: ✔
Linux: X
Editor de App Service Windows: ✔
Linux: X
Windows: ✔
Linux: X
Windows: ✔
Linux: X
Copias de seguridad X X
Consola Windows: línea de comandos
Linux: X
Windows: línea de comandos
Linux: SSH
Windows: línea de comandos
Linux: SSH

El resto de este artículo se centra en las siguientes características del portal que resultan útiles para las aplicaciones de funciones:

Para más información sobre cómo trabajar con la configuración de App Service, vea Configuración de Azure App Service.

Editor de App Service

The App Service editor

El Editor de App Service es un editor en portal avanzado que puede usar para modificar archivos de configuración JSON y archivos de código similares. Al seleccionar esta opción se inicia una pestaña de explorador independiente con un editor básico. Esto le permite realizar la integración con el repositorio Git, ejecutar y depurar código y modificar la configuración de Function App. Este editor proporciona un entorno de desarrollo mejorado para las funciones en comparación con el editor de funciones integrado.

Se recomienda que considere la posibilidad de desarrollar las funciones en el equipo local. Al desarrollar localmente y publicar en Azure, los archivos del proyecto son de solo lectura en el portal. Para más información, consulte Codificación y comprobación de las funciones de Azure Functions en un entorno local.

Consola

Function app console

La consola del portal es una herramienta ideal para desarrolladores si prefiere interactuar con Function App desde la línea de comandos. Los comandos comunes incluyen creación de archivos y directorios y navegación por los mismos, así como la ejecución de archivos y scripts por lotes.

Al desarrollar localmente, se recomienda usar Azure Functions Core Tools y la CLI de Azure.

Herramientas avanzadas (Kudu)

Configure Kudu

Las herramientas avanzadas para App Service (también conocidas como Kudu) proporcionan acceso a las características administrativas avanzadas de la Function App. Con Kudu, puede administrar la información del sistema, la configuración de las aplicaciones, las variables del entorno, las extensiones del sitio, los encabezados HTTP y las variables del servidor. También puede iniciar Kudu si examina el punto de conexión de SCM de la Function App, como https://<myfunctionapp>.scm.azurewebsites.net/.

Centro de implementación

Cuando se usa una solución de control de código fuente para desarrollar y mantener el código de las funciones, el Centro de implementación le permite compilar e implementar desde el control de código fuente. El proyecto se compila e implementa en Azure cuando se realizan actualizaciones. Para más información, vea Tecnologías de implementación en Azure Functions.

Uso compartido de recursos entre orígenes

Para evitar la ejecución de código malintencionado en el cliente, los exploradores modernos bloquean las solicitudes de las aplicaciones web en los recursos que se ejecutan en un dominio independiente. El Intercambio de Recursos de Origen Cruzado (CORS) permite a un encabezado Access-Control-Allow-Origin declarar qué orígenes pueden llamar a los puntos de conexión en la aplicación de funciones.

Portal

Al configurar la lista de orígenes permitidos para la aplicación de funciones, el encabezado Access-Control-Allow-Origin se agrega automáticamente a todas las respuestas de los puntos de conexión HTTP en la aplicación de funciones.

Configure function app's CORS list

El carácter comodín (*) se omite si hay otra entrada de dominio.

Use el comando az functionapp cors add para agregar un dominio a la lista de orígenes permitidos. En el ejemplo siguiente se agrega el dominio contoso.com:

az functionapp cors add --name <FUNCTION_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--allowed-origins https://contoso.com

Use el comando az functionapp cors show para enumerar los orígenes permitidos actuales.

Autenticación

Configure authentication for a function app

Si las funciones usan un desencadenador HTTP, puede requerir que las llamadas se autentiquen primero. App Service admite la autenticación de Microsoft Entra y el inicio de sesión con proveedores de redes sociales, como Facebook, Microsoft y Twitter. Para más información sobre cómo configurar los proveedores de autenticación específicos, consulte Autenticación y autorización en Azure App Service.

Pasos siguientes