Il runtime .NET è lo stack software responsabile dell'installazione del codice e delle dipendenze dell'applicazione e dell'esecuzione dell'applicazione nell'ambiente flessibile.
Versioni .NET
.NET 8 viene creato utilizzando buildpack. Per l'elenco completo delle versioni .NET supportate e della versione Ubuntu corrispondente, consulta la pianificazione del supporto di runtime.
Per utilizzare una versione .NET supportata, devi:
Aggiorna il file di progetto con la versione di .NET che vuoi utilizzare.
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> </PropertyGroup> <ItemGroup> <None Update="app.yaml"> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> </None> </ItemGroup> </Project>
Per ulteriori informazioni, vedi Eseguire la migrazione da ASP.NET Core da 3.1 a 6.0.
Installa gcloud CLI versione 420.0.0 o successiva. Puoi aggiornare gli strumenti dell'interfaccia a riga di comando eseguendo il comando gcloudComponents update. Per visualizzare la versione installata, puoi eseguire il comando gcloud version.
Specifica l'impostazione
operating_system
nel fileapp.yaml
:runtime: aspnetcore env: flex runtime_config: operating_system: "ubuntu22"
Facoltativamente, puoi specificare una versione del runtime includendo l'impostazione
runtime_version
nel fileapp.yaml
. Per impostazione predefinita, App Engine utilizza la versione più recente di .NET LTS disponibile se l'impostazioneruntime_version
non è specificata. Ad esempio, il fileapp.yaml
ha il seguente aspetto quando specifichi .NET 8 su Ubuntu 22:runtime: aspnetcore env: flex runtime_config: runtime_version: "8" operating_system: "ubuntu22"
Versioni precedenti del runtime
Per scegliere come target una versione specifica dell'SDK .NET, aggiorna il file di progetto. Per ulteriori informazioni, vedi Eseguire la migrazione da ASP.NET Core 3.1 a 6.0.
Se vuoi utilizzare GKE o altri host Docker, devi creare un Dockerfile che copia il codice dell'applicazione e installa le dipendenze. Per maggiori informazioni, consulta Runtime personalizzati.
Per eseguire il deployment dell'app .NET, esegui questi comandi dalla directory root in cui si trova l'app:
dotnet restore
dotnet publish -c Release
gcloud app deploy
Supporto per altri runtime .NET
Se devi utilizzare una versione .NET non supportata, puoi creare un runtime personalizzato e selezionare un'immagine di base valida con la versione .NET che ti serve.
Per le immagini di base fornite da Google o per le immagini di base Docker .NET, consulta Creazione di runtime personalizzati.
Proxy HTTPS e di forwarding
App Engine termina la connessione HTTPS al bilanciatore del carico e inoltra la richiesta all'applicazione. Le applicazioni possono esaminare X-Forwarded-Proto
per scoprire se il protocollo originale era HTTP o HTTPS.
Alcune applicazioni devono anche verificare l'indirizzo IP dell'utente. Questa opzione è disponibile nell'intestazione X-Forwarded-For
standard.
Estensione del runtime
È possibile utilizzare il runtime .NET dell'ambiente flessibile per creare un runtime personalizzato.
I runtime personalizzati vengono configurati tramite un Dockerfile
.
Puoi personalizzare Dockerfile
e .dockerignore
come preferisci. Infine,
dovrai specificare runtime: custom
anziché runtime: aspnetcore
in
app.yaml
. Per ulteriori informazioni, consulta Personalizzazione del runtime .NET.
Variabili di ambiente
L'ambiente di runtime imposta le seguenti variabili di ambiente:
Variabile di ambiente | Descrizione |
---|---|
GAE_INSTANCE |
Il nome dell'istanza attuale. |
GAE_MEMORY_MB |
La quantità di memoria disponibile per il processo di richiesta. |
GAE_SERVICE |
Il nome del servizio specificato nel file app.yaml dell'applicazione oppure, se non viene specificato alcun nome di servizio, è impostato su default . |
GAE_VERSION |
L'etichetta della versione dell'applicazione corrente. |
GOOGLE_CLOUD_PROJECT |
L'ID progetto associato alla tua applicazione, visibile nella console Google Cloud |
PORT |
La porta che riceverà le richieste HTTP. |
Puoi impostare altre variabili di configurazione con appsettings.json
.
Server metadati
Ogni istanza della tua applicazione può utilizzare il server di metadati di Compute Engine per eseguire query sulle informazioni sull'istanza, tra cui nome host, indirizzo IP esterno, ID istanza, metadati personalizzati e informazioni dell'account di servizio. App Engine non consente di impostare metadati personalizzati per ogni istanza, ma puoi impostare metadati personalizzati a livello di progetto e leggerli dalle istanze App Engine e Compute Engine.
Questa funzione di esempio utilizza il server di metadati per ottenere l'indirizzo IP esterno dell'istanza: