Il runtime .NET è lo stack software responsabile dell'installazione del codice e delle dipendenze dell'applicazione e della sua esecuzione nell'ambiente flessibile.
Versioni di .NET
.NET 10 è stato creato utilizzando i buildpack. Per l'elenco completo delle versioni di .NET supportate e della versione di Ubuntu corrispondente, consulta la pianificazione del supporto del runtime.
Per utilizzare una versione di .NET supportata, devi:
Aggiornare il file di progetto con la versione di .NET che vuoi utilizzare.
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net10.0</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> </PropertyGroup> <ItemGroup> <None Update="app.yaml"> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> </None> </ItemGroup> </Project>Installare gcloud CLI versione 420.0.0 o successive. Puoi aggiornare gli strumenti della CLI eseguendo il comando gcloud components update. Per visualizzare la versione installata, puoi eseguire il comando gcloud version.
Specificare l'
operating_systemimpostazione nelapp.yamlfile:runtime: aspnetcore env: flex runtime_config: operating_system: "ubuntu24"Facoltativamente, puoi specificare una versione del runtime includendo l'impostazione
runtime_versionnel fileapp.yaml. Per impostazione predefinita, App Engine utilizza l'ultima versione LTS di .NET disponibile se l'impostazioneruntime_versionnon è specificata. Ad esempio, il fileapp.yamlha il seguente aspetto quando si specifica .NET 10 su Ubuntu 24:runtime: aspnetcore env: flex runtime_config: runtime_version: "10" operating_system: "ubuntu24"
Versioni precedenti del runtime
Per scegliere come target una versione specifica dell'SDK .NET, aggiorna il file di progetto. Per maggiori informazioni, consulta 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 copi il codice dell'applicazione e installi le dipendenze. Per maggiori informazioni, consulta Runtime personalizzati.
Per eseguire il deployment dell'app .NET, esegui i seguenti comandi dalla directory principale in cui si trova l'app:
dotnet restore
dotnet publish -c Release
gcloud app deploy
Supporto di altri runtime .NET
Se devi utilizzare una versione di .NET non supportata, puoi creare un runtime personalizzato e selezionare un'immagine di base valida con la versione di .NET di cui hai bisogno.
Per le immagini di base fornite da Google o immagini di base Docker .NET, consulta Creare runtime personalizzati.
Proxy HTTPS e di forwarding
App Engine termina la connessione HTTPS nel bilanciatore del carico e inoltra la richiesta all'applicazione. Le applicazioni possono esaminare X-Forwarded-Proto per verificare se il protocollo originale era HTTP o HTTPS.
Alcune applicazioni devono anche accertare l'indirizzo IP dell'utente. Questo è disponibile nell'intestazione standard X-Forwarded-For.
Estendere il runtime
Il runtime .NET dell'ambiente flessibile può essere utilizzato 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 maggiori informazioni, consulta
Personalizzare il runtime .NET.
Variabili di ambiente
Le seguenti variabili di ambiente vengono impostate dall'ambiente di runtime:
| Variabile di ambiente | Descrizione |
|---|---|
GAE_INSTANCE |
Il nome dell'istanza corrente. |
GAE_MEMORY_MB |
La quantità di memoria disponibile per il processo dell'applicazione. |
GAE_SERVICE |
Il nome del servizio specificato nel file app.yaml
dell'applicazione o, se non è specificato alcun nome del servizio, viene impostato su default. |
GAE_VERSION |
L'etichetta della versione dell'applicazione corrente. |
GOOGLE_CLOUD_PROJECT |
L'ID progetto associato all'applicazione, visibile in the Google Cloud console |
PORT |
La porta che riceverà le richieste HTTP. |
Puoi impostare variabili di configurazione aggiuntive con appsettings.json.
Server di metadati
Ogni istanza dell'applicazione può utilizzare il server di metadati di Compute Engine per eseguire query sulle informazioni sull'istanza, inclusi il nome host, l'indirizzo IP esterno, l'ID istanza, i metadati personalizzati e le informazioni sull'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 di App Engine e Compute Engine.
Questa funzione di esempio utilizza il server di metadati per ottenere l'indirizzo IP esterno dell'istanza: