Vue d’ensemble des déclencheurs et des liaisons HTTP Azure Functions

Azure Functions peut être appelé par le biais de requêtes HTTP pour générer des API serverless et répondre aux webhooks.

Action Type
Exécuter une fonction à partir d’une requête HTTP Déclencheur
Retourner une réponse HTTP à partir d'une fonction Liaison de sortie

Installer l’extension

Le package NuGet de l’extension que vous installez dépend du mode C# que vous utilisez dans votre application de fonction :

Les fonctions s’exécutent dans un processus de travail C# isolé. Pour en savoir plus, consultez Guide pour l’exécution d’Azure Functions C# dans un processus Worker isolé.

La fonctionnalité de l’extension varie en fonction de la version de l’extension :

Ajoutez l’extension à votre projet en installant le package NuGet, version 3.x.

Notes

Un package d’extension supplémentaire est nécessaire pour l’intégration d'ASP.NET Core dans .NET Isolé

Installer le bundle

À partir de Functions version 2.x, l’extension HTTP fait partie d’une offre groupée d’extension, qui est spécifiée dans votre fichier projet host.json. Pour plus d’informations, consultez le bundle d’extensions.

Cette version de l’extension doit déjà être disponible pour votre application de fonction avec une offre groupée d’extension, version 2.x.

Paramètres host.json

Cette section décrit les paramètres de configuration disponibles pour cette liaison dans les versions 2.x et ultérieures. Les paramètres dans le fichier host.json s’appliquent à toutes les fonctions dans une instance de l’application de fonction. L’exemple de fichier host.json ci-dessous contient seulement les paramètres des versions 2.x et ultérieures pour cette liaison. Pour plus d’informations sur les paramètres de configuration de l’application de fonction dans les versions 2.x et ultérieures, consultez Référence host.json pour Azure Functions.

Notes

Pour obtenir une référence de host.json dans Functions 1.x, consultez Informations de référence sur le fichier host.json pour Azure Functions 1.x.

{
    "extensions": {
        "http": {
            "routePrefix": "api",
            "maxOutstandingRequests": 200,
            "maxConcurrentRequests": 100,
            "dynamicThrottlesEnabled": true,
            "hsts": {
                "isEnabled": true,
                "maxAge": "10"
            },
            "customHeaders": {
                "X-Content-Type-Options": "nosniff"
            }
        }
    }
}
Propriété Default Description
customHeaders Aucun Vous permet de définir des en-têtes personnalisés dans la réponse HTTP. L’exemple précédent ajoute l’en-tête X-Content-Type-Options à la réponse pour éviter la détection du type de contenu. Cet en-tête personnalisé s’applique à toutes les fonctions déclenchées par HTTP dans l’application de fonction.
dynamicThrottlesEnabled true* Quand il est activé, ce paramètre provoque la vérification périodique des compteurs de performances système, comme connections/threads/processes/memory/cpu/etc, par le pipeline de traitement des requêtes. Si un de ces compteurs dépasse un seuil supérieur intégré (80 %), les requêtes sont rejetées avec une réponse 429 "Too Busy" jusqu’à ce que le ou les compteurs reviennent à un niveau normal.
*La valeur par défaut d’un plan Consommation est true. La valeur par défaut dans un plan dédié est false.
hsts non activé Lorsque isEnabled est défini sur true, le comportement HTTP Strict Transport Security (HSTS) de .NET Core est appliqué, comme défini dans la classe HstsOptions. L’exemple ci-dessus définit également la propriété maxAge sur 10 jours. Les propriétés hsts prises en charge sont les suivantes :
PropriétéDescription
excludedHostsTableau de chaînes des noms d’hôtes pour lesquels l’en-tête HSTS n’est pas ajouté.
includeSubDomainsValeur booléenne qui indique si le paramètre includeSubDomain de l’en-tête Strict-Transport-Security est activé.
maxAgeChaîne qui définit le paramètre max-age de l’en-tête Strict-Transport-Security.
preloadValeur booléenne qui indique si le paramètre preload de l’en-tête Strict-Transport-Security est activé.
maxConcurrentRequests 100* Nombre maximal de fonctions HTTP exécutées en parallèle. Cette valeur vous permet de contrôler la concurrence et facilite ainsi la gestion de l’utilisation des ressources. Par exemple, vous pouvez avoir une fonction HTTP qui utilise un grand nombre de ressources système (mémoire/processeur/sockets) et qui provoque par conséquent des situations où la concurrence est trop élevée. Vous pouvez également avoir une fonction qui effectue des requête sortantes vers un service tiers et qui émet à ce titre des appels dont le débit doit être limité. Dans ces cas, il peut être pertinent d’appliquer une limitation.
*La valeur par défaut d’un plan Consommation est 100. La valeur par défaut d’un plan dédié est illimitée (-1).
maxOutstandingRequests 200* Nombre maximal de requêtes en attente qui ont lieu à un moment donné. La limite inclut les requêtes qui sont en file d’attente, mais dont l’exécution n’a pas démarré, ainsi que les exécutions en cours. Toutes les requêtes entrantes au-delà de cette limite sont rejetées avec une réponse 429 « Trop occupé ». Ainsi, les appelants peuvent appliquer des stratégies temporelles de nouvelle tentative et vous êtes en mesure de contrôler les latences maximales de requêtes. Ce paramètre contrôle uniquement la mise en file d’attente qui se produit dans le chemin d’accès d’exécution de l’hôte de script. Les autres files d’attente, telles que la file d’attente des requêtes ASP.NET, sont toujours actives et ne sont pas concernées par ce paramètre.
*La valeur par défaut d’un plan Consommation est 200. La valeur par défaut d’un plan dédié est illimitée (-1).
routePrefix api Préfixe d’itinéraire qui s’applique à tous les itinéraires. Utilisez une chaîne vide pour supprimer le préfixe par défaut.

Étapes suivantes