Omówienie wyzwalaczy i powiązań HTTP usługi Azure Functions
Usługa Azure Functions może być wywoływana za pośrednictwem żądań HTTP w celu tworzenia bezserwerowych interfejsów API i reagowania na elementy webhook.
Akcja | Typ |
---|---|
Uruchamianie funkcji z żądania HTTP | Wyzwalacz |
Zwracanie odpowiedzi HTTP z funkcji | Powiązanie wyjściowe |
Instalowanie rozszerzenia
Instalowany pakiet NuGet rozszerzenia zależy od trybu języka C#, którego używasz w aplikacji funkcji:
Funkcje są wykonywane w izolowanym procesie roboczym języka C#. Aby dowiedzieć się więcej, zobacz Przewodnik dotyczący uruchamiania usługi Azure Functions w języku C# w izolowanym procesie roboczym.
Funkcjonalność rozszerzenia różni się w zależności od wersji rozszerzenia:
Dodaj rozszerzenie do projektu, instalując pakiet NuGet w wersji 3.x.
Uwaga
Do integracji z platformą .NET Isolated jest wymagany dodatkowy pakiet rozszerzenia ASP.NET Core
Instalowanie pakietu
Począwszy od usługi Functions w wersji 2.x, rozszerzenie HTTP jest częścią pakietu rozszerzeń określonego w pliku projektu host.json. Aby dowiedzieć się więcej, zobacz pakiet rozszerzeń.
ustawienia host.json
W tej sekcji opisano ustawienia konfiguracji dostępne dla tego powiązania w wersjach 2.x i nowszych. Ustawienia w pliku host.json mają zastosowanie do wszystkich funkcji w wystąpieniu aplikacji funkcji. Poniższy przykładowy plik host.json zawiera tylko ustawienia wersji 2.x+ dla tego powiązania. Aby uzyskać więcej informacji na temat ustawień konfiguracji aplikacji funkcji w wersjach 2.x i nowszych, zobacz host.json dokumentacja usługi Azure Functions.
Uwaga
Aby zapoznać się z dokumentacją host.json w usłudze Functions 1.x, zobacz host.json reference for Azure Functions 1.x (Dokumentacja usługi 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"
}
}
}
}
Właściwości | Domyślny | opis | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
customHeaders | Brak | Umożliwia ustawienie nagłówków niestandardowych w odpowiedzi HTTP. Poprzedni przykład dodaje X-Content-Type-Options nagłówek do odpowiedzi, aby uniknąć wąchania typu zawartości. Ten nagłówek niestandardowy ma zastosowanie do wszystkich funkcji wyzwalanych przez protokół HTTP w aplikacji funkcji. |
||||||||||
dynamicThrottlesEnabled | prawdziwy* | Po włączeniu to ustawienie powoduje, że potok przetwarzania żądań okresowo sprawdza liczniki wydajności systemu, takie jak connections/threads/processes/memory/cpu/etc i jeśli którykolwiek z tych liczników przekracza wbudowany wysoki próg (80%), żądania zostaną odrzucone z odpowiedzią, dopóki liczniki nie powrócą 429 "Too Busy" do normalnych poziomów.*Wartość domyślna w planie Zużycie to true . Wartość domyślna w planach Premium i Dedykowane to false . |
||||||||||
hsts | nie włączono | Gdy isEnabled jest ustawiona wartość true , zachowanie protokołu HTTP Strict Transport Security (HSTS) platformy .NET Core jest wymuszane zgodnie z definicją HstsOptions w klasie. Powyższy przykład ustawia maxAge również właściwość na 10 dni. Obsługiwane właściwości hsts to:
|
||||||||||
maxConcurrentRequests | 100* | Maksymalna liczba funkcji HTTP wykonywanych równolegle. Ta wartość umożliwia kontrolowanie współbieżności, co może pomóc w zarządzaniu wykorzystaniem zasobów. Na przykład może istnieć funkcja HTTP, która używa dużej liczby zasobów systemowych (pamięci/procesora/gniazd), tak aby powodowała problemy, gdy współbieżność jest zbyt wysoka. Możesz też mieć funkcję, która wysyła żądania wychodzące do usługi innej firmy, a te wywołania muszą być ograniczone. W takich przypadkach może pomóc zastosowanie ograniczania przepustowości. *Wartość domyślna planu Zużycie to 100. Wartość domyślna dla planów Premium i Dedykowanych jest niezwiązana ( -1 ). |
||||||||||
maxOutstandingRequests | 200* | Maksymalna liczba zaległych żądań, które są przechowywane w danym momencie. Ten limit obejmuje żądania, które są kolejkowane, ale nie zostały uruchomione, a także wszelkie wykonania w toku. Wszystkie żądania przychodzące powyżej tego limitu są odrzucane z odpowiedzią 429 "Zbyt zajęta". Dzięki temu osoby wywołujące mogą używać strategii ponawiania prób opartych na czasie, a także pomaga kontrolować maksymalne opóźnienia żądań. Spowoduje to tylko kolejkowanie, które występuje w ścieżce wykonywania hosta skryptu. Inne kolejki, takie jak kolejka żądań ASP.NET, będą nadal obowiązywać i nie będą podlegać temu ustawieniu. *Wartość domyślna planu Zużycie to 200. Wartość domyślna dla planów Premium i Dedykowanych jest niezwiązana ( -1 ). |
||||||||||
routePrefix | api | Prefiks trasy, który ma zastosowanie do wszystkich tras. Użyj pustego ciągu, aby usunąć prefiks domyślny. |