O tempo de execução do .NET é a pilha de software responsável por instalar o código e as dependências da sua aplicação e, em seguida, executar essa aplicação no ambiente flexível.
Versões do .NET
O .NET 8 é criado com buildpacks. Para ver a lista completa de versões do .NET suportadas e a respetiva versão do Ubuntu, consulte a Programação de suporte do tempo de execução.
Para usar uma versão suportada do .NET, tem de:
Atualize o ficheiro do projeto com a versão do .NET que 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 o artigo Migrar do ASP.NET Core 3.1 para o 6.0.
Instale a versão 420.0.0 ou posterior da CLI gcloud. Pode atualizar as ferramentas de CLI executando o comando gcloud components update. Para ver a versão instalada, pode executar o comando gcloud version.
Especifique a definição
operating_system
no ficheiroapp.yaml
:runtime: aspnetcore env: flex runtime_config: operating_system: "ubuntu22"
Opcionalmente, pode especificar uma versão do tempo de execução incluindo a definição
runtime_version
no ficheiroapp.yaml
. Por predefinição, o App Engine usa a versão LTS .NET mais recente disponível se a definiçãoruntime_version
não for especificada. Por exemplo, o ficheiroapp.yaml
tem o seguinte aspeto quando especifica o .NET 8 no Ubuntu 22:runtime: aspnetcore env: flex runtime_config: runtime_version: "8" operating_system: "ubuntu22"
Versões de tempo de execução anteriores
Para segmentar uma versão específica do SDK .NET, atualize o ficheiro do projeto. Para mais informações, consulte o artigo Migrar do ASP.NET Core 3.1 para o 6.0.
Se quiser usar o GKE ou outros anfitriões do Docker, tem de criar um Dockerfile que copie o código da sua aplicação e instale as dependências. Para mais informações, consulte o artigo Tempos de execução personalizados.
Para implementar a sua app .NET, execute os seguintes comandos a partir do diretório raiz onde a app reside:
dotnet restore
dotnet publish -c Release
gcloud app deploy
Suporte para outros tempos de execução .NET
Se precisar de usar uma versão do .NET que não seja suportada, pode criar um tempo de execução personalizado e selecionar uma imagem base válida com a versão do .NET de que precisa.
Para imagens base fornecidas pela Google ou imagens base do Docker .NET, consulte o artigo Criar tempos de execução personalizados.
HTTPS e proxies de encaminhamento
O App Engine termina a ligação HTTPS no balanceador de carga e encaminha o pedido para a sua aplicação. As aplicações podem examinar o X-Forwarded-Proto
para
observar se o protocolo original era HTTP ou HTTPS.
Algumas aplicações também precisam de determinar o endereço IP do utilizador. Esta opção está
disponível no cabeçalho X-Forwarded-For
padrão.
Prolongar o tempo de funcionamento
O tempo de execução .NET do ambiente flexível pode ser usado para criar um tempo de execução personalizado.
Os tempos de execução personalizados são configurados através de um Dockerfile
.
Pode personalizar os campos Dockerfile
e .dockerignore
conforme desejado. Por último, tem de especificar runtime: custom
em vez de runtime: aspnetcore
em app.yaml
. Consulte o artigo
Personalizar o tempo de execução do .NET
para mais informações.
Variáveis de ambiente
As seguintes variáveis de ambiente são definidas pelo ambiente de tempo 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 da aplicação. |
GAE_SERVICE |
O nome do serviço especificado no ficheiro app.yaml
da sua aplicação ou, se não for especificado nenhum nome do serviço, é definido como default . |
GAE_VERSION |
A etiqueta da versão da aplicação atual. |
GOOGLE_CLOUD_PROJECT |
O ID do projeto associado à sua aplicação, que é visível na Google Cloud consola |
PORT |
A porta que vai receber pedidos HTTP. |
Pode definir variáveis de configuração adicionais com appsettings.json
.
Servidor de metadados
Cada instância da sua aplicação pode usar o servidor de metadados do Compute Engine para consultar informações sobre a instância, incluindo o respetivo nome do anfitrião, endereço IP externo, ID da instância, metadados personalizados e informações da conta de serviço. O App Engine não lhe permite definir metadados personalizados para cada instância, mas pode definir metadados personalizados ao nível do projeto e lê-los a partir das suas instâncias do App Engine e Compute Engine.
Esta função de exemplo usa o servidor de metadados para obter o endereço IP externo da instância: