omówienie wyzwalaczy i powiązań HTTP Azure Functions
Azure Functions mogą być wywoływane 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# używanego w aplikacji funkcji:
Funkcje są wykonywane w tym samym procesie co host usługi Functions. Aby dowiedzieć się więcej, zobacz Tworzenie funkcji biblioteki klas języka C# przy użyciu Azure Functions.
Funkcjonalność rozszerzenia różni się w zależności od wersji rozszerzenia:
Dodaj rozszerzenie do projektu, instalując pakiet NuGet w wersji 3.x.
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ń.
Ta wersja rozszerzenia powinna być już dostępna dla aplikacji funkcji z pakietem rozszerzeń w wersji 2.x.
Ustawienia pliku 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 dokumentację pliku host.json dla Azure Functions.
Uwaga
Aby zapoznać się z dokumentacją pliku host.json w usłudze Functions 1.x, zobacz dokumentację pliku host.json dla 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ść | Domyślny | Opis | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
customHeaders | brak | Umożliwia ustawienie nagłówków niestandardowych w odpowiedzi HTTP. W poprzednim przykładzie X-Content-Type-Options dodano 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 | True* | Po włączeniu tego ustawienia 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 planie dedykowanym to false . |
||||||||||
hsts | nie włączono | Gdy isEnabled jest ustawiona wartość true , wymuszane jest zachowanie protokołu HTTP Strict Transport Security (HSTS) platformy .NET Core 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 dedykowanego planu jest niezwiązana ( -1 ). |
||||||||||
maxOutstandingRequests | 200* | Maksymalna liczba oczekujących żądań, które są przechowywane w dowolnym 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 wywołujący mogą stosować strategie ponawiania na podstawie czasu, a także pomaga kontrolować maksymalne opóźnienia żądań. Steruje to tylko kolejkowaniem, 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ą miały wpływu na to ustawienie. *Wartość domyślna planu Zużycie to 200. Wartość domyślna dla dedykowanego planu 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. |