Deshabilitamiento de funciones en Azure Functions

En este artículo se explica cómo deshabilitar una función de Azure Functions. Para deshabilitar una función significa hacer que el tiempo de ejecución omita el evento destinado a desencadenar la función. Esta capacidad le permite impedir que se ejecute una función específica sin tener que modificar y volver a publicar toda la aplicación de funciones.

Puede deshabilitar una función en su lugar mediante la creación de un ajuste de aplicación en el formato AzureWebJobs.<FUNCTION_NAME>.Disabled ajustado a true. Puede crear y modificar esta configuración de aplicación de varias maneras, incluido el uso de CLI de Azure, Azure PowerShelly desde la pestaña Información general de la función en Azure Portal.

Los cambios en la configuración de la aplicación hacen que la aplicación de funciones se reinicie. Para más información, consulte Referencia de configuración de aplicación para Azure Functions.

Deshabilitar una función

Use uno de estos modos para crear una configuración de aplicación que deshabilite una función de ejemplo denominada QueueTrigger:

Use los botones Habilitar y Deshabilitar de la página Información general de la función. Estos botones funcionan mediante el cambio del valor de la configuración de la aplicación AzureWebJobs.QueueTrigger.Disabled. La configuración de la aplicación específica de la función se crea la primera vez que se deshabilita una función.

Function state switch

Aunque publique en la aplicación de funciones desde un proyecto local, puede seguir usando el portal para deshabilitar las funciones de la aplicación de funciones.

Nota

Las funciones deshabilitadas todavía se pueden ejecutar mediante una llamada al punto de conexión de REST mediante una clave maestra. Para más información, consulte Ejecución de una función deshabilitada. Esto significa que una función deshabilitada se sigue ejecutando cuando se inicia desde la ventana Test/Run del portal mediante el maestro (clave de host).

Deshabilitar funciones en una ranura

De manera predeterminada, la configuración de la aplicación también se aplica a las aplicaciones que se ejecutan en ranuras de implementación. Sin embargo, puede invalidar la configuración de la aplicación que usa la ranura al establecer una configuración de aplicación específica de la ranura. Por ejemplo, puede que quiera que una función esté activa en producción, pero no durante las pruebas de implementación. Es habitual deshabilitar las funciones desencadenadas por el temporizador en ranuras para evitar ejecuciones simultáneas.

Para deshabilitar una función solo en el espacio de ensayo, haga lo siguiente:

Navegue a la instancia de ranura de la aplicación de funciones. Para ello, seleccione Ranuras de implementación en Implementación, elija la ranura y seleccione Funciones en la instancia de ranura. Elija la función correspondiente y, después, use los botones Habilitar y Deshabilitar de la página de Información general de la función. Estos botones funcionan mediante el cambio del valor de la configuración de la aplicación AzureWebJobs.<FUNCTION_NAME>.Disabled. Esta configuración específica de función se crea la primera vez que deshabilita la función.

También puede agregar directamente la configuración de la aplicación denominada AzureWebJobs.<FUNCTION_NAME>.Disabled con el valor true en la Configuración de la instancia de ranura. Cuando agregue una configuración de aplicación específica de la ranura, asegúrese de seleccionar la casilla Configuración de ranura de implementación. Esta opción mantiene el valor de configuración con la ranura durante los intercambios.

Para más información, consulte Ranuras de implementación de Azure Functions.

Ejecución de una función deshabilitada

Todavía puede hacer que una función deshabilitada se ejecute proporcionando la clave maestra en una solicitud de REST a la dirección URL del punto de conexión de la función deshabilitada. De este modo, puede desarrollar y validar funciones en Azure en un estado deshabilitado, a la vez que impide que otros usuarios accedan a ellas. El uso de cualquier otro tipo de clave en la solicitud devuelve una respuesta HTTP 404.

Precaución

Debido a los permisos elevados de la aplicación de funciones otorgados por la clave maestra, no debe compartir esta clave con terceros ni distribuirla en aplicaciones cliente nativas. Tenga cuidado al elegir el nivel de acceso de administrador.

Para más información sobre la clave maestra, consulte Obtención de claves. Para obtener más información sobre la llamada a funciones no desencadenadas por HTTP, consulte Ejecutar manualmente una función no desencadenada por HTTP.

Deshabilitar funciones localmente

Las funciones se pueden deshabilitar de la misma manera cuando se ejecutan localmente. Para deshabilitar una función denominada QueueTrigger, agregue una entrada a la colección de valores del archivo local.settings.json, como se indica a continuación:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "python",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true", 
    "AzureWebJobs.QueueTrigger.Disabled": true
  }
}

Consideraciones

Tenga en cuenta las consideraciones siguientes al deshabilitar funciones:

  • Al deshabilitar una función desencadenada por HTTP mediante los métodos descritos en este artículo, todavía se puede acceder al punto de conexión cuando se ejecuta en el equipo local y en el portal.

  • En este momento, los nombres de función que contienen un guión (-) no se pueden deshabilitar al ejecutarse en Linux. Si tiene previsto deshabilitar las funciones al ejecutarse en Linux, no use guiones en los nombres de su función.

Pasos siguientes

Este artículo trata acerca de cómo deshabilitar los desencadenadores automáticos. Para más información sobre desencadenadores, consulte Desencadenadores y enlaces.