L'environnement d'exécution .NET est la pile logicielle chargée d'installer le code et les dépendances de votre application, puis d'exécuter cette application dans l'environnement flexible.
Versions .NET
.NET 8 est conçu à l'aide de packs de création. Pour obtenir la liste complète des versions .NET compatibles, ainsi que la version d'Ubuntu correspondante, consultez la page Programmation de la compatibilité avec l'environnement d'exécution.
Pour utiliser une version .NET compatible, vous devez:
Mettre à jour votre fichier de projet avec la version .NET que vous souhaitez utiliser.
<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>
Pour en savoir plus, consultez la page Migrer de ASP.NET Core 3.1 vers la version 6.0.
Installez gcloud CLI version 420.0.0 ou ultérieure. Vous pouvez mettre à jour vos outils de CLI en exécutant la commande gcloud components update. Pour afficher la version installée, vous pouvez exécuter la commande gcloud version.
Spécifiez le paramètre
operating_system
dans votre fichierapp.yaml
:runtime: aspnetcore env: flex runtime_config: operating_system: "ubuntu22"
Facultatif : vous pouvez spécifier une version d'exécution en incluant le paramètre
runtime_version
dans votre fichierapp.yaml
. Par défaut, App Engine utilise la dernière version LTS .NET disponible si le paramètreruntime_version
n'est pas spécifié. Par exemple, le fichierapp.yaml
se présente comme suit lorsque vous spécifiez .NET 8 sur Ubuntu 22 :runtime: aspnetcore env: flex runtime_config: runtime_version: "8" operating_system: "ubuntu22"
Versions précédentes de l'environnement d'exécution
Pour cibler une version spécifique du SDK .NET, mettez à jour votre fichier de projet. Pour en savoir plus, consultez la page Migrer de ASP.NET Core 3.1 vers la version 6.0.
Si vous souhaitez utiliser GKE ou d'autres hôtes Docker, vous devez créer un Dockerfile qui copie le code de votre application et installe des dépendances. Pour en savoir plus, consultez la page Environnements d'exécution personnalisés.
Pour déployer votre application .NET, exécutez les commandes suivantes à partir du répertoire racine où se trouve votre application:
dotnet restore
dotnet publish -c Release
gcloud app deploy
Compatibilité avec d'autres environnements d'exécution .NET
Si vous devez utiliser une version de .NET non compatible, vous pouvez créer un environnement d'exécution personnalisé et sélectionner une image de base valide avec la version de .NET dont vous avez besoin.
Pour obtenir des images de base fournies par Google ou des images de base Docker .NET, consultez la page Créer des environnements d'exécution personnalisés.
HTTPS et proxy de transfert
App Engine met fin à la connexion HTTPS au niveau de l'équilibreur de charge et transfère la requête à l'application. Les applications peuvent examiner X-Forwarded-Proto
pour déterminer si le protocole d'origine était HTTP ou HTTPS.
Certaines applications doivent également vérifier l'adresse IP de l'utilisateur. Cette option est disponible dans l'en-tête standard X-Forwarded-For
.
Étendre l'environnement d'exécution
L'environnement d'exécution flexible .NET peut être utilisé pour créer un environnement d'exécution personnalisé.
Les environnements d'exécution personnalisés sont configurés via un fichier Dockerfile
.
Vous pouvez personnaliser Dockerfile
et .dockerignore
selon vos besoins. Enfin, vous devez spécifier runtime: custom
au lieu de runtime: aspnetcore
dans le fichier app.yaml
. Pour en savoir plus, consultez la page Personnaliser l'environnement d'exécution .NET.
Variables d'environnement
Les variables d'environnement suivantes sont définies par l'environnement d'exécution :
Variable d'environnement | Description |
---|---|
GAE_INSTANCE |
Le nom de l'instance actuelle. |
GAE_MEMORY_MB |
La quantité de mémoire disponible pour le processus d'application. |
GAE_SERVICE |
Nom du service spécifié dans le fichier app.yaml de votre application. Si aucun nom de service n'est spécifié, il est défini sur default . |
GAE_VERSION |
Libellé de version de l'application en cours. |
GOOGLE_CLOUD_PROJECT |
ID du projet associé à votre application, visible dans Google Cloud Console. |
PORT |
Port qui reçoit les requêtes HTTP. |
Vous pouvez définir des variables d'environnement supplémentaires à l'aide du fichier appsettings.json
.
Serveur de métadonnées
Chaque instance de votre application peut utiliser le serveur de métadonnées Compute Engine pour rechercher des informations sur l'instance, y compris son nom d'hôte, son adresse IP externe, son ID d'instance, ses métadonnées personnalisées et ses informations de compte de service. App Engine ne vous permet pas de définir des métadonnées personnalisées pour chaque instance, mais vous pouvez définir des métadonnées personnalisées à l'échelle du projet et les lire à partir de vos instances App Engine et Compute Engine.
Cet exemple de fonction utilise le serveur de métadonnées pour obtenir l'adresse IP externe de l'instance :