Die .NET-Laufzeit ist das Softwarepaket, das für die Installation Ihres Anwendungscodes und der Abhängigkeiten sowie für die Ausführung dieser Anwendung in der flexiblen Umgebung verantwortlich ist.
.NET-Versionen
.NET 8 wird mit Buildpacks erstellt. Eine vollständige Liste der unterstützten .NET-Versionen und der zugehörigen Ubuntu-Versionen finden Sie im Zeitplan für den Support der Laufzeit.
Damit Sie eine unterstützte .NET-Version verwenden können, müssen Sie Folgendes tun:
Aktualisieren Sie Ihre Projektdatei mit der .NET-Version, die Sie verwenden möchten.
<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>
Weitere Informationen finden Sie unter Von ASP.NET Core 3.1 zu 6.0 migrieren.
Installieren Sie die CLI-Version 420.0.0 oder höher. Um Ihre Befehlszeilentools zu aktualisieren, führen Sie den Befehl gcloud components update aus. Zum Aufrufen der installierten Version können Sie den Befehl gcloud version ausführen.
Geben Sie die
operating_system
-Einstellung in derapp.yaml
-Datei an:runtime: aspnetcore env: flex runtime_config: operating_system: "ubuntu22"
Optional: Sie können eine Laufzeitversion angeben. Nehmen Sie dazu die Einstellung
runtime_version
in die Dateiapp.yaml
auf. Standardmäßig verwendet App Engine die neueste verfügbare LTS-.NET-Version, wenn die Einstellungruntime_version
nicht angegeben ist. Die Dateiapp.yaml
sieht beispielsweise so aus, wenn .NET 8 auf Ubuntu 22 angegeben wird:runtime: aspnetcore env: flex runtime_config: runtime_version: "8" operating_system: "ubuntu22"
Vorherige Laufzeitversionen
Wenn Sie eine Ausrichtung auf eine bestimmte .NET SDK-Version vornehmen möchten, aktualisieren Sie Ihre Projektdatei. Weitere Informationen finden Sie unter Von ASP.NET Core 3.1 zu 6.0 migrieren.
Wenn Sie GKE oder andere Docker-Hosts verwenden möchten, müssen Sie ein Dockerfile erstellen, das Ihr Anwendungscode kopiert und Abhängigkeiten installiert. Weitere Informationen finden Sie unter Benutzerdefinierte Laufzeiten.
Führen Sie zum Bereitstellen Ihrer .NET-Anwendung die folgenden Befehle in dem Stammverzeichnis aus, in dem sich Ihre Anwendung befindet:
dotnet restore
dotnet publish -c Release
gcloud app deploy
Unterstützung anderer .NET-Laufzeiten
Wenn Sie eine .NET-Version verwenden müssen, die nicht unterstützt wird, können Sie eine benutzerdefinierte Laufzeit erstellen und ein gültiges Basis-Image mit der von Ihnen benötigten .NET-Version auswählen.
Informationen zu von Google bereitgestellten Basis-Images oder Docker .NET-Basis-Images finden Sie unter Benutzerdefinierte Laufzeiten erstellen.
HTTPS- und Weiterleitungs-Proxys
App Engine beendet die HTTPS-Verbindung am Load-Balancer und leitet die Anfrage an Ihre Anwendung weiter. Anhand von X-Forwarded-Proto
können Anwendungen feststellen, ob die ursprüngliche Anfrage über HTTP oder HTTPS erfolgt ist.
Einige Anwendungen müssen auch die IP-Adresse des Nutzers ermitteln. Diese Funktion ist im Standard-Header X-Forwarded-For
verfügbar.
Laufzeit erweitern
Die .NET-Laufzeit für flexible Umgebungen kann zum Erstellen einer benutzerdefinierten Laufzeit verwendet werden.
Benutzerdefinierte Laufzeiten werden über ein Dockerfile
konfiguriert.
Sie können das Dockerfile
und .dockerignore
nach Bedarf anpassen. Schließlich müssen Sie runtime: custom
anstelle von runtime: aspnetcore
in app.yaml
angeben. Weitere Informationen finden Sie unter .NET-Laufzeit anpassen.
Umgebungsvariablen
Die folgenden Umgebungsvariablen werden durch die Laufzeitumgebung festgelegt:
Umgebungsvariable | Beschreibung |
---|---|
GAE_INSTANCE |
Der Name der aktuellen Instanz |
GAE_MEMORY_MB |
Die Größe des für den Anwendungsprozess verfügbaren Speichers |
GAE_SERVICE |
Der in der Datei app.yaml Ihrer Anwendung angegebene Dienstname. Wenn kein Dienstname angegeben ist, wird als Wert default festgelegt. |
GAE_VERSION |
Das Versionslabel der aktuellen Anwendung |
GOOGLE_CLOUD_PROJECT |
Die mit Ihrer Anwendung verknüpfte Projekt-ID, die in der Google Cloud Console angezeigt wird |
PORT |
Der Port, der HTTP-Anfragen empfängt |
Sie können mit appsettings.json
weitere Konfigurationsvariablen festlegen.
Metadatenserver
Jede Instanz Ihrer Anwendung kann den Compute Engine-Metadatenserver verwenden, um Informationen über die Instanz abzufragen, einschließlich ihres Hostnamens, ihrer externen IP-Adresse, Instanz-ID, benutzerdefinierten Metadaten und Dienstkontoinformationen. Sie können in App Engine nicht für jede einzelne Instanz benutzerdefinierte Metadaten festlegen. Sie haben aber die Möglichkeit, projektweite benutzerdefinierte Metadaten anzugeben und aus den App Engine- und Compute Engine-Instanzen zu lesen.
Diese Beispielfunktion ruft die externe IP-Adresse der Instanz über den Metadatenserver ab: