Enable/Disable functions in Azure programmically in C#

amirkhansinga 6 Reputation points
2022-05-02T09:10:59.363+00:00

I've some azure functions that I want to disable/enable programmatically - e.g. by an http triggered function. Is there a way to do this directly in C# code of the function? I couldn't find anything like an api for that. Another option could be to use the app settings of the function app with a parameter like "FUNCTION1_ENABLED". With this, the function would not be really disabled but I can read this value on the beginning of the function and break it, if its false. But it looks like, that the app settings only can be set on startup of a function app - and not during runtime.

The final (but at least inelegant) solution would be to share a parameter stored in the database behind all functions - that can easily be set and read by any function.

But I hope, there is a way to disable/enable functions programmatically in C# by Azure itself.

Azure Functions
Azure Functions
An Azure service that provides an event-driven serverless compute platform.
4,257 questions
{count} votes

1 answer

Sort by: Most helpful
  1. MayankBargali-MSFT 68,471 Reputation points
    2022-05-04T05:15:11.227+00:00

    @amirkhansinga Thanks for reaching out. To disable the function please refer to the disable function document.

    Programmatically you can also use the below REST endpoint to enable/disable a particular function
    PUT https://management.azure.com/subscriptions/{subscriptionID}/resourceGroups/{resourcegroupname}/providers/Microsoft.Web/sites/{sitename}/functions/{functionappname}/properties/state?api-version=2018-11-01
    content-type: application/json; charset=utf-8

    Request Body:

    {"properties":"disabled"}  
    

    OR

    {"properties":"enabled"}  
    

    Alternative you can also use this API to update app setting on your function app.

    In case if you want to do it for your local environment then you can define below in your local.settings.json but when you deploy to azure then you need to define it in Application setting of your function app.

    "AzureWebJobs.yourfunctionname.Disabled": true  
    

    OR

    "AzureWebJobs.yourfunctionname.Disabled": 1  
    

    Feel free to get back to me if you need any assistance.

    Please 'Accept as answer' and ‘Upvote’ if it helped so that it can help others in the community looking for help on similar topics.

    1 person found this answer helpful.