El tiempo de ejecución de .NET es la pila de software encargada de instalar el código de tu aplicación y sus dependencias, y, a continuación, ejecutar esa aplicación en el entorno flexible.
Versiones de .NET
.NET 8 se ha creado con paquetes de compilación. Para ver la lista completa de las versiones de .NET admitidas y sus correspondientes versiones de Ubuntu, consulta la programación de asistencia de tiempo de ejecución.
Para usar una versión compatible de .NET, debes hacer lo siguiente:
Actualiza el archivo de proyecto con la versión de .NET que quieras usar.
<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>
Para obtener más información, consulta el artículo Migrar de ASP.NET Core 3.1 a 6.0.
Instala la versión 420.0.0 o posterior de gcloud CLI. Para actualizar las herramientas de la CLI, ejecuta el comando gcloud components update. Para ver la versión que tienes instalada, puedes ejecutar el comando gcloud version.
Especifica el ajuste
operating_system
en el archivoapp.yaml
:runtime: aspnetcore env: flex runtime_config: operating_system: "ubuntu22"
También puedes especificar una versión del tiempo de ejecución incluyendo el ajuste
runtime_version
en el archivoapp.yaml
. De forma predeterminada, App Engine usa la última versión LTS de .NET disponible si no se especifica el ajusteruntime_version
. Por ejemplo, el archivoapp.yaml
tiene el siguiente aspecto al especificar .NET 8 en Ubuntu 22:runtime: aspnetcore env: flex runtime_config: runtime_version: "8" operating_system: "ubuntu22"
Versiones anteriores del entorno de ejecución
Para usar una versión específica del SDK de .NET, actualiza el archivo de tu proyecto. Para obtener más información, consulta Migrar de ASP.NET Core 3.1 a 6.0.
Si quieres usar GKE u otros hosts de Docker, debes crear un archivo Dockerfile que copie el código de tu aplicación e instale las dependencias. Para obtener más información, consulta Runtimes personalizados.
Para desplegar tu aplicación .NET, ejecuta los siguientes comandos desde el directorio raíz en el que se encuentra tu aplicación:
dotnet restore
dotnet publish -c Release
gcloud app deploy
Compatibilidad con otros entornos de ejecución de .NET
Si necesitas usar una versión de .NET que no sea compatible, puedes crear un runtime personalizado y seleccionar una imagen base válida con la versión de .NET que necesites.
Para obtener información sobre las imágenes base proporcionadas por Google o las imágenes base de Docker .NET, consulta el artículo Crear tiempos de ejecución personalizados.
Proxies HTTPS y de reenvío
App Engine finaliza la conexión HTTPS en el balanceador de carga y reenvía la solicitud a tu aplicación. Las aplicaciones pueden examinar X-Forwarded-Proto
para observar si el protocolo original era HTTP o HTTPS.
Algunas aplicaciones también necesitan determinar la dirección IP del usuario. Esta opción está disponible en el encabezado X-Forwarded-For
estándar.
Prolongar el tiempo de ejecución
El tiempo de ejecución de .NET del entorno flexible se puede usar para crear un tiempo de ejecución personalizado.
Los tiempos de ejecución personalizados se configuran mediante un Dockerfile
.
Puedes personalizar los Dockerfile
y .dockerignore
como quieras. Por último, tendrás que especificar runtime: custom
en lugar de runtime: aspnetcore
en app.yaml
. Consulta más información sobre cómo personalizar el entorno de ejecución de .NET.
Variables de entorno
El entorno de ejecución define las siguientes variables de entorno:
Variable de entorno | Descripción |
---|---|
GAE_INSTANCE |
Nombre de la instancia actual. |
GAE_MEMORY_MB |
Cantidad de memoria disponible para el proceso de la aplicación. |
GAE_SERVICE |
El nombre del servicio especificado en el archivo app.yaml
de tu aplicación o, si no se ha especificado ningún nombre de servicio, se define como default . |
GAE_VERSION |
Etiqueta de versión de la aplicación actual. |
GOOGLE_CLOUD_PROJECT |
El ID del proyecto asociado a tu aplicación, que se puede ver en la Google Cloud consola |
PORT |
Puerto que recibirá las solicitudes HTTP. |
Puedes definir variables de configuración adicionales con appsettings.json
.
Servidor de metadatos
Cada instancia de tu aplicación puede usar el servidor de metadatos de Compute Engine para consultar información sobre la instancia, como su nombre de host, su dirección IP externa, su ID de instancia, sus metadatos personalizados y la información de su cuenta de servicio. App Engine no te permite definir metadatos personalizados para cada instancia, pero puedes definir metadatos personalizados para todo el proyecto y leerlos desde tus instancias de App Engine y Compute Engine.
Esta función de ejemplo usa el servidor de metadatos para obtener la dirección IP externa de la instancia: