Aplikasi yang berjalan dalam runtime standar Go 1.11 dapat menggunakan paket apa pun yang kompatibel dengan linux/amd64.
Menggunakan modul Go
Sebaiknya gunakan modul Go untuk mengelola dependensi dalam aplikasi Go Anda, tetapi Anda dapat terus menggunakan mode GOPATH yang lebih lama jika belum siap untuk bermigrasi ke modul Go.
Saat Anda men-deploy aplikasi, App Engine menggunakan perintah go build untuk
membangun aplikasi sehingga sesuai dengan perilaku Go itu sendiri. Untuk memastikan bahwa
aplikasi Anda menggunakan mode sadar modul, lakukan hal-hal berikut di lingkungan
pengembangan:
Buat file
go.modmodul Anda di dalam direktori yang sama dengan fileapp.yamlAnda. App Engine menelusuri direktori saat ini, lalu beberapa direktori induk berurutan hingga menemukan filego.mod.Jika App Engine tidak menemukan file
go.mod, maka App Engine akan mengikuti mode GOPATH.Jika Anda menyetel variabel lingkungan
GO111MODULE, pastikan nilai variabel mengaktifkan mode sadar modul. Saat Anda men-deploy aplikasi, App Engine akan memeriksa lingkungan Anda untuk menemukanGO111MODULEdan mencocokkan perilaku Go itu sendiri. App Engine hanya menerapkan setelan variabelGO111MODULEjika Anda telah menyertakan filego.moduntuk aplikasi Anda.
- Jangan tempatkan direktori aplikasi Anda di dalam atau di bawah
$GOPATH/src. Jika aplikasi Anda berada di mana saja dalam hierarki direktori$GOPATH/src, App Engine akan mengikuti mode GOPATH meskipun Anda telah menentukan filego.moduntuk aplikasi Anda.
Menggunakan dependensi pribadi
App Engine tidak dapat mendownload dependensi pribadi Anda selama proses build, sehingga Anda harus menyertakannya bersama kode aplikasi setelah deployment.
Anda harus menggunakan perintah replace dalam file go.mod untuk mendeklarasikan
dependensi pribadi. Contoh berikut mengasumsikan bahwa aplikasi Anda berada di direktori
/myapp/:
Ubah ke direktori aplikasi Anda:
cd /myappBuat direktori yang berisi dependensi pribadi Anda:
mkdir privatePastikan dependensi pribadi Anda berada di direktori
private. Salah satu pendekatannya adalah dengan membuat symlink:mkdir private/private.example.com ln -s /path/to/private.example.com/foo private/private.example.com/fooUpdate file
go.modAnda untuk menggunakan perintahreplaceagar dapat menggunakan direktoriprivateuntuk dependensi Anda:go mod edit -replace=private.example.com/foo=./private/private.example.com/fooFile
go.modAnda sekarang akan terlihat seperti:File
go.modakhirmodule private.example.com/myapp require private.example.com/foo v1.2.3 replace private.example.com/foo => ./private/private.example.com/fooFile
go.modaslimodule private.example.com/myapp require private.example.com/foo v1.2.3Jangan mengubah cara Anda mengimpor dan menggunakan paket pribadi. Pernyataan
importAnda akan terlihat seperti:import "private.example.com/foo"Sertakan dependensi pribadi Anda dalam deployment dengan men-deploy aplikasi Anda:
gcloud app deploy