Activez ou désactivez vos fonctions Azure par programmation

Tu sais probablement déjà qu’une application Azure Functions peut être composée de plusieurs fonctions, et tu sais probablement que tu peux désactiver ta Function App en totalité ou, de façon plus granulaire, désactiver chaque fonction indépendamment.

Tu peux le faire à partir du portail Azure, comme ceci:

disable-functions-from-portal

Mais tu peux également le faire en utilisant un paramètre d’application (app setting). C’est l’approche que nous explorerons ensemble aujourd’hui.

 

Pourquoi devrais-je le faire ?

Tu peux désactiver un sous-ensemble de tes fonctions pour plusieurs raisons:

  • Une fonction donnée ne se comporte pas comme prévu, tu veux donc la désactiver temporairement;
  • Tu as une fonction de “validation” que tu ne souhaites pas activer par défaut mais plutôt l’activer en cas de besoin;
  • Tu souhaites déprécier une fonction donnée. Tu peux donc la désactiver et avoir la possibilité de la réactiver si nécessaire pendant une période donnée avant de la supprimer définitivement.

Avoir la possibilité d’activer ou de désactiver tes fonctions par programmation te donne la flexibilité de le faire à différentes étapes:

  • Via ton pipeline CI / CD avant le déploiement de la fonction;
  • En utilisant Azure CLI ou Azure PowerShell après le déploiement de la fonction.

 

Comment puis-je faire ça ?

Disons que nous avons une Azure Function App avec 2 fonctions: « SayHello » et « SayGoodbye » et que nous voulons désactiver la fonction « SayGoodbye ».

Nous pouvons aller dans l’onglet « Configuration » de notre Function App et ajouter un nouvel app setting nommé en suivant ce modèle:

AzureWebJobs.<Nom-de-la-fonction-à-désactiver>.Disabled

Dans notre cas, ce serait « AzureWebJobs.SayGoodbye.Disabled » et on lui affecterait la valeur « true ».

Lorsque nous voulons réactiver cette fonction, nous définissons simplement la valeur de ce app setting sur « false » ou nous pouvons également supprimer cet app setting.

Tu veux le voir en action? Voilà:

disable-functions-with-appsetting

 

À présent, si tu tentes d’invoquer cette fonction, tu auras une erreur HTTP 404 :

call-disabled-function

 

“En quoi est-ce par programmation ?”

Je t’entends d’ici 😊

Ça l’est parce que tu peux le faire avec PowerShell ou Azure CLI ou même directement dans ton template ARM.

Voici comment procéder dans le fichier parameters de ton template ARM:

"appSettings": {
      "value": [
        //...,
        {
          "name": "AzureWebJobs.SayGoodbye.Disabled",
          "value": "true"
        },
        //...
      ]
}

En conclusion…

Aujourd’hui, nous avons vu comment nous pouvons facilement activer ou désactiver certaines de nos fonctions Azure, pourquoi nous voudrions le faire et comment y parvenir.

J’espère que cela te sera utile.

 

Continuons la discussion

N’oublie pas que tu peux me joindre sur Twitter ou LinkedIn.

À la prochaine !

Comments are closed.