Runtime Go adalah stack software yang bertanggung jawab untuk menginstal kode aplikasi dan dependensi Anda, lalu menjalankan aplikasi tersebut di lingkungan fleksibel.
Versi Go
Go 1.27 menggunakan buildpack. Untuk mengetahui daftar lengkap versi Go yang didukung, dan versi Ubuntu yang sesuai, lihat Jadwal dukungan runtime.
Untuk menggunakan versi Go yang didukung yang didukung, Anda harus:
Menginstal
gcloud CLIversi 420.0.0 atau yang lebih baru. Anda dapat mengupdate alat CLI dengan menjalankangcloud components updateperintah. Untuk melihat versi yang diinstal, Anda dapat menjalankangcloud versionperintah.Go merekomendasikan agar Anda menggunakan file
go.moduntuk mengelola dependensi. Untuk menginstal dependensi selama deployment, sertakan filego.moddi folder yang sama dengan fileapp.yaml.Misalnya, struktur folder aplikasi Anda dengan
go.modharus menampilkan:<application-root>/ --> app.yaml --> go.mod --> Other source files used in your application.Sertakan setelan
runtime_configdanoperating_systemdalam fileapp.yamluntuk menentukan sistem operasi.Secara opsional, Anda dapat menentukan versi runtime dengan menyertakan setelan
runtime_versiondalamapp.yaml. Secara default, versi Go terbaru digunakan jika setelanruntime_versiontidak ditentukan.
Contoh
Untuk menentukan Go 1.27 di Ubuntu 24:
runtime: go env: flex runtime_config: operating_system: "ubuntu24" runtime_version: "1.27"Untuk menentukan versi Go terbaru yang didukung di Ubuntu 24:
runtime: go env: flex runtime_config: operating_system: "ubuntu24"
Aplikasi Anda menggunakan rilis stabil terbaru dari versi yang ditentukan di file app.yaml Anda. App Engine otomatis diupdate ke revisi patch baru, tetapi tidak akan otomatis mengupdate versi utama.
Misalnya, aplikasi Anda mungkin di-deploy di Go 1.18.10, dan nantinya mungkin otomatis diupdate ke Go 1.18.11, tetapi tidak akan otomatis diupdate ke versi utama Go 1.19.
Memilih Go 1.27 di file app.yaml akan menghasilkan versi patch Go 1.27 terbaru yang tersedia.
runtime: go
env: flex
runtime_config:
operating_system: "ubuntu24"
runtime_version: "1.27"
Lihat referensi app.yaml untuk mengetahui informasi selengkapnya.
Versi runtime sebelumnya
Untuk menggunakan Go versi 1.15 dan yang lebih lama, tentukan versi dalam
runtime setelan menggunakan format go1.x di file
app.yaml Anda. Contoh:
runtime: go1.14 env: flex
Jika tidak ada versi yang ditentukan, versi default go1.11 akan dipilih secara otomatis.
Aplikasi Anda menggunakan rilis stabil terbaru dari versi yang ditentukan di file app.yaml Anda. App Engine otomatis diupdate ke revisi patch baru, tetapi tidak akan otomatis mengupdate versi utama.
Misalnya, aplikasi Anda mungkin di-deploy di Go 1.14.10, dan nantinya mungkin otomatis diupdate ke Go 1.14.11, tetapi tidak akan otomatis diupdate ke versi utama Go 1.15.
Memilih versi runtime go go1.15 di file app.yaml akan menghasilkan versi 1.15 terbaru yang tersedia, misalnya, 1.15.15.
runtime: go1.15 env: flex
Dukungan untuk runtime Go lainnya
Jika Anda perlu menggunakan versi Go yang tidak didukung, Anda dapat membuat runtime kustom dan memilih image dasar yang valid dengan versi Go yang Anda butuhkan.
Untuk mengetahui image dasar yang disediakan Google atau image dasar Go Docker, lihat Membangun runtime kustom.
Mengimpor paket
Kode Anda dikompilasi saat Anda men-deploy aplikasi ke App Engine. Saat Anda menjalankan perintah deployment, dependensi aplikasi Anda akan dikumpulkan terlebih dahulu dari GOPATH lokal, lalu semua dependensi tersebut dikirim ke server build. Jika ada dependensi yang hilang, misalnya library pihak ketiga, akan terjadi kegagalan build.
Untuk menghindari kegagalan build dan memastikan bahwa semua dependensi aplikasi di-deploy dengan kode Anda, sebaiknya uji aplikasi Anda secara lokal sebelum men-deploy-nya.
Memperpanjang runtime
Untuk mengetahui petunjuk cara memperluas dan menyesuaikan runtime Go, baca builder runtime Go di GitHub.
Server metadata
Setiap instance aplikasi Anda dapat menggunakan server metadata Compute Engine untuk melakukan kueri informasi tentang instance, 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 singkat ini.
Gunakan
paket cloud.google.com/go/compute/metadata
untuk mengakses server metadata.