Menentukan dependensi di Go

Anda dapat menentukan dependensi fungsi Cloud Run dengan direktori Modul Go atau vendor.

Menentukan dependensi dengan modul Go

Untuk menentukan dependensi fungsi Cloud Run dengan Modul Go, Anda harus mencantumkannya dalam file go.mod. Saat Anda men-deploy fungsi, Go otomatis menggabungkan dependensi dalam file go.mod Anda.

Untuk membuat file go.mod, lihat Mengelola dependensi di Go.

Functions Framework adalah dependensi wajib untuk semua fungsi. Meskipun fungsi Cloud Run menginstalnya untuk Anda saat fungsi tersebut dibuat, sebaiknya sertakan sebagai dependensi eksplisit agar lebih jelas.

Jika fungsi Anda bergantung pada dependensi pribadi, sebaiknya cerminkan functions-framework ke registry pribadi Anda. Sertakan functions-framework yang diduplikasi sebagai dependensi ke fungsi Anda untuk menghindari penginstalan paket dari internet publik.

Menentukan dependensi dengan direktori vendor

Fungsi Cloud Run juga memungkinkan Anda menyertakan dependensi melalui direktori vendor. Menggunakan direktori vendor akan sangat membantu jika dependensi Anda tidak tersedia melalui pengelola dependensi, atau jika akses internet lingkungan fungsi Cloud Run Anda dibatasi.

Biasanya, direktori vendor dikelola dengan pengelola dependensi. Anda dapat menggunakan pengelola dependensi apa pun yang Anda suka. Misalnya, Anda dapat menggunakan fungsi Modul Go untuk membuat direktori vendor dari file go.mod Anda.

Anda harus menyertakan Functions Framework for Go di direktori vendor. Untuk melakukannya, gunakan toolchain Go:

  1. Tambahkan perintah berikut ke blok impor kode Go Anda:

    _ "github.com/GoogleCloudPlatform/functions-framework-go/funcframework"
    
  2. Perbarui file go.mod Anda untuk menyertakan paket yang baru diimpor:

    go mod tidy
    
  3. Buat direktori vendor menggunakan isi file go.mod Anda:

    go mod vendor
    

Go versi yang lebih lama dari 1.16

Untuk versi Go yang lebih lama dari 1.16, jika Anda memiliki file go.mod dan direktori vendor, direktori vendor akan diabaikan saat Anda men-deploy fungsi. Untuk memastikan bahwa direktori vendor Anda dipatuhi, gunakan file .gcloudignore agar file go.mod dan go.sum tidak diupload:

  1. Buat file .gcloudignore di root direktori project Anda dengan konten berikut:

    go.mod
    go.sum
    
    # Also ignore Git directories. Delete the following two lines if you want to
    # upload them.
    .git
    .gitignore
    

Menggunakan dependensi pribadi

Jika dependensi fungsi Anda dihosting di repositori yang tidak dapat diakses secara publik, Anda harus menggunakan direktori vendor untuk mengambil dependensi sebelum men-deploy fungsi Anda. Jika Anda berencana menggunakan file go.mod, lihat petunjuk di atas untuk menghindari potensi konflik antara file go.mod dan direktori vendor.