Runtime .NET adalah stack software yang bertanggung jawab untuk menginstal kode aplikasi dan dependensi Anda, lalu menjalankan aplikasi tersebut di lingkungan yang fleksibel.
Versi .NET
.NET 8 dibuat menggunakan buildpacks. Untuk mengetahui daftar lengkap versi .NET yang didukung, dan versi Ubuntu yang sesuai, lihat Jadwal dukungan runtime.
Untuk menggunakan versi .NET yang didukung, Anda harus:
Update file project Anda dengan versi .NET yang ingin Anda gunakan.
<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>
Untuk informasi selengkapnya, lihat Bermigrasi dari ASP.NET Core 3.1 ke 6.0.
Menginstal gcloud CLI versi 420.0.0 atau yang lebih baru. Anda dapat mengupdate alat CLI dengan menjalankan perintah gcloud components update. Untuk melihat versi yang diinstal, Anda dapat menjalankan perintah gcloud version.
Menentukan setelan
operating_system
di fileapp.yaml
Anda:runtime: aspnetcore env: flex runtime_config: operating_system: "ubuntu22"
Secara opsional, Anda dapat menentukan versi runtime dengan menyertakan setelan
runtime_version
dalam fileapp.yaml
. Secara default, App Engine menggunakan versi .NET LTS terbaru yang tersedia jika setelanruntime_version
tidak ditentukan. Misalnya, fileapp.yaml
terlihat seperti berikut saat menentukan .NET 8 di Ubuntu 22:runtime: aspnetcore env: flex runtime_config: runtime_version: "8" operating_system: "ubuntu22"
Versi runtime sebelumnya
Untuk menarget versi .NET SDK tertentu, update file project Anda. Untuk informasi selengkapnya, lihat Bermigrasi dari ASP.NET Core 3.1 ke 6.0.
Jika ingin menggunakan GKE atau host Docker lainnya, Anda harus membuat Dockerfile yang menyalin kode aplikasi dan dependensi penginstalan Anda. Untuk informasi selengkapnya, lihat Runtime Kustom.
Untuk men-deploy aplikasi .NET, jalankan perintah berikut dari direktori root tempat aplikasi Anda berada:
dotnet restore
dotnet publish -c Release
gcloud app deploy
Dukungan untuk runtime .NET lainnya
Jika perlu menggunakan versi .NET yang tidak didukung, Anda dapat membuat runtime kustom dan memilih image dasar yang valid dengan versi .NET yang Anda butuhkan.
Untuk image dasar yang disediakan Google atau image dasar .NET Docker, lihat Mem-build runtime kustom.
HTTPS dan proxy penerusan
App Engine menghentikan koneksi HTTPS di load balancer dan meneruskan permintaan ke aplikasi Anda. Aplikasi dapat memeriksa X-Forwarded-Proto
untuk
mengamati apakah protokol aslinya adalah HTTP atau HTTPS.
Beberapa aplikasi juga perlu memastikan alamat IP pengguna. Ini tersedia di header X-Forwarded-For
standar.
Memperpanjang runtime
Runtime .NET lingkungan fleksibel dapat digunakan untuk membuat runtime kustom.
Runtime kustom dikonfigurasi melalui Dockerfile
.
Anda dapat menyesuaikan Dockerfile
dan .dockerignore
sesuai keinginan. Terakhir,
Anda harus menentukan runtime: custom
, bukan runtime: aspnetcore
di
app.yaml
. Lihat
Menyesuaikan Runtime .NET
untuk informasi selengkapnya.
Variabel lingkungan
Variabel lingkungan berikut ditetapkan oleh lingkungan runtime:
Variabel lingkungan | Deskripsi |
---|---|
GAE_INSTANCE |
Nama instance saat ini. |
GAE_MEMORY_MB |
Jumlah memori yang tersedia untuk proses aplikasi. |
GAE_SERVICE |
Nama layanan yang ditentukan dalam file app.yaml aplikasi Anda, atau jika tidak ada nama layanan yang ditentukan, nama akan ditetapkan ke default . |
GAE_VERSION |
Label versi aplikasi saat ini. |
GOOGLE_CLOUD_PROJECT |
Project ID yang terkait dengan aplikasi Anda, yang terlihat di konsol Google Cloud |
PORT |
Port yang akan menerima permintaan HTTP. |
Anda dapat menetapkan variabel konfigurasi tambahan dengan appsettings.json
.
Server metadata
Setiap instance aplikasi Anda dapat menggunakan server metadata Compute Engine untuk mengkueri informasi tentang instance ini, termasuk nama host, alamat IP eksternal, ID instance, metadata kustom, dan informasi akun layanan. Dengan App Engine, Anda tidak dapat menetapkan metadata kustom untuk setiap instance, tetapi Anda dapat menetapkan metadata kustom tingkat project serta membacanya dari instance App Engine dan Compute Engine Anda.
Fungsi contoh ini menggunakan server metadata untuk mendapatkan alamat IP eksternal instance: