overzicht van HTTP-triggers en -bindingen Azure Functions

Azure Functions kan worden aangeroepen via HTTP-aanvragen om serverloze API's te bouwen en te reageren op webhooks.

Actie Type
Een functie uitvoeren vanuit een HTTP-aanvraag Trigger
Een HTTP-antwoord van een functie retourneren Uitvoerbinding

De extensie installeren

Het nuGet-extensiepakket dat u installeert, is afhankelijk van de C#-modus die u in uw functie-app gebruikt:

Functies worden uitgevoerd in hetzelfde proces als de Functions-host. Zie C#-klassenbibliotheekfuncties ontwikkelen met behulp van Azure Functions voor meer informatie.

De functionaliteit van de extensie varieert afhankelijk van de extensieversie:

Voeg de extensie toe aan uw project door het NuGet-pakket versie 3.x te installeren.

Bundel installeren

Vanaf Functions versie 2.x maakt de HTTP-extensie deel uit van een extensiebundel, die is opgegeven in het projectbestand host.json. Zie uitbreidingsbundel voor meer informatie.

Deze versie van de extensie moet al beschikbaar zijn voor uw functie-app met extensiebundel, versie 2.x.

host.json-instellingen

In deze sectie worden de configuratie-instellingen beschreven die beschikbaar zijn voor deze binding in versies 2.x en hoger. Instellingen in het bestand host.json zijn van toepassing op alle functies in een exemplaar van een functie-app. Het onderstaande voorbeeld van het host.json-bestand bevat alleen de versie 2.x+-instellingen voor deze binding. Zie naslaginformatie over host.json voor Azure Functions voor meer informatie over configuratie-instellingen voor functie-apps in versies 2.x en latere versies.

{
    "extensions": {
        "http": {
            "routePrefix": "api",
            "maxOutstandingRequests": 200,
            "maxConcurrentRequests": 100,
            "dynamicThrottlesEnabled": true,
            "hsts": {
                "isEnabled": true,
                "maxAge": "10"
            },
            "customHeaders": {
                "X-Content-Type-Options": "nosniff"
            }
        }
    }
}
Eigenschap Standaard Beschrijving
customHeaders geen Hiermee kunt u aangepaste headers instellen in het HTTP-antwoord. In het vorige voorbeeld wordt de X-Content-Type-Options header toegevoegd aan het antwoord om te voorkomen dat inhoudstypen worden gesnuffeld. Deze aangepaste header is van toepassing op alle door HTTP geactiveerde functies in de functie-app.
dynamicThrottlesEnabled true* Wanneer deze instelling is ingeschakeld, zorgt deze ervoor dat de aanvraagverwerkingspijplijn periodiek systeemprestatiemeteritems controleert, zoals connections/threads/processes/memory/cpu/etc en als een van deze tellers een ingebouwde hoge drempelwaarde (80%) overschrijdt, worden aanvragen geweigerd met een 429 "Too Busy" antwoord totdat de teller(s) weer op normale niveaus zijn.
*De standaardwaarde in een verbruiksabonnement is true. De standaardwaarde in een Toegewezen abonnement is false.
hsts niet ingeschakeld Wanneer isEnabled is ingesteld op true, wordt het HTTP Strict Transport Security (HSTS) gedrag van .NET Core afgedwongen, zoals gedefinieerd in de HstsOptions klasse. In het bovenstaande voorbeeld wordt de maxAge eigenschap ook ingesteld op 10 dagen. Ondersteunde eigenschappen van hsts zijn:
EigenschapBeschrijving
excludedHostsEen tekenreeksmatrix met hostnamen waarvoor de HSTS-header niet is toegevoegd.
includeSubDomainsBooleaanse waarde die aangeeft of de parameter includeSubDomain van de Strict-Transport-Security-header is ingeschakeld.
maxAgeTekenreeks die de parameter max-age van de strict-Transport-Security-header definieert.
preloadBooleaanse waarde die aangeeft of de preload-parameter van de Strict-Transport-Security-header is ingeschakeld.
maxConcurrentRequests 100* Het maximum aantal HTTP-functies dat parallel wordt uitgevoerd. Met deze waarde kunt u gelijktijdigheid beheren, waardoor u het resourcegebruik kunt beheren. U hebt bijvoorbeeld een HTTP-functie die gebruikmaakt van een groot aantal systeembronnen (geheugen/cpu/sockets), zodat deze problemen veroorzaakt wanneer de gelijktijdigheid te hoog is. Of misschien hebt u een functie waarmee uitgaande aanvragen worden verzonden naar een service van derden en die aanroepen moeten worden beperkt tot de frequentie. In deze gevallen kan het toepassen van een beperking hier helpen.
*De standaardwaarde voor een verbruiksabonnement is 100. De standaardwaarde voor een toegewezen abonnement is niet-afhankelijk (-1).
maxOutstandingRequests 200* Het maximum aantal openstaande aanvragen dat op een bepaald moment wordt bewaard. Deze limiet omvat aanvragen die in de wachtrij staan maar nog niet zijn begonnen met uitvoeren, evenals alle actieve uitvoeringen. Alle binnenkomende aanvragen die deze limiet overschrijden, worden geweigerd met een 429-antwoord 'Te bezet'. Op die manier kunnen bellers strategieën voor opnieuw proberen op basis van tijd gebruiken en kunt u de maximale latentie van aanvragen beheren. Dit bepaalt alleen de wachtrij die plaatsvindt binnen het uitvoeringspad van de scripthost. Andere wachtrijen, zoals de ASP.NET aanvraagwachtrij, zijn nog steeds van kracht en worden niet beïnvloed door deze instelling.
*De standaardwaarde voor een verbruiksabonnement is 200. De standaardwaarde voor een toegewezen abonnement is niet-afhankelijk (-1).
routePrefix api Het routevoorvoegsel dat van toepassing is op alle routes. Gebruik een lege tekenreeks om het standaardvoorvoegsel te verwijderen.

Volgende stappen