Il runtime .NET è lo stack software responsabile dell'installazione del codice e delle dipendenze dell'applicazione, nonché dell'esecuzione dell'applicazione nell'ambiente flessibile.
Versioni .NET
.NET 8 viene creato buildpacks. Per l'elenco completo delle versioni .NET supportate e della relativa versione di Ubuntu, consulta la pianificazione del supporto del runtime.
Per utilizzare un modello supportato .NET, devi:
Aggiorna il file del 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, consulta Eseguire la migrazione da ASP.NET Core 3.1 a 6.0.
Installa gcloud CLI versione 420.0.0 o successive. Puoi aggiornare Strumenti dell'interfaccia a riga di comando eseguendo il aggiornamento dei componenti gcloud . Per visualizzare la versione installata, puoi eseguire 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'elemento
runtime_version
nel tuo fileapp.yaml
. Per impostazione predefinita, App Engine utilizza la versione .NET LTS più recente 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 dell'ambiente di runtime
Per scegliere come target una versione specifica dell'SDK .NET, aggiorna il file del progetto. Per ulteriori informazioni, consulta la pagina 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 ulteriori informazioni, vedi Runtime personalizzati.
Per eseguire il deployment dell'app .NET, esegui i comandi seguenti dalla directory radice 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'istanza runtime personalizzato e seleziona un'immagine di base valida con la versione .NET necessaria.
Per le immagini di base fornite da Google o per le immagini di base Docker .NET, consulta Creare runtime personalizzati.
Proxy HTTPS e di forwarding
App Engine termina la connessione HTTPS al bilanciatore del carico e inoltra
richiesta alla tua applicazione. Le applicazioni possono esaminare X-Forwarded-Proto
per verificare se il protocollo originale era HTTP o HTTPS.
Alcune applicazioni devono anche accertarsi dell'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
. Consulta:
Personalizzazione del runtime .NET
per ulteriori informazioni.
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 la procedura di richiesta. |
GAE_SERVICE |
Il nome del servizio specificato nel campo app.yaml dell'applicazione
o, se non viene specificato alcun nome di servizio, viene impostato su default . |
GAE_VERSION |
L'etichetta della versione dell'applicazione corrente. |
GOOGLE_CLOUD_PROJECT |
L'ID progetto associato alla tua applicazione, visibile in la console Google Cloud |
PORT |
La porta che riceverà le richieste HTTP. |
Puoi impostare altre variabili di configurazione con appsettings.json
.
Server dei metadati
Ogni istanza dell'applicazione può utilizzare Server metadati Compute Engine per informazioni sulle query sull'istanza, tra cui nome host, IP esterno indirizzo IP, ID istanza, metadati personalizzati e informazioni sull'account di servizio. Per app Engine non consente di impostare metadati personalizzati per ogni istanza, ma puoi Impostare metadati personalizzati a livello di progetto e leggerlo dalle tue istanze App Engine e Compute Engine.
Questa funzione di esempio utilizza il server di metadati per ottenere l'indirizzo IP esterno di l'istanza: