Delen via


Overzicht van HTTP-triggers en bindingen in Azure Functions

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

Actie Typologie
Een functie uitvoeren vanuit een HTTP-aanvraag Trekker
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 gebruikt in uw functie-app:

Functies worden uitgevoerd in een geïsoleerd C#-werkproces. Zie De handleiding voor het uitvoeren van C# Azure Functions in een geïsoleerd werkproces 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.

Notitie

Er is een extra uitbreidingspakket nodig voor ASP.NET Core-integratie in .NET Isolated

Bundel installeren

Als u deze bindingsextensie in uw app wilt kunnen gebruiken, moet u ervoor zorgen dat het host.json bestand in de hoofdmap van uw project deze extensionBundle verwijzing bevat:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

In dit voorbeeld geeft de version waarde van [4.0.0, 5.0.0) de Functions-host opdracht om een bundelversie te gebruiken die ten minste 4.0.0 maar kleiner is dan 5.0.0, die alle mogelijke versies van 4.x bevat. Deze notatie onderhoudt uw app effectief op de nieuwste beschikbare secundaire versie van de v4.x-extensiebundel.

Indien mogelijk moet u de meest recente primaire versie van de extensiebundel gebruiken en toestaan dat de runtime automatisch de meest recente secundaire versie onderhoudt. U kunt de inhoud van de meest recente bundel bekijken op de releasepagina voor extensiebundels. Zie Azure Functions-extensiebundels voor meer informatie.

host.json-instellingen

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

{
    "extensions": {
        "http": {
            "routePrefix": "api",
            "maxOutstandingRequests": 200,
            "maxConcurrentRequests": 100,
            "dynamicThrottlesEnabled": true,
            "hsts": {
                "isEnabled": true,
                "maxAge": "10"
            },
            "customHeaders": {
                "X-Content-Type-Options": "nosniff"
            }
        }
    }
}
Eigenschappen 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 gesniffing. Deze aangepaste header is van toepassing op alle door HTTP geactiveerde functies in de functie-app.
DynamicThrottlesIngeschakeld waar* 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 prestatiemeteritems weer normaal zijn.
*De standaardwaarde in een verbruiksabonnement is true. De standaardinstelling in de Premium- en Dedicated-abonnementen is false.
hsts niet ingeschakeld Wanneer isEnabled dit is ingesteld trueop, wordt het GEDRAG van HSTS (HTTP Strict Transport Security) 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 zijn hsts :
EigenschappenBeschrijving
excludedHostsEen tekenreeksmatrix met hostnamen waarvoor de HSTS-header niet wordt toegevoegd.
includeSubDomainsBooleaanse waarde die aangeeft of de parameter includeSubDomain van de header Strict-Transport-Security is ingeschakeld.
maxAgeTekenreeks die de parameter max-age van de header Strict-Transport-Security definieert.
vooraf ladenBooleaanse waarde die aangeeft of de parameter preload van de header Strict-Transport-Security is ingeschakeld.
maxConcurrentRequests 100* Het maximum aantal HTTP-functies dat parallel wordt uitgevoerd. Met deze waarde kunt u gelijktijdigheid beheren, wat kan helpen bij het beheren van resourcegebruik. U hebt bijvoorbeeld een HTTP-functie die gebruikmaakt van een groot aantal systeembronnen (geheugen/cpu/sockets), zodat er problemen optreden wanneer gelijktijdigheid te hoog is. Of u hebt een functie waarmee uitgaande aanvragen worden verzonden naar een service van derden. Deze aanroepen moeten beperkt zijn. In deze gevallen kan het toepassen van een beperking hier helpen.
*De standaardwaarde voor een verbruiksabonnement is 100. De standaardwaarde voor de Premium- en Dedicated-abonnementen is niet gebonden (-1).
maxAantalOpenstaandeVerzoeken 200* Het maximum aantal openstaande aanvragen dat op elk gewenst moment wordt bewaard. Deze limiet omvat aanvragen die in de wachtrij worden geplaatst, maar die niet zijn gestart, evenals eventuele actieve uitvoeringen. Eventuele binnenkomende aanvragen die deze limiet overschrijden, worden geweigerd met een antwoord van 429 'Te bezet'. Hierdoor kunnen bellers strategieën voor opnieuw proberen op basis van tijd gebruiken en kunt u ook maximale latenties voor aanvragen beheren. Dit bepaalt alleen wachtrijen die plaatsvinden 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 de Premium- en Dedicated-abonnementen is niet gebonden (-1).
routeVoorvoegsel API Het routevoorvoegsel dat van toepassing is op alle routes. Gebruik een lege tekenreeks om het standaardvoorvoegsel te verwijderen.

Volgende stappen