O ambiente de execução do .NET

Visão geral

O ambiente de execução do .NET é a pilha de software responsável por instalar o código do aplicativo e as dependências dele, além de executá-lo. O ambiente de execução flexível é declarado no arquivo app.yaml:

runtime: aspnetcore
env: flex

No ambiente flexível, os tempos de execução são criados por meio do Docker.

O Google Cloud Tools for Visual Studio cria um arquivo app.yaml e um Dockerfile no diretório de saída da versão, caso esses arquivos ainda não existam no projeto.

Se quiser usar o GKE ou outros hosts do Docker, você precisará criar um Dockerfile com base nessa imagem que copia o código do aplicativo e instala as dependências. Por exemplo:

FROM gcr.io/google-appengine/aspnetcore:2.1
COPY . /app
WORKDIR /app
EXPOSE 8080
ENV ASPNETCORE_URLS=http://*:8080
ENTRYPOINT ["dotnet", "Metadata.dll"]

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 X-Forwarded-Proto para observar 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 tempo de execução

O ambiente flexível do tempo de execução do .NET pode ser usado para criar um tempo de execução personalizado. Configure os tempos de execução personalizados por meio de um Dockerfile.

Personalize Dockerfile e .dockerignore como quiser. Por fim, você precisará especificar runtime: custom em vez de runtime: aspnetcore em app.yaml. Veja Como personalizar o tempo de execução do .NET para mais informações.

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, essa variável será configurada como default.
GAE_VERSION O marcador da versão do aplicativo atual.
GOOGLE_CLOUD_PROJECT O código do projeto associado ao aplicativo. Veja-o no Console do Google Cloud Platform.
PORT A porta que receberá as solicitações HTTP.

Defina mais 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 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:

var metadataClient = Google.Cloud.Metadata.V1.MetadataClient.Create();
var result = await metadataClient.GetMetadataAsync(
    "instance/network-interfaces/0/access-configs/0/external-ip");
return result.Content.ToString();
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente flexível do App Engine para documentos .NET