Deaktivieren von Funktionen in Azure FunctionsHow to disable functions in Azure Functions

In diesem Artikel wird erläutert, wie Sie eine Funktion in Azure Functions deaktivieren.This article explains how to disable a function in Azure Functions. Durch das Deaktivieren einer Funktion wird die Runtime angewiesen, den für die Funktion definierten automatischen Trigger zu ignorieren.To disable a function means to make the runtime ignore the automatic trigger that is defined for the function. Die hierzu verwendete Methode hängt von der Runtimeversion und der Programmiersprache ab:The way you do that depends on the runtime version and the programming language:

  • Functions 2.x:Functions 2.x:
    • Eine Methode für alle ProgrammiersprachenOne way for all languages
    • Optionale Methode für C#-KlassenbibliothekenOptional way for C# class libraries
  • Functions 1.x:Functions 1.x:
    • SkriptsprachenScripting languages
    • C#-KlassenbibliothekenC# class libraries

Functions 2.x – alle ProgrammiersprachenFunctions 2.x - all languages

In Functions 2.x wird eine Funktion mithilfe einer App-Einstellung im Format AzureWebJobs.<FUNCTION_NAME>.Disabled deaktiviert.In Functions 2.x, you disable a function by using an app setting in the format AzureWebJobs.<FUNCTION_NAME>.Disabled. Sie können diese Anwendungseinstellung auf verschiedene Weise erstellen und ändern, z. B. über die Azure-Befehlszeilenschnittstelle und im Azure-Portal auf der Registerkarte Verwalten der Funktion.You can create and modify this application setting in a number of ways, including by using the Azure CLI and from your function's Manage tab in the Azure portal.

Azure-BefehlszeilenschnittstelleAzure CLI

Verwenden Sie zum Erstellen und Ändern der App-Einstellung den Azure CLI-Befehl az functionapp config appsettings set.In the Azure CLI, you use the az functionapp config appsettings set command to create and modify the app setting. Der folgende Befehl deaktiviert eine Funktion namens QueueTrigger. Hierzu wird eine App-Einstellung namens AzureWebJobs.QueueTrigger.Disabled erstellt und auf true festgelegt.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

Wenn Sie die Funktion wieder aktivieren möchten, führen Sie den gleichen Befehl mit dem Wert false aus.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

Sie können auch die Option Funktionszustand auf der Registerkarte Verwalten der Funktion verwenden. Die Option erstellt und löscht die App-Einstellung 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.

Option „Funktionszustand“

Functions 2.x – C#-KlassenbibliothekenFunctions 2.x - C# class libraries

In einer Functions 2.x-Klassenbibliothek empfehlen wir die Verwendung der Methode, die für alle Programmiersprachen funktioniert.In a Functions 2.x class library, we recommend that you use the method that works for all languages. Wenn Sie es vorziehen, können Sie jedoch das Disable-Attribut wie in Functions 1.x verwenden.But if you prefer, you can use the Disable attribute as in Functions 1.x.

Functions 1.x – SkriptsprachenFunctions 1.x - scripting languages

Für Skriptsprachen wie C#-Skript und JavaScript verwenden Sie die disabled-Eigenschaft der Datei function.json, um der Runtime mitzuteilen, dass eine Funktion nicht ausgelöst werden soll.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. Diese Eigenschaft kann auf true oder auf den Namen einer App-Einstellung festgelegt werden: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
}

oderor

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

Im zweiten Beispiel wird die Funktion deaktiviert, wenn eine App-Einstellung mit dem Namen „IS_DISABLED“ vorhanden und auf true oder 1 festgelegt ist.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.

Sie können die Datei im Azure-Portal bearbeiten oder die Option Funktionszustand auf der Registerkarte Verwalten der Funktion verwenden. Die Option im Portal ändert die Datei 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.

Option „Funktionszustand“

Functions 1.x – C#-KlassenbibliothekenFunctions 1.x - C# class libraries

In einer Functions 1.x-Klassenbibliothek verwenden Sie ein Disable-Attribut, um zu verhindern, dass eine Funktion ausgelöst wird.In a Functions 1.x class library, you use a Disable attribute to prevent a function from being triggered. Sie können das Attribut wie im folgenden Beispiel gezeigt ohne einen Konstruktorparameter verwenden: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}");
    }
}

Wenn Sie das Attribut ohne Konstruktorparameter verwenden, müssen Sie das Projekt erneut kompilieren und erneut bereitstellen, um den Zustand „Deaktiviert“ der Funktion zu ändern.The attribute without a constructor parameter requires that you recompile and redeploy the project to change the function's disabled state. Eine flexiblere Möglichkeit zur Verwendung des Attributs besteht darin, wie im folgenden Beispiel gezeigt einen Konstruktorparameter hinzuzufügen, der auf eine boolesche App-Einstellung verweist: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}");
    }
}

Mit dieser Methode können Sie die Funktion durch Ändern der App-Einstellung ohne erneutes Kompilieren oder erneutes Bereitstellen aktivieren und deaktivieren.This method lets you enable and disable the function by changing the app setting, without recompiling or redeploying. Das Ändern einer App-Einstellung bewirkt einen Neustart der Funktions-App, sodass die Änderung des Zustands „Deaktiviert“ sofort erkannt wird.Changing an app setting causes the function app to restart, so the disabled state change is recognized immediately.

Wichtig

Das Disabled-Attribut ist die einzige Möglichkeit zum Deaktivieren einer Klassenbibliotheksfunktion.The Disabled attribute is the only way to disable a class library function. Die generierte Datei function.json für eine Klassenbibliotheksfunktion ist nicht zur direkten Bearbeitung vorgesehen.The generated function.json file for a class library function is not meant to be edited directly. Wenn Sie diese Datei bearbeiten, haben Änderungen, die Sie an der disabled-Eigenschaft vornehmen, keinerlei Auswirkungen.If you edit that file, whatever you do to the disabled property will have no effect.

Das Gleiche gilt für die Option Funktionszustand auf der Registerkarte Verwalten, da diese die Datei function.json ändert.The same goes for the Function state switch on the Manage tab, since it works by changing the function.json file.

Beachten Sie außerdem, dass die Funktion im Portal als deaktiviert angezeigt werden kann, wenn dies nicht der Fall ist.Also, note that the portal may indicate the function is disabled when it isn't.

Nächste SchritteNext steps

In diesem Artikel wird das Deaktivieren von automatischen Triggern behandelt.This article is about disabling automatic triggers. Weitere Informationen zu Triggern finden Sie unter Trigger und Bindungen.For more information about triggers, see Triggers and bindings.