O ambiente de execução do .NET é a pilha de software responsável por instalar o código e as dependências do aplicativo e executá-lo no ambiente flexível.
Versões do .NET
O .NET 8 foi criado com buildpacks. Para ver a lista completa de versões compatíveis do .NET e a versão correspondente do Ubuntu, consulte a Programação de suporte ao ambiente de execução.
Para usar uma versão compatível do .NET, é preciso:
Atualize o arquivo do projeto com a versão do .NET que você quer 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 mais informações, consulte Migrar do ASP.NET Core 3.1 para o 6.0.
Instalar a versão da CLI gcloud 420.0.0 ou posterior do Google Analytics. Para atualizar as ferramentas da CLI, execute o comando gcloud components update. Para conferir a versão instalada, execute o comando gcloud version.
Especifique a configuração
operating_system
no arquivoapp.yaml
:runtime: aspnetcore env: flex runtime_config: operating_system: "ubuntu22"
Como alternativa, é possível especificar uma versão de ambiente de execução incluindo a configuração
runtime_version
emapp.yaml
. Por padrão, o App Engine usa a versão mais recente do LTS .NET disponível se a configuraçãoruntime_version
não for especificada. Por exemplo, o arquivoapp.yaml
é semelhante ao seguinte ao especificar .NET 8 no Ubuntu 22:runtime: aspnetcore env: flex runtime_config: runtime_version: "8" operating_system: "ubuntu22"
Versões anteriores do ambiente de execução
Para direcionar uma versão específica do SDK .NET, atualize o arquivo do projeto. Para mais informações, consulte Migrar do ASP.NET Core 3.1 para a versão 6.0.
Se você quiser usar o GKE ou outros hosts do Docker, precisará criar um Dockerfile que copie o código do aplicativo e instale as dependências. Para mais informações, consulte Ambientes de execução personalizados.
Para implantar seu aplicativo .NET, execute os seguintes comandos no diretório raiz em que o aplicativo reside:
dotnet restore
dotnet publish -c Release
gcloud app deploy
Compatibilidade com outros ambientes de execução .NET
Se você precisa usar uma versão do .NET que não é compatível, crie um ambiente de execução personalizado e selecione uma imagem de base válida com a versão .NET que você precisa.
Para imagens de base fornecidas pelo Google ou imagens de base do Docker .NET, consulte Como criar ambientes de execução personalizados.
HTTPS e proxies de encaminhamento
O App Engine encerra a conexão HTTPS no balanceador de carga e encaminha a solicitação ao aplicativo. Os aplicativos podem examinar o X-Forwarded-Proto
para saber se o protocolo original era HTTP ou HTTPS.
Alguns aplicativos também precisam averiguar o endereço IP do usuário. Isso está disponível no cabeçalho X-Forwarded-For
padrão.
Como ampliar o ambiente de execução
O ambiente flexível do ambiente de execução do .NET pode ser usado para criar um ambiente de execução personalizado.
Os ambientes de execução personalizados são configurados por meio de Dockerfile
.
É possível personalizar Dockerfile
e .dockerignore
conforme você quiser. Por fim, você precisará especificar runtime: custom
em vez de runtime: aspnetcore
em app.yaml
. Para saber mais informações, consulte Como personalizar o ambiente de execução do .NET.
Variáveis de ambiente
As variáveis de ambiente a seguir são definidas pelo ambiente do ambiente de execução:
Variável de ambiente | Descrição |
---|---|
GAE_INSTANCE |
O nome da instância atual. |
GAE_MEMORY_MB |
A quantidade de memória disponível para o processo do aplicativo. |
GAE_SERVICE |
O nome do serviço especificado no arquivo app.yaml
do aplicativo. Se nenhum nome de serviço for especificado, será definido como default . |
GAE_VERSION |
O rótulo da versão do aplicativo atual. |
GOOGLE_CLOUD_PROJECT |
O ID do projeto associado ao seu aplicativo, que fica visível no console do Google Cloud |
PORT |
A porta que receberá as solicitações HTTP. |
É possível definir outras variáveis de configuração com appsettings.json
.
Servidor de metadados
Cada instância do aplicativo pode usar o servidor de metadados do Compute Engine para consultar informações sobre a instância, incluindo o nome do host, o endereço IP externo, o código da instância, os metadados personalizados e as informações sobre a conta do serviço. Não é possível definir metadados personalizados para cada instância no App Engine. Em vez disso, defina metadados personalizados para todo o projeto e leia esses metadados a partir das instâncias do App Engine e do Compute Engine.
A função de exemplo abaixo usa o servidor de metadados para receber o endereço IP externo da instância: