Deshabilitamiento de funciones en Azure FunctionsHow to disable functions in Azure Functions

En este artículo se explica cómo deshabilitar una función de Azure Functions.This article explains how to disable a function in Azure Functions. Deshabilitar una función significa hacer que el entorno en tiempo de ejecución omita el desencadenador automático que se ha definido para esa función.To disable a function means to make the runtime ignore the automatic trigger that is defined for the function. La forma de hacerlo dependerá de la versión del entorno en tiempo de ejecución y del lenguaje de programación:The way you do that depends on the runtime version and the programming language:

  • Functions 2.x:Functions 2.x:
    • Una forma para todos los lenguajesOne way for all languages
    • Forma opcional para las bibliotecas de clases de C#Optional way for C# class libraries
  • Functions 1.x:Functions 1.x:
    • Lenguajes de scriptingScripting languages
    • Biblioteca de clases de C#C# class libraries

Functions 2.x: todos los lenguajesFunctions 2.x - all languages

En Functions 2.x puede deshabilitar una función mediante una configuración de aplicación en el formato AzureWebJobs.<FUNCTION_NAME>.Disabled.In Functions 2.x, you disable a function by using an app setting in the format AzureWebJobs.<FUNCTION_NAME>.Disabled. Puede crear y modificar esta configuración mediante programación con la CLI de Azure.You can create and modify this setting programmatically by using the Azure CLI. También puede realizar esta acción desde la pestaña Administrar de la función en Azure Portal.You can also do this from your function's Manage tab in the Azure portal.

CLI de AzureAzure CLI

En el CLI de Azure, use el comando az functionapp config appsettings set para crear y modificar la configuración de la aplicación.In the Azure CLI, you use the az functionapp config appsettings set command to create and modify the app setting. En el siguiente comando se deshabilita una función denominada QueueTrigger al crear una configuración de aplicaciones denominada AzureWebJobs.QueueTrigger.Disabled y establecerla en true.The following command disables a function named QueueTrigger by creating an app setting named AzureWebJobs.QueueTrigger.Disabled set it to true.

az functionapp config appsettings set --name <myFunctionApp> \
--resource-group <myResourceGroup> \
--settings AzureWebJobs.QueueTrigger.Disabled=true

Para volver a habilitar la función, vuelva a ejecutar el mismo comando con un valor false.To re-enable the function, rerun the same command with a value of false.

az functionapp config appsettings set --name <myFunctionApp> \
--resource-group <myResourceGroup> \
--settings AzureWebJobs.QueueTrigger.Disabled=false

PortalPortal

También puede usar el conmutador Estado de la función en la pestaña Administrar de la función. El conmutador funciona mediante la creación y eliminación de la configuración de la aplicación AzureWebJobs.<FUNCTION_NAME>.Disabled.You can also use the Function State switch on the function's Manage tab. The switch works by creating and deleting the AzureWebJobs.<FUNCTION_NAME>.Disabled app setting.

Conmutador Estado de la función

Functions 2.x: bibliotecas de clases de C#Functions 2.x - C# class libraries

En una biblioteca de clases de Functions 2.x, se recomienda que utilice el método adecuado para todos los lenguajes.In a Functions 2.x class library, we recommend that you use the method that works for all languages. Pero si lo prefiere, puede usar el atributo Disable como en Functions 1.x.But if you prefer, you can use the Disable attribute as in Functions 1.x.

Functions 1.x: lenguajes de scriptingFunctions 1.x - scripting languages

Para los lenguajes de scripting como script de C# y JavaScript, puede usar la propiedad disabled del archivo function.json para indicar al entorno en tiempo de ejecución que no desencadene una función.For scripting languages such as C# script and JavaScript, you use the disabled property of the function.json file to tell the runtime not to trigger a function. Esta propiedad puede establecerse en true o en el nombre de una configuración de aplicación:This property can be set to true or to the name of an app setting:

{
    "bindings": [
        {
            "type": "queueTrigger",
            "direction": "in",
            "name": "myQueueItem",
            "queueName": "myqueue-items",
            "connection":"MyStorageConnectionAppSetting"
        }
    ],
    "disabled": true
}

oor

    "bindings": [
        ...
    ],
    "disabled": "IS_DISABLED"

En el segundo ejemplo, la función se deshabilita cuando hay una configuración de aplicación que se denomina IS_DISABLED y se establece en true o 1.In the second example, the function is disabled when there is an app setting that is named IS_DISABLED and is set to true or 1.

Puede editar el archivo en Azure Portal o utilizar el conmutador Estado de la función en la pestaña Administrar de la función. El modificador del portal funciona modificando el archivo function.json.You can edit the file in the Azure portal or use the Function State switch on the function's Manage tab. The portal switch works by changing the function.json file.

Conmutador Estado de la función

Functions 1.x: bibliotecas de clases de C#Functions 1.x - C# class libraries

En una biblioteca de clases de Functions 1.x, puede usar un atributo Disable para impedir que una función se desencadene.In a Functions 1.x class library, you use a Disable attribute to prevent a function from being triggered. Puede usar el atributo sin un parámetro de constructor, tal como se muestra en el ejemplo siguiente:You can use the attribute without a constructor parameter, as shown in the following example:

public static class QueueFunctions
{
    [Disable]
    [FunctionName("QueueTrigger")]
    public static void QueueTrigger(
        [QueueTrigger("myqueue-items")] string myQueueItem, 
        TraceWriter log)
    {
        log.Info($"C# function processed: {myQueueItem}");
    }
}

El atributo sin un parámetro de constructor requiere que vuelva a compilar y a implementar el proyecto para cambiar el estado deshabilitado de la función.The attribute without a constructor parameter requires that you recompile and redeploy the project to change the function's disabled state. Una forma más flexible de usar el atributo consiste en incluir un parámetro de constructor que hace referencia a una configuración de aplicación booleana como se indica en el siguiente ejemplo:A more flexible way to use the attribute is to include a constructor parameter that refers to a Boolean app setting, as shown in the following example:

public static class QueueFunctions
{
    [Disable("MY_TIMER_DISABLED")]
    [FunctionName("QueueTrigger")]
    public static void QueueTrigger(
        [QueueTrigger("myqueue-items")] string myQueueItem, 
        TraceWriter log)
    {
        log.Info($"C# function processed: {myQueueItem}");
    }
}

Este método le permite habilitar y deshabilitar la función cambiando la configuración de la aplicación, sin necesidad de volver a compilar y a implementar.This method lets you enable and disable the function by changing the app setting, without recompiling or redeploying. Cambiar una configuración de aplicación hace que la aplicación de función se reinicie, por lo que el estado deshabilitado se reconocerá inmediatamente.Changing an app setting causes the function app to restart, so the disabled state change is recognized immediately.

Importante

El atributo Disabled es la única manera de deshabilitar una función de biblioteca de clases.The Disabled attribute is the only way to disable a class library function. El archivo function.json que se generó para una función de biblioteca de clases no está diseñado para editarse directamente.The generated function.json file for a class library function is not meant to be edited directly. Si edita ese archivo, haga lo que haga con la propiedad disabled no tendrá ningún efecto.If you edit that file, whatever you do to the disabled property will have no effect.

Lo mismo sucede con el conmutador Estado de la función de la pestaña Administrar, ya que funciona cambiando el archivo function.json.The same goes for the Function state switch on the Manage tab, since it works by changing the function.json file.

También, tenga en cuenta que el portal puede indicar que la función está deshabilitada cuando realmente no lo está.Also, note that the portal may indicate the function is disabled when it isn't.

Pasos siguientesNext steps

Este artículo trata acerca de cómo deshabilitar los desencadenadores automáticos.This article is about disabling automatic triggers. Para más información sobre desencadenadores, consulte Desencadenadores y enlaces.For more information about triggers, see Triggers and bindings.