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ń.

Ta wersja rozszerzenia powinna być już dostępna dla aplikacji funkcji z pakietem rozszerzeń w wersji 2.x.

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 True* 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 planie dedykowanym 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:
Właściwościopis
excludedHostsTablica ciągów nazw hostów, dla których nagłówek HSTS nie jest dodawany.
includeSubDomainsWartość logiczna wskazująca, czy parametr includeSubDomain nagłówka Strict-Transport-Security jest włączony.
MaxageCiąg definiujący parametr max-age nagłówka Strict-Transport-Security.
Napięcia wstępnegoWartość logiczna wskazująca, czy włączono parametr preload nagłówka Strict-Transport-Security.
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 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 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.

Następne kroki