The .NET runtime is the software stack responsible for installing your
application code and its dependencies and running your application. The flexible
runtime is declared in your
runtime: aspnetcore env: flex
Runtimes in the flexible environment are built using Docker.
Google Cloud Tools for Visual Studio
app.yaml file and a Dockerfile in the build output directory if
these files don't already exist in your project.
If you want to use GKE or other Docker hosts, you need to create a Dockerfile based on this image that copies your application code and installs dependencies. For example:
FROM gcr.io/google-appengine/aspnetcore:2.1 COPY . /app WORKDIR /app EXPOSE 8080 ENV ASPNETCORE_URLS=http://*:8080 ENTRYPOINT ["dotnet", "Metadata.dll"]
HTTPS and forwarding proxies
App Engine terminates the HTTPS connection at the load balancer and forwards the
request to your application. Applications can examine the
observe whether the original protocol was HTTP or HTTPS.
Some applications also need to ascertain the user's IP address. This is
available in the standard
Extending the runtime
The flexible environment .NET runtime can be used to create a custom runtime.
Custom runtimes are configured via a
You can customize the
.dockerignore as desired. Finally,
you will need to specify
runtime: custom instead of
runtime: aspnetcore in
Customizing the .NET Runtime
for more information.
The following environment variables are set by the runtime environment:
||The name of the current instance.|
||The amount of memory available to the application process.|
||The service name specified in your application's
||The version label of the current application.|
||The Project ID associated with your application, which is visible in the Google Cloud console|
||The port that will receive HTTP requests.|
You can set additional configuration variables with
Each instance of your application can use the Compute Engine metadata server to query information about the instance, including its host name, external IP address, instance ID, custom metadata, and service account information. App Engine does not allow you to set custom metadata for each instance, but you can set project-wide custom metadata and read it from your App Engine and Compute Engine instances.
This example function uses the metadata server to get the external IP address of the instance:
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();