El entorno de ejecución de .NET es la pila de software encargada de instalar el código y las dependencias de tu aplicación para luego ejecutarla en el entorno flexible.
Versiones de .NET
.NET 8 se compila con paquetes de compilación. Para obtener la lista completa de las versiones de .NET compatibles y su versión de Ubuntu correspondiente, consulta el programa de asistencia del entorno de ejecución.
Para usar una versión de .NET compatible, debes hacer lo siguiente:
Actualiza el archivo de proyecto con la versión de .NET que deseas 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 Migra de ASP.NET Core 3.1 a 6.0.
Instala la versión 420.0.0 o posterior de gcloud CLI Puedes actualizar las herramientas de la CLI si ejecutas el comando gcloud components update. Para ver la versión instalada, puedes ejecutar el comando gcloud version.
Especifica la configuración
operating_system
en el archivoapp.yaml
:runtime: aspnetcore env: flex runtime_config: operating_system: "ubuntu22"
Opcional: Puedes especificar una versión del entorno de ejecución si incluyes la configuración
runtime_version
en tu archivoapp.yaml
. De forma predeterminada, App Engine usa la última versión .NET de LTS disponible si no se especifica la configuración deruntime_version
. Por ejemplo, el archivoapp.yaml
se ve de la siguiente manera cuando se especifica .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 orientar una versión específica del SDK de .NET, actualiza el archivo de proyecto. Para obtener más información, consulta Migra de ASP.NET Core 3.1 a 6.0.
Si deseas utilizar GKE, así como otros hosts de Docker, necesitas crear un Dockerfile que copie el código de la aplicación y también instale las dependencias. Para obtener más información, consulta Entornos de ejecución personalizados.
Para implementar la aplicación de .NET, ejecuta los siguientes comandos desde el directorio raíz en el que se encuentra la 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 es compatible, puedes crear un entorno de ejecución personalizado y seleccionar una imagen base válida con el versión de NET que necesitas.
Para las imágenes base que proporciona Google o las imágenes base .NET de Docker, consulta Compila entornos de ejecución personalizados.
Proxies HTTPS y de reenvío
App Engine finaliza la conexión HTTPS en el balanceador de cargas y reenvía la solicitud a la aplicación. Las aplicaciones pueden examinar el X-Forwarded-Proto
para ver si el protocolo original era HTTP o HTTPS.
Algunas aplicaciones también necesitan verificar la dirección IP del usuario. Esta está disponible en el encabezado estándar X-Forwarded-For
.
Extiende el tiempo de ejecución
El tiempo de ejecución del entorno flexible .NET puede usarse para crear un tiempo de ejecución personalizado.
Los entornos de ejecución personalizados se configuran mediante un Dockerfile
.
Luego, puedes personalizar el Dockerfile
y el .dockerignore
como desees. Por último, deberás especificar runtime: custom
en lugar de runtime: aspnetcore
en app.yaml
. Para obtener más información, consulta la sección Cómo personalizar el tiempo de ejecución de .NET.
Variables de entorno
Las siguientes variables del entorno se configuran mediante el entorno de ejecución:
Variable de entorno | Descripción |
---|---|
GAE_INSTANCE |
El nombre de la instancia actual. |
GAE_MEMORY_MB |
La cantidad de memoria disponible para el proceso de la aplicación. |
GAE_SERVICE |
El nombre del servicio especificado en el archivo app.yaml de la aplicación; si no se especifica ningún nombre, se configura como default . |
GAE_VERSION |
La etiqueta de versión de la aplicación actual. |
GOOGLE_CLOUD_PROJECT |
El ID del proyecto asociado con la aplicación, que se puede ver en la consola de Google Cloud. |
PORT |
El puerto que recibirá las solicitudes HTTP. |
Puedes definir variables de entorno adicionales con appsettings.json
.
Servidor de metadatos
Cada instancia de la aplicación puede usar el servidor de metadatos de Compute Engine para consultar la información acerca de la instancia, incluido su nombre del host, dirección IP externa, ID de la instancia, metadatos personalizados y la información de la cuenta de servicio. App Engine no permite definir metadatos personalizados para cada instancia, pero puedes definir los metadatos personalizados de 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: