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.23 (pratinjau) menggunakan buildpack. Untuk daftar lengkap versi Go yang didukung, dan versi Ubuntu yang sesuai, lihat Jadwal dukungan runtime.
Untuk menggunakan versi Go yang didukung, Anda harus:
Instal
gcloud CLI
versi 420.0.0 atau yang lebih baru. Anda dapat memperbarui alat CLI dengan menjalankan perintahgcloud components update
. Untuk melihat versi yang diinstal, Anda dapat menjalankan perintahgcloud version
.Go merekomendasikan agar Anda menggunakan file
go.mod
untuk mengelola dependensi. Untuk menginstal dependensi selama deployment, sertakan filego.mod
di folder yang sama dengan fileapp.yaml
.Misalnya, struktur folder aplikasi Anda dengan
go.mod
harus menampilkan:<application-root>/ --> app.yaml --> go.mod --> Other source files used in your application.
Sertakan setelan
runtime_config
danoperating_system
dalam fileapp.yaml
untuk menentukan sistem operasi.Secara opsional, Anda dapat menentukan versi runtime dengan menyertakan setelan
runtime_version
dalamapp.yaml
. Secara default, versi Go terbaru digunakan jika setelanruntime_version
tidak ditentukan.
Contoh
Untuk menentukan Go 1.23 (pratinjau) di Ubuntu 22:
runtime: go env: flex runtime_config: operating_system: "ubuntu22" runtime_version: "1.23"
Untuk menentukan versi Go terbaru yang didukung di Ubuntu 22:
runtime: go env: flex runtime_config: operating_system: "ubuntu22"
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 kemudian mungkin otomatis diupdate ke Go 1.18.11, tetapi tidak akan otomatis diupdate ke versi utama Go 1.19.
Memilih Go 1.23 (pratinjau) dalam file app.yaml
akan menghasilkan
Go 1.23 (pratinjau) versi patch
terbaru yang tersedia.
runtime: go
env: flex
runtime_config:
operating_system: "ubuntu22"
runtime_version: "1.23"
Lihat referensi app.yaml
untuk informasi selengkapnya.
Versi runtime sebelumnya
Untuk menggunakan Go versi 1.15 dan yang lebih lama, tentukan versi dalam
setelan runtime
menggunakan format go1.x
dalam
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 kemudian 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
dalam file app.yaml
akan menghasilkan
versi terbaru 1.15 yang tersedia, misalnya, 1.15.15.
runtime: go1.15 env: flex
Dukungan untuk runtime Go lainnya
Jika 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 image dasar yang disediakan Google atau image dasar Docker Go, lihat Mem-build 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.