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_systemno 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_versionno ficheiroapp.yaml. Por predefinição, o App Engine usa a versão LTS .NET mais recente disponível se a definiçãoruntime_versionnão for especificada. Por exemplo, o ficheiroapp.yamltem 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: