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

  1. Para comenzar, vaya a Azure Portal e inicie sesión en la 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.

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 los comandos de la CLI de Azure para migrar una aplicación de funciones de un plan de consumo y un plan Prémium en Windows. Los comandos específicos dependen de la dirección de la migración. Actualmente no se admite la migración directa a un plan dedicado (App Service).

Esta migración no se admite en Linux.

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. Tenga en cuenta que si no se elimina el plan, se le 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.

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 que no sean .NET y el script de C#, la manera recomendada de instalar extensiones es mediante conjuntos de extensiones o mediante Azure Functions Core Tools, de manera local. 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 le permite actualizar los archivos de configuración y código de función (function.json) 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 promueve, 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

Cuando se usa el carácter comodín (*), se omiten todos los demás dominios.

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.

Authentication

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 Azure Active Directory y el inicio de sesión en proveedores locales, 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