panoramica di trigger e associazioni HTTP Funzioni di Azure
Funzioni di Azure possono essere richiamati tramite richieste HTTP per creare API serverless e rispondere ai webhook.
Azione | Type |
---|---|
Eseguire una funzione da una richiesta HTTP | Trigger |
Restituire una risposta HTTP da una funzione | Associazione di output |
Installare l'estensione
Il pacchetto NuGet di estensione installato dipende dalla modalità C# usata nell'app per le funzioni:
Le funzioni sono eseguite in un processo di lavoro C# isolato. Per altre informazioni, vedere Guida per l'esecuzione di Funzioni di Azure C# in un processo di lavoro isolato.
La funzionalità dell'estensione varia a seconda della versione dell'estensione:
Aggiungere l'estensione al progetto installando il pacchetto NuGet versione 3.x.
Nota
È necessario un pacchetto di estensione aggiuntivo per l'integrazione di ASP.NET Core in .NET Isolated
Installare il bundle
A partire da Funzioni versione 2.x, l'estensione HTTP fa parte di un bundle di estensione, specificato nel file di progetto host.json. Per altre informazioni, vedere bundle di estensioni.
Questa versione dell'estensione dovrebbe essere già disponibile per l'app per le funzioni con bundle di estensione versione 2.x.
impostazioni host.json
Questa sezione descrive le impostazioni di configurazione disponibili per questa associazione nelle versioni 2.x e successive. Le impostazioni nel file host.json si applicano a tutte le funzioni in un'istanza dell'app per le funzioni. L'esempio host.json file seguente contiene solo le impostazioni della versione 2.x+ per questa associazione. Per altre informazioni sulle impostazioni di configurazione delle app per le funzioni nelle versioni 2.x e successive, vedere informazioni di riferimento host.json per Funzioni di Azure.
Nota
Per informazioni di riferimento su host.json in Funzioni 1.x, vedere Informazioni di riferimento su host.json per Funzioni di Azure 1.x.
{
"extensions": {
"http": {
"routePrefix": "api",
"maxOutstandingRequests": 200,
"maxConcurrentRequests": 100,
"dynamicThrottlesEnabled": true,
"hsts": {
"isEnabled": true,
"maxAge": "10"
},
"customHeaders": {
"X-Content-Type-Options": "nosniff"
}
}
}
}
Proprietà | Predefinito | Descrizione | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
customHeaders | Nessuno | Consente di impostare intestazioni personalizzate nella risposta HTTP. Nell'esempio precedente viene aggiunta l'intestazione alla risposta per evitare l'analisi X-Content-Type-Options del tipo di contenuto. Questa intestazione personalizzata si applica a tutte le funzioni attivate da HTTP nell'app per le funzioni. |
||||||||||
dynamicThrottlesEnabled | vero* | Se abilitata, questa impostazione fa sì che la pipeline di elaborazione delle richieste controlli periodicamente i contatori delle prestazioni del sistema come connections/threads/processes/memory/cpu/etc e se uno di questi contatori supera una soglia elevata predefinita (80%), le richieste verranno rifiutate con una 429 "Too Busy" risposta fino a quando i contatori non tornano a livelli normali.*Il valore predefinito in un piano a consumo è true . Il valore predefinito nei piani Premium e Dedicato è false . |
||||||||||
hsts | non abilitato | Quando isEnabled è impostato su true , viene applicato il comportamento HSTS (HTTP Strict Transport Security) di .NET Core , come definito nella HstsOptions classe . L'esempio precedente imposta anche la maxAge proprietà su 10 giorni. Le proprietà supportate di hsts sono:
|
||||||||||
maxConcurrentRequests | 100* | Numero massimo di funzioni HTTP eseguite in parallelo. Questo valore consente di controllare la concorrenza, che consente di gestire l'utilizzo delle risorse. Ad esempio, potrebbe essere disponibile una funzione HTTP che usa un numero elevato di risorse di sistema (memoria/cpu/sockets) in modo che causi problemi quando la concorrenza è troppo elevata. In alternativa, potrebbe essere disponibile una funzione che effettua richieste in uscita a un servizio di terze parti e tali chiamate devono essere limitate. In questi casi potrebbe risultare utile l'applicazione di una limitazione. *Il valore predefinito per un piano a consumo è 100. Il valore predefinito per i piani Premium e Dedicato non è associato ( -1 ). |
||||||||||
maxOutstandingRequests | 200* | Il numero massimo di richieste in sospeso che verrà mantenuto in un determinato intervallo. Questo limite include le richieste che vengono messe in coda ma non hanno avviato l'esecuzione, nonché le esecuzioni in corso. Le richieste in arrivo che superano questo limite vengono rifiutate con la risposta 429 "Occupato". Ciò consente ai chiamanti di usare strategie di ripetizione dei tentativi basate sul tempo e di controllare la latenza massima delle richieste. Questa impostazione controlla solo l'accodamento che si verifica all'interno del percorso di esecuzione dell'host dello script. Altre code, ad esempio la coda di richieste ASP.NET, saranno valide e non interessate da questa impostazione. *Il valore predefinito per un piano a consumo è 200. Il valore predefinito per i piani Premium e Dedicato non è associato ( -1 ). |
||||||||||
routePrefix | api | Il prefisso della route che si applica a tutte le route. Utilizzare una stringa vuota per rimuovere il prefisso predefinito. |