Sdílet prostřednictvím


Přehled triggerů a vazeb HTTP služby Azure Functions

Služba Azure Functions se může vyvolat prostřednictvím požadavků HTTP, aby se sestavily bezserverová rozhraní API a reagovaly na webhooky.

Akce Typ
Spuštění funkce z požadavku HTTP Spouštěč
Vrácení odpovědi HTTP z funkce Výstupní vazba

Instalace rozšíření

Balíček NuGet rozšíření, který nainstalujete, závisí na režimu jazyka C#, který používáte ve své aplikaci funkcí:

Funkce se spouštějí v izolovaném pracovním procesu C#. Další informace najdete v průvodci spuštěním služby Azure Functions v jazyce C# v izolovaném pracovním procesu.

Funkce rozšíření se liší v závislosti na verzi rozšíření:

Přidejte rozšíření do projektu instalací balíčku NuGet verze 3.x.

Poznámka:

Pro integraci ASP.NET Core v izolovaném prostředí .NET je potřeba další balíček rozšíření.

Instalace sady

Pokud chcete v aplikaci použít toto rozšíření vazeb, ujistěte se, že soubor host.json v kořenovém adresáři projektu obsahuje tento extensionBundle odkaz:

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

V tomto příkladu version hodnota [4.0.0, 5.0.0) dává hostiteli Functions pokyn, aby používal verzi sady, která je alespoň 4.0.0 , ale menší než 5.0.0, která zahrnuje všechny potenciální verze 4.x. Tato notace efektivně udržuje vaši aplikaci na nejnovější dostupné podverzi sady rozšíření v4.x.

Pokud je to možné, měli byste použít nejnovější hlavní verzi sady rozšíření a umožnit modulu runtime automaticky udržovat nejnovější podverzi. Obsah nejnovější sady můžete zobrazit na stránce verze sady rozšíření. Další informace najdete v sadách rozšíření Azure Functions.

nastavení host.json

Tato část popisuje nastavení konfigurace dostupné pro tuto vazbu ve verzi 2.x a novější. Nastavení v souboru host.json platí pro všechny funkce v instanci aplikace funkcí. Další informace o nastavení konfigurace aplikace funkcí najdete v host.json referenčních informacích ke službě Azure Functions.

Poznámka:

Referenční informace o host.json ve službě Functions 1.x najdete v host.json referenčních informacích ke službě 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"
            }
        }
    }
}
Vlastnost Výchozí Popis
customHeaders Žádná Umožňuje nastavit vlastní hlavičky v odpovědi HTTP. Předchozí příklad přidá hlavičku X-Content-Type-Options do odpovědi, aby se zabránilo zašifrování typu obsahu. Tato vlastní hlavička se vztahuje na všechny funkce aktivované protokolem HTTP v aplikaci funkcí.
Povolené dynamické omezení pravdivý* Pokud je tato možnost povolená, způsobí to, že kanál zpracování požadavků bude pravidelně kontrolovat čítače výkonu systému, jako connections/threads/processes/memory/cpu/etc je některý z těchto čítačů, a pokud některý z těchto čítačů překročí integrovanou vysokou prahovou hodnotu (80 %), požadavky budou odmítnuty s 429 "Too Busy" odpovědí, dokud se čítače nevrátí na normální úrovně.
*Výchozí hodnota v plánu Consumption je true. Výchozí hodnota v plánech Premium a Dedicated je false.
hsts nepovoleno Pokud isEnabled je nastavena na true, chování http Strict Transport Security (HSTS) rozhraní .NET Core je vynuceno, jak je definováno HstsOptions ve třídě. Výše uvedený příklad také nastaví maxAge vlastnost na 10 dní. Podporované vlastnosti hsts jsou:
VlastnostPopis
excludedHostsPole řetězců názvů hostitelů, pro které není přidána hlavička HSTS.
includeSubDomainsLogická hodnota, která označuje, zda je povolen parametr includeSubDomain hlavičky Strict-Transport-Security.
maxAgeŘetězec, který definuje parametr max-age hlavičky Strict-Transport-Security.
přednačístLogická hodnota označující, jestli je povolený parametr předběžného načtení hlavičky Strict-Transport-Security.
MaximálníPočetSoučasnýchŽádostí 100* Maximální počet paralelně spuštěných funkcí HTTP. Tato hodnota umožňuje řídit souběžnost, což může pomoct se správou využití prostředků. Můžete mít například funkci HTTP, která používá velký počet systémových prostředků (paměti, procesoru nebo soketů), které způsobují problémy, když je souběžnost příliš vysoká. Nebo můžete mít funkci, která provádí odchozí požadavky na službu třetí strany a tato volání musí být omezená rychlostí. V takových případech může pomoct implementace omezování.
*Výchozí hodnota pro plán Consumption je 100. Výchozí hodnota pro plány Premium a Dedicated je nevázaná (-1).
maximální počet nevyřízených požadavků 200* Maximální počet nevyřízených žádostí, které se v daném okamžiku uchovávají. Tento limit zahrnuje požadavky, které jsou zařazené do fronty, ale nespustily se, ani probíhající provádění. Všechny příchozí požadavky nad tímto limitem jsou odmítnuty s odpovědí 429 "Příliš zaneprázdněné". To umožňuje volajícím využívat strategie opakování na základě času a také pomáhá řídit maximální latenci požadavků. To řídí pouze řízení fronty, ke kterému dochází v rámci cesty spuštění hostitele skriptu. Ostatní fronty, jako je fronta požadavků ASP.NET, budou dál platit a toto nastavení na ně nebude mít vliv.
*Výchozí hodnota pro plán Consumption je 200. Výchozí hodnota pro plány Premium a Dedicated je nevázaná (-1).
routePrefix API Předpona trasy, která se vztahuje na všechny trasy. K odebrání výchozí předpony použijte prázdný řetězec.

Další kroky