Aplikasi yang berjalan dalam runtime standar Go 1.11 dapat menggunakan paket apa pun yang kompatibel dengan linux/amd64.
Menggunakan modul Go
Sebaiknya gunakanmodul Go untuk mengelola dependensi dalam aplikasi Go Anda, tetapi Anda dapat terus menggunakan mode GOPATH yang lebih lama jika belum siap untukbermigrasi 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.mod
modul Anda di dalam direktori yang sama dengan fileapp.yaml
Anda. 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 menemukanGO111MODULE
dan mencocokkan perilaku Go itu sendiri. App Engine hanya menerapkan setelan variabelGO111MODULE
jika Anda telah menyertakan filego.mod
untuk 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.mod
untuk 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 /myapp
Buat direktori yang berisi dependensi pribadi Anda:
mkdir private
Pastikan 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/foo
Update file
go.mod
Anda untuk menggunakan perintahreplace
agar dapat menggunakan direktoriprivate
untuk dependensi Anda:go mod edit -replace=private.example.com/foo=./private/private.example.com/foo
File
go.mod
Anda sekarang akan terlihat seperti:File
go.mod
akhirmodule private.example.com/myapp require private.example.com/foo v1.2.3 replace private.example.com/foo => ./private/private.example.com/foo
File
go.mod
aslimodule private.example.com/myapp require private.example.com/foo v1.2.3
Jangan mengubah cara Anda mengimpor dan menggunakan paket pribadi. Pernyataan
import
Anda akan terlihat seperti:import "private.example.com/foo"
Sertakan dependensi pribadi Anda dalam deployment dengan men-deploy aplikasi Anda:
gcloud app deploy