Supporto delle API in App Web statiche di Azure con Funzioni di Azure

Le applicazioni Web front-end spesso chiamano api end per dati e servizi. Per impostazione predefinita, App Web statiche di Azure fornisce endpoint API serverless predefiniti tramite Funzioni di Azure.

Funzioni di Azure API in App Web statiche sono disponibili in due possibili configurazioni a seconda del piano di hosting:

  • Funzioni gestite: per impostazione predefinita, l'API di un'app Web statica è un'applicazione Funzioni di Azure gestita e distribuita da App Web statiche di Azure associata ad alcune restrizioni.

  • Bring Your Own Functions: facoltativamente, è possibile fornire un'applicazione Funzioni di Azure esistente di qualsiasi tipo di piano, che include tutte le funzionalità di Funzioni di Azure. Con questa configurazione, si è responsabili della gestione di una distribuzione separata per l'app per le funzioni.

La tabella seguente contrasta le differenze tra l'uso di funzioni gestite e esistenti.

Funzionalità Funzioni gestite Bring your own Functions
Accesso a trigger e associazioni Funzioni di Azure Solo HTTP Tutte le date
Runtimedi Funzioni di Azure supportati 1 Node.js 12
Node.js 14
Node.js 16
Node.js 18
.NET Core 3.1
.NET 6.0
.NET 7.0
Python 3.8
Python 3.9
Python 3.10
Tutte le date
Piani di hosting supportati Funzioni di Azure Consumo Consumo
Premium
Dedicato
Sicurezza integrata con accesso diretto all'autenticazione utente e ai dati di autorizzazione basati sui ruoli
Integrazione del routing che rende la /api route disponibile per l'app Web in modo sicuro senza richiedere regole CORS personalizzate.
Funzioni distribuite (anteprima) per la distribuzione globale dinamica del calcolo back-end.
Modello di programmazione Durable Functions
Identità gestita
app Azure gestione dei token di autenticazione e autorizzazione del servizio
Funzioni API disponibili all'esterno di App Web statiche di Azure
Riferimenti a Key Vault

1 Per specificare la versione di runtime nelle funzioni gestite, aggiungere un file di configurazione all'app front-end e impostare la apiRuntime proprietà . Il supporto è soggetto ai criteri di supporto del runtime del linguaggio di Funzioni di Azure.

Le opzioni API per App Web statiche includono i servizi di Azure seguenti:

Per altre informazioni, vedere la panoramica delle API.

Nota

Le funzioni distribuite sono disponibili con funzioni gestite. Le funzioni distribuite distribuiscono automaticamente le funzioni gestite alle aree di carichi di richieste elevate.

Impostazione

Gli endpoint API sono disponibili per l'app Web tramite la api route.

Funzioni gestite BYOF (Bring Your Own Functions)
Mentre la /api route è fissa, è possibile controllare il percorso della cartella del codice sorgente dell'app per le funzioni gestite. Per cambiare questo percorso, modificare il file YAML del flusso di lavoro che si trova nella cartella .github/workflows del repository. Le richieste alla /api route vengono inviate all'app Funzioni di Azure esistente.

Risoluzione dei problemi e log

I log sono disponibili solo se si aggiunge Application Insights.

Funzioni gestite BYOF (Bring Your Own Functions)
Attivare la registrazione abilitando Application Insights nell'app Web statica. Attivare la registrazione abilitando Application Insights nell'app Funzioni di Azure.

Vincoli

Oltre ai vincoli api App Web statiche, le restrizioni seguenti sono applicabili anche alle API Funzioni di Azure:

Funzioni gestite BYOF (Bring Your Own Functions)
  • I trigger e le associazioni sono limitati a quelli HTTP.
  • L'app Funzioni di Azure deve trovarsi in Node.js 12, Node.js 14, Node.js 16, Node.js 18 (anteprima pubblica), .NET Core 3.1, .NET 6.0, Python 3.8, Python 3.9 o Python 3.10.
  • Alcune impostazioni dell'applicazione vengono gestite dal servizio, pertanto i prefissi seguenti sono riservati dal runtime:
    • APP edizione Standard TTING_, AZUREBLOBSTORAGE_, AZUREFILESSTORAGE_, AZURE_FUNCTION_, CONTAINER_, DIAGNOSTICS_, DOCKER_, FUNCTIONS_, IDENTITY_, MACHINEKEY_, MAINSITE_, MSDEPLOY_, SCMSITE_, SCM_, WEBSITES_, WEBSITE_, WEBSOCKET_, AzureWeb
  • Alcuni tag dell'applicazione vengono usati internamente dal servizio. Di conseguenza, i tag seguenti sono riservati:
    • AccountId, EnvironmentId, FunctionAppId.
  • L'utente è responsabile della gestione della distribuzione dell'app per le funzioni.

Passaggi successivi