Gérer votre application de fonction

Dans Azure Functions, une Function App fournit le contexte d’exécution de vos fonctions individuelles. Les comportements de la Function App s’appliquent à toutes les fonctions hébergées par une Function App donnée. Toutes les fonctions d’une application de fonction doivent être exprimées dans le même langage.

Les fonctions individuelles dans une application de fonction sont déployées ensemble et sont mises à l’échelle ensemble. Toutes les fonctions de la même application de fonction partagent les ressources, par instance, à mesure que l’application de fonction est mise à l’échelle.

Les chaînes de connexion, les variables d’environnement et d’autres paramètres d’application sont définis séparément pour chaque application de fonction. Toutes les données qui doivent être partagées entre les applications de fonction doivent être stockées en externe dans un magasin persistant.

Bien démarrer dans le portail Azure

Remarque

En raison des limitations liées à la modification du code de fonction dans le portail Azure, vous devez développer vos fonctions localement et publier votre projet de code dans une application de fonction dans Azure. Pour plus d’informations, consultez la section Limitations de développement dans le portail Azure.

  1. Pour démarrer, identifiez-vous au Portail Azure à l’aide de votre compte Azure. Dans la barre de recherche en haut du portail, tapez le nom de votre application de fonction et sélectionnez-la dans la liste.

  2. Sous Paramètres dans le volet gauche, sélectionnez Configuration.

    Function app overview in the Azure portal

Vous pouvez accéder à tout ce dont vous avez besoin pour gérer votre application de fonction à partir de la page Vue d’ensemble, en particulier les paramètres de l’application et les fonctionnalités de la plateforme .

Utilisation de paramètres d’application

Vous pouvez créer un nombre quelconque de paramètres d’application requis par votre code de fonction. Des paramètres d’application prédéfinis sont également utilisés par Azure Functions. Pour plus d’informations, consultez Informations de référence sur les paramètres d’application d’Azure Functions.

Ces paramètres sont stockés sous forme chiffrée. Pour en savoir plus, consultez Sécurité des paramètres d’application.

Vous pouvez gérer les paramètres d’application à partir du portail Azure, ainsi qu’à l’aide d’Azure CLI et d’Azure PowerShell. Vous pouvez également gérer les paramètres d’application à partir de Visual Studio Code et de Visual Studio.

Pour trouver les paramètres d’application, consultez Bien démarrer dans le portail Azure.

L’onglet Paramètres de l’application conserve les paramètres qui sont utilisés par votre application de fonction. Vous devez sélectionner Afficher les valeurs pour voir les valeurs dans le portail. Pour ajouter un paramètre dans le portail, sélectionnez Nouveau paramètre d’application et ajoutez la nouvelle paire clé-valeur.

Function app settings in the Azure portal.

Utiliser des paramètres d’application

Ces valeurs de paramètres d’application de fonction peuvent aussi être lues dans votre code en tant que variables d’environnement. Pour plus d’informations, consultez la section Variables d’environnement de ces rubriques de référence spécifiques à une langue :

Quand vous développez une application de fonction localement, vous devez conserver des copies locales de ces valeurs dans le fichier de projet local.settings.json. Pour plus d’informations, consultez Fichier de paramètres locaux.

Paramètres de déploiement FTPS

Azure Functions prend en charge le déploiement du code du projet dans votre application de fonction en utilisant FTPS. Cette méthode de déploiement vous obligeant à synchroniser les déclencheurs, elle n’est pas recommandée. Pour transférer des fichiers de projet en toute sécurité, utilisez toujours FTPS et non FTP.

Vous pouvez obtenir les informations d'identification requises pour le déploiement de FTPS en utilisant l'une des méthodes suivantes :

Vous pouvez obtenir les identifiants de publication FTPS dans le portail Azure en téléchargeant le profil de publication pour votre application fonctionnelle.

Important

Le profil de publication contient des informations d’identification de sécurité importantes. Vous devez toujours sécuriser le fichier téléchargé sur votre ordinateur local.

Pour télécharger le profil de publication de votre application de fonction :

  1. Sélectionnez la page Vue d’ensemble de l’application de fonction, puis sélectionnez Obtenir le profil de publication.

    Download publish profile

  2. Enregistrez et copiez le contenu du fichier.

  1. Dans le fichier, repérez l’élément publishProfile contenant l’attribut publishMethod="FTP". Dans cet élément, les attributs publishUrl, userName et userPWD contiennent l’URL cible et les informations d’identification pour la publication FTPS.

Type de plan d’hébergement

Lorsque vous créez une application de fonction, vous créez également un plan d’hébergement dans lequel elle s’exécute. Un plan peut comporter une ou plusieurs applications de fonction. Les fonctionnalités, la mise à l’échelle et le tarif des fonctions dépendent du type de plan. Pour en savoir plus, consultez Options d’hébergement Azure Functions.

Vous pouvez déterminer le type de plan utilisé par votre application de fonction sur le Portail Azure, avec l’API Azure CLI ou avec l’API Azure PowerShell.

Les valeurs suivantes indiquent le type de plan :

Type de plan Portail Azure CLI/PowerShell
Consommation Consommation Dynamic
Premium ElasticPremium ElasticPremium
Dédié (App Service) Divers Divers

Pour identifier le type de plan utilisé par votre application de fonction, consultez Plan App Service dans l’onglet Vue d’ensemble correspondant à l’application de fonction sur le Portail Azure. Pour afficher le niveau tarifaire, sélectionnez le nom Plan App Service, puis sélectionnez Propriétés dans le volet de gauche.

View scaling plan in the portal

Planifier la migration

Vous pouvez utiliser le portail Azure ou des commandes d’Azure CLI pour migrer une application de fonction entre un plan Consommation et un plan Premium sur Windows. Lors de la migration entre plans, gardez à l’esprit les considérations suivantes :

  • La migration directe vers un plan (App Service) dédié n’est pas prise en charge actuellement.
  • La migration n'est pas prise en charge sur Linux.
  • Le plan source et le plan cible doivent se trouver dans le même groupe de ressources et la même région géographique. Pour plus d’informations, consultez Déplacer une application vers un autre plan App Service.
  • Les commandes CLI spécifiques dépendent de la direction de la migration.
  • Les temps d’arrêt dans vos exécutions de fonction se produisent lorsque l’application de fonction est migrée entre les plans.
  • L’état et d’autres contenus spécifiques à l’application sont conservés, car le même partage Azure Files est utilisé par l’application avant et après la migration.

Migration dans le portail

Dans le Portail Azure, accédez à votre application Consommation ou Plan Premium, puis choisissez Modifier plan App Service sous plan App Service. Sélectionnez l’autre type de plan, créez un plan App Service du nouveau type, puis sélectionnez OK. Pour plus d’informations, consultez Déplacer une application vers un autre plan App Service.

De Consommation vers Premium

Procédez comme suit pour opérer la migration d’un plan Consommation vers un plan Premium sur Windows :

  1. Exécutez la commande az functionapp plan create comme suit pour créer un plan App Service (Élastique Premium) dans la même région et le même groupe de ressources que votre application de fonction existante :

    az functionapp plan create --name <NEW_PREMIUM_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP> --location <REGION> --sku EP1
    
  2. Exécutez la commande az functionapp update comme suit pour migrer l’application de fonction existante vers le nouveau plan Premium :

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_PREMIUM_PLAN>
    
  3. Si vous n’avez plus besoin de votre plan d’application de fonction Consommation précédent, supprimez votre plan d’application de fonction d’origine après avoir vérifié que vous avez effectué la migration vers le nouveau plan. Exécutez la commande az functionapp plan list comme suit pour obtenir la liste de tous les plans de consommation dans votre groupe de ressources :

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='Y'].{PlanName:name,Sites:numberOfSites}" -o table
    

    Vous pouvez supprimer en toute sécurité le plan contenant zéro site, qui est celui à partir duquel vous avez opéré la migration.

  4. Exécutez la commande az functionapp plan delete comme suit pour supprimer le plan de consommation à partir duquel vous avez migré.

    az functionapp plan delete --name <CONSUMPTION_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP>
    

De Premium vers Consommation

Utilisez la procédure suivante pour migrer un plan Premium vers un plan Consommation sur Windows :

  1. Exécutez la commande az functionapp plan create comme suit pour créer une nouvelle application de fonction (de consommation) dans la même région et le même groupe de ressources que votre application de fonction existante. Cette commande crée également un plan Consommation dans lequel l’application de fonction s’exécute.

    az functionapp create --resource-group <MY_RESOURCE_GROUP> --name <NEW_CONSUMPTION_APP_NAME> --consumption-plan-location <REGION> --runtime dotnet --functions-version 3 --storage-account <STORAGE_NAME>
    
  2. Exécutez la commande az functionapp update comme suit pour migrer l’application de fonction existante vers le nouveau plan de consommation.

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_CONSUMPTION_PLAN> --force
    
  3. Exécutez la commande az functionapp delete comme suit pour supprimer l’application de fonction que vous avez créée à l’étape 1, car vous n’avez besoin que du plan créé pour exécuter l’application de fonction existante.

    az functionapp delete --name <NEW_CONSUMPTION_APP_NAME> --resource-group <MY_RESOURCE_GROUP>
    
  4. Si vous n’avez plus besoin de votre plan d’application de fonction Premium précédent, supprimez votre plan d’application de fonction d’origine après avoir vérifié que vous avez effectué la migration vers le nouveau plan. Jusqu’à la suppression du plan Premium, vous continuez d’en être facturé. Exécutez la commande az functionapp plan list comme suit pour obtenir la liste de tous les plans Premium dans votre groupe de ressources.

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='EP'].{PlanName:name,Sites:numberOfSites}" -o table
    
  5. Exécutez la commande az functionapp plan delete comme suit pour supprimer le plan Premium à partir duquel vous avez migré.

    az functionapp plan delete --name <PREMIUM_PLAN> --resource-group <MY_RESOURCE_GROUP>
    

Récupérer vos clés d’accès aux fonctions

Les fonctions déclenchées par HTTP peuvent généralement être appelées à l’aide d’une URL au format : https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>. Lorsque l’autorisation d’accès à votre fonction est définie sur une valeur autre que anonymous, vous devez également fournir une clé d’accès dans votre demande. La clé d’accès peut être fournie dans l’URL à l’aide de la chaîne de requête ?code= ou dans l’en-tête de demande. Pour en savoir plus, consultez Clés d’accès Function. Il existe plusieurs façons de récupérer vos clés d’accès.

  1. Connectez-vous au portail Azure, puis recherchez et sélectionnez Application de fonction.

  2. Sélectionnez la fonction que vous souhaitez vérifier.

  3. Dans le menu de navigation gauche, sous Fonctions, sélectionnez Clés d’application.

    Cela permet de renvoyer les clés d’hôte, qui peuvent être utilisées pour accéder à n’importe quelle fonction dans l’application. Elle renvoie également la clé système, qui donne à toute personne un accès de niveau administrateur à toutes les API d’application de fonction.

Vous pouvez également appliquer le principe des privilèges minimum en utilisant la clé pour la clé de fonction spécifique uniquement en sélectionnant Clés de fonction sous Développeur dans votre fonction déclenchée via HTTP.

Limitations de développement dans le Portail Azure

Vous devez prendre en compte ces limitations lors du développement de vos fonctions dans le Portail Azure :

  • La modification dans le portail n’est prise en charge que par les fonctions Script de JavaScript, PowerShell, Python et C#.
  • La modification Python dans le portail est prise en charge uniquement lors de l’exécution dans le plan de consommation.
  • La modification dans le portail n’est actuellement prise en charge que pour les fonctions qui ont été créées ou modifiées pour la dernière fois dans le portail.
  • Lorsque vous déployez du code sur une application de fonction à partir de l’extérieur du portail, vous ne pouvez plus modifier le code de cette application de fonction dans le portail. Dans ce cas, continuez simplement à utiliser le développement local.
  • Pour les fonctions C# compilées, les fonctions Java et certaines fonctions Python, vous pouvez créer l’application de fonction et les ressources associées dans le portail. Toutefois, vous devez créer le projet de code de fonctions localement, et ensuite le publier sur Azure.

Au besoin, vous devez développer vos fonctions localement et publier votre projet de code sur une application de fonction dans Azure. Pour plus d’informations, consultez Coder et tester Azure Functions localement.

Installer les extensions manuellement

Les fonctions de bibliothèque de classes C# peuvent inclure les packages NuGet pour les extensions de liaison directement dans le projet de bibliothèque de classes. Pour les autres langages non-.NET et script C#, vous devez utiliser des packs d’extensions. Si vous devez installer manuellement des extensions, vous pouvez le faire en utilisant Azure Functions Core Tools localement. Si vous ne pouvez pas utiliser de bundles d’extensions et que vous ne pouvez travailler que dans le portail, vous devez utiliser Advanced Tools (Kudu) pour créer manuellement le fichier extensions.csproj directement dans le site. Veillez à supprimer d’abord l’élément extensionBundle du fichier host.json.

Ce même processus fonctionne pour tout autre fichier que vous devez ajouter à votre application.

Important

Si possible, vous ne devez pas modifier les fichiers directement dans votre application de fonction dans Azure. Nous vous recommandons de télécharger vos fichiers d’application localement, à l’aide de Core Tools pour installer des extensions et d’autres packages, de valider vos modifications, puis de republier votre application à l’aide de Core Tools ou de l’une des autres méthodes de déploiement prises en charge.

L’éditeur Functions (intégré au Portail Azure) vous permet de mettre à jour vos fichiers de code et de configuration de fonction directement dans le portail.

  1. Sélectionnez votre application de fonction, puis, sous Fonctions, sélectionnez Fonctions.
  2. Choisissez votre fonction et sélectionnez Code + test sous Développeur.
  3. Choisissez votre fichier à modifier et sélectionnez Enregistrer lorsque vous avez terminé.

Les fichiers à la racine de l’application, tels que function.proj ou extensions.csproj, doivent être créés et modifiés à l’aide d’Advanced Tools (Kudu).

  1. Sélectionnez votre application de fonction, puis sous Outils de développement, sélectionnez Outils avancés>Accéder.

  2. Si une promotion a lieu, connectez-vous au site SCM avec vos informations d’identification Azure.

  3. Dans le menu Déboguer la console, choisissez CMD.

  4. Accédez à .\site\wwwroot, sélectionnez le bouton plus (+) en haut, puis sélectionnez Nouveau fichier.

  5. Nommez le fichier (par exemple extensions.csproj) et appuyez sur Entrée.

  6. Sélectionnez le bouton Modifier en regard du nouveau fichier, ajoutez ou mettez à jour le code dans le fichier, puis sélectionnez Enregistrer.

  7. Pour un fichier projet tel que extensions.csproj, exécutez la commande suivante pour reconstruire le projet d’extensions :

    dotnet build extensions.csproj
    

Fonctionnalités de la plate-forme

Les applications de fonction s’exécutent dans la plateforme Azure App Service et y sont entretenues. Par conséquent, vos Function Apps ont accès à la plupart des fonctionnalités de la plateforme d’hébergement web principale d’Azure. Si vous utilisez le portail Azure, le volet de gauche permet d’accéder aux nombreuses fonctionnalités de la plateforme App Service à votre disposition dans vos applications de fonction.

La matrice suivante indique la prise en charge des fonctionnalités du portail par plan d’hébergement et système d’exploitation :

Fonctionnalité Plan Consommation Plan Premium Plan dédié
Outils avancés (Kudu) Windows : ✔
Linux : X
Éditeur App Service Windows : ✔
Linux : X
Windows : ✔
Linux : X
Windows : ✔
Linux : X
Sauvegardes X X
Console Windows : ligne de commande
Linux : X
Windows : ligne de commande
Linux : SSH
Windows : ligne de commande
Linux : SSH

Le reste de ce article se concentre sur les fonctionnalités du portail qui sont utiles pour applications de fonction :

Pour plus d’informations sur l’utilisation des paramètres App Service, consultez Configurer des applications web dans Azure App Service.

Éditeur App Service

The App Service editor

L’éditeur App Service est un éditeur avancé intégré au portail. Vous pouvez l’utiliser pour modifier les fichiers de configuration JSON et les fichiers de code. L’activation de cette option entraîne l’ouverture d’un onglet distinct du navigateur avec un éditeur de base. Vous pouvez ainsi l’intégrer au référentiel GitHub, exécuter et déboguer du code et modifier les paramètres de Function App. Cet éditeur fournit un environnement de développement amélioré pour vos fonctions en comparaison avec l’éditeur de fonction intégré.

Nous vous recommandons d’envisager de développer vos fonctions sur votre ordinateur local. Quand vous développez localement et publiez sur Azure, vos fichiers projet sont en lecture seule dans le portail. Pour en savoir plus, consultez Coder et tester Azure Functions localement.

Console

Function app console

La console intégrée au portail est un outil de développement idéal lorsque vous souhaitez interagir avec Function App à partir de la ligne de commande. Les commandes courantes incluent la création de fichiers et de répertoires et la navigation, ainsi que l’exécution de scripts et de fichiers de commandes.

Quand vous développez localement, nous vous recommandons d’utiliser Azure Functions Core Tools et Azure CLI.

Outils avancés (Kudu)

Configure Kudu

Les outils avancés pour App Service (également appelé Kudu) donnent accès aux fonctionnalités d’administration avancées de votre Function App. Dans Kudu, vous pouvez gérer les informations système, les paramètres d’application, les variables d’environnement, les extensions de site, les en-têtes HTTP et les variables de serveur. Vous pouvez également lancer Kudu en naviguant vers le point de terminaison SCM pour votre Function App, comme https://<myfunctionapp>.scm.azurewebsites.net/.

Centre de déploiement

Quand vous utilisez une solution de contrôle de code source pour développer et gérer le code de vos fonctions, le centre de déploiement vous permet de générer et de déployer à partir du contrôle de code source. Votre projet est généré et déployé sur Azure quand vous effectuez des mises à jour. Pour plus d’informations, consultez Technologies de déploiement dans Azure Functions.

Partage de ressources cross-origin

Pour empêcher l’exécution de code malveillant sur le client, les navigateurs modernes bloquent les requêtes des applications web vers les ressources qui s’exécutent dans un domaine distinct. Le partage des ressources cross-origin (CORS) permet à un en-tête Access-Control-Allow-Origin de déclarer les origines autorisées à appeler des points de terminaison sur votre application de fonction.

Portail

Quand vous configurez la liste Origines autorisées pour votre application de fonction, l’en-tête Access-Control-Allow-Origin est automatiquement ajouté à toutes les réponses des points de terminaison HTTP dans votre application de fonction.

Configure function app's CORS list

Le caractère générique (*) est ignoré si une autre entrée de domaine existe.

Utilisez la commande az functionapp cors add pour ajouter un domaine à la liste des origines autorisées. L’exemple suivant ajoute le domaine contoso.com :

az functionapp cors add --name <FUNCTION_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--allowed-origins https://contoso.com

Utilisez la commande az functionapp cors show pour lister les origines autorisées actuelles.

Authentification

Configure authentication for a function app

Lorsque les fonctions utilisent un déclencheur HTTP, vous pouvez exiger l’authentification préalable des appels. App Service prend en charge l’authentification Microsoft Entra et la connexion avec des fournisseurs sociaux tels que Facebook, Microsoft et Twitter. Pour plus d’informations sur la configuration de fournisseurs d’authentification spécifiques, consultez Azure App Service authentication overview (Vue d’ensemble de l’authentification Azure App Service).

Étapes suivantes