Runtime .NET adalah stack software yang bertanggung jawab untuk menginstal kode aplikasi dan dependensi Anda, lalu menjalankan aplikasi tersebut di lingkungan yang fleksibel.
.NET versi 6 dan yang lebih baru dibuat menggunakan
buildpack, yang mengharuskan Anda memilih
sistem operasi di file app.yaml
. Misalnya, untuk menggunakan
.NET 8, Anda harus menentukan
Ubuntu 22 sebagai sistem operasi.
Untuk daftar lengkap versi .NET yang didukung, dan versi Ubuntu yang sesuai, lihat Jadwal dukungan runtime.
Memilih versi .NET
Versi runtime baru
Untuk .NET versi 6 dan yang lebih baru, Anda harus menyertakan
setelan runtime_config
dan operating_system
dalam
file app.yaml
untuk menentukan sistem operasi.
Untuk menggunakan versi baru, Anda harus:
Memperbarui file project Anda.
<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 file app.yaml
. Secara default, App Engine menggunakan versi LTS .NET terbaru yang tersedia jika setelan runtime_version
tidak ditentukan.
Misalnya, file app.yaml
akan terlihat seperti berikut saat menetapkan .NET8 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.
Men-deploy aplikasi App Engine Anda
Untuk men-deploy aplikasi .NET:
Jalankan perintah berikut dari direktori utama tempat aplikasi Anda berada:
v6 dan yang lebih baru
gcloud app deploy
v3.1 dan versi sebelumnya
dotnet restore
dotnet publish -c Release
gcloud app deploy
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: