Mengonfigurasi variabel lingkungan (generasi ke-1)
Anda dapat men-deploy key-value pair arbitrer bersama dengan fungsi Cloud Run. Pasangan ini tersedia untuk fungsi Anda baik sebagai variabel lingkungan literal, yang dapat diakses oleh kode Anda pada waktu proses, atau sebagai informasi konfigurasi untuk buildpack Google Cloud.
Variabel lingkungan terikat pada fungsi tunggal dan tidak terlihat oleh fungsi lain dalam project Google Cloud Anda. Setiap variabel disimpan di Backend fungsi Cloud Run dan berada dalam siklus proses yang sama dengan fungsi tersebut tempat mereka terikat.
Anda dapat menambahkan atau menghapus variabel lingkungan runtime menggunakan Google Cloud CLI atau Google Cloud Console.
Menetapkan variabel lingkungan runtime
Gunakan metode ini untuk menetapkan variabel baru atau mengganti sepenuhnya variabel yang ada. Untuk membuat perubahan aditif, gunakan proses update yang dijelaskan di bagian berikutnya.
gcloud
Untuk menetapkan variabel lingkungan runtime menggunakan Google Cloud CLI, gunakan flag --set-env-vars
pada waktu deployment:
gcloud functions deploy FUNCTION_NAME --set-env-vars FOO=bar FLAGS ...
Anda juga dapat menetapkan beberapa variabel lingkungan runtime menggunakan daftar yang dipisahkan koma:
gcloud functions deploy FUNCTION_NAME --set-env-vars FOO=bar,BAZ=boo FLAGS...
Jika ingin menyimpan konfigurasi dalam file (misalnya di bawah kontrol sumber), Anda dapat menggunakan file YAML dengan flag --env-vars-file
:
gcloud functions deploy FUNCTION_NAME --env-vars-file .env.yaml FLAGS...
dengan isi file .env.yaml
adalah:
FOO: bar
BAZ: boo
Pada contoh di atas, FLAGS...
merujuk pada opsi lain yang Anda teruskan selama men-deploy fungsi Anda. Untuk referensi lengkap perintah deploy
, lihat gcloud functions deploy
.
UI Google Cloud Console
Anda dapat menetapkan variabel lingkungan runtime selama pembuatan fungsi di Google Cloud Console:
Buka halaman Ringkasan Fungsi di Google Cloud Console:
Klik Create function.
Lengkapi kolom wajib isi untuk fungsi Anda.
Buka bagian Setelan runtime, build, dan koneksi.
Pilih tab Runtime.
Di bagian Variabel lingkungan runtime, klik Tambahkan variabel, lalu tambahkan nama dan nilai.
Untuk petunjuk cara menambahkan variabel lingkungan ke fungsi yang sudah ada, lihat Memperbarui variabel lingkungan runtime.
Mengupdate variabel lingkungan runtime
Anda juga dapat memperbarui variabel lingkungan runtime untuk fungsi yang ada. Ini adalah pendekatan non-destruktif yang mengubah atau menambahkan variabel lingkungan runtime, tetapi tidak menghapusnya.
gcloud
Untuk memperbarui variabel menggunakan Google Cloud CLI, gunakan flag --update-env-vars
pada waktu deployment:
gcloud functions deploy FUNCTION_NAME --update-env-vars FOO=bar
Anda juga dapat memperbarui beberapa variabel lingkungan runtime menggunakan daftar yang dipisahkan koma:
gcloud functions deploy FUNCTION_NAME --update-env-vars FOO=bar,BAZ=boo
UI Konsol Google Cloud
Untuk memperbarui variabel lingkungan runtime menggunakan Google Cloud Console:
Buka halaman Ringkasan Fungsi di Google Cloud Console:
Klik fungsi yang ada untuk membuka halaman detailnya.
Klik Edit.
Buka bagian Setelan runtime, build, dan koneksi.
Pilih tab Runtime.
Lakukan pengeditan di bagian Variabel lingkungan runtime.
Menghapus variabel lingkungan runtime
gcloud
Jika ingin menghapus variabel lingkungan runtime secara selektif, Anda dapat menggunakan flag --remove-env-vars
pada waktu deployment:
gcloud functions deploy FUNCTION_NAME --remove-env-vars FOO,BAZ
Atau, Anda dapat menghapus semua variabel lingkungan runtime yang ditetapkan sebelumnya dengan flag --clear-env-vars
:
gcloud functions deploy FUNCTION_NAME --clear-env-vars
UI Konsol Google Cloud
Untuk menghapus variabel lingkungan runtime menggunakan Google Cloud Console:
Buka halaman Ringkasan Fungsi di Google Cloud Console:
Klik fungsi yang ada untuk membuka halaman detailnya.
Klik Edit.
Buka bagian Setelan runtime, build, dan koneksi.
Pilih tab Runtime.
Di bagian Variabel lingkungan runtime, klik ikon sampah di samping key-value pair untuk menghapusnya.
Variabel lingkungan runtime ditetapkan secara otomatis
Bagian ini mencantumkan variabel lingkungan runtime yang ditetapkan secara otomatis.
Kunci | Deskripsi |
---|---|
FUNCTION_TARGET |
Dicadangkan: Fungsi yang akan dieksekusi. |
FUNCTION_SIGNATURE_TYPE |
Dicadangkan: Jenis fungsi: http untuk fungsi HTTP, dan event untuk fungsi berbasis peristiwa.
|
K_SERVICE |
Dicadangkan: Nama resource fungsi. |
K_REVISION |
Dicadangkan: ID versi fungsi. |
PORT |
Dicadangkan: Port tempat fungsi dipanggil. |
gcloud functions deploy envVarMemory \
--runtime nodejs10 \
--set-env-vars FUNCTION_MEMORY_MB=2Gi \
--memory 2Gi \
--trigger-http
Menetapkan dan mengambil variabel lingkungan runtime: sebuah contoh
Tetapkan variabel lingkungan runtime:
Node.js
gcloud functions deploy envVar \ --runtime nodejs20 \ --set-env-vars FOO=bar \ --trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime dari versi Node.js yang didukung untuk menjalankan fungsi Anda.
Python
gcloud functions deploy env_vars \ --runtime python312 \ --set-env-vars FOO=bar \ --trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime
versi Python yang didukung untuk menjalankan
fungsi Anda.
Go
gcloud functions deploy EnvVar \ --runtime go121 \ --set-env-vars FOO=bar \ --trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime versi Go yang didukung untuk menjalankan fungsi Anda.
Java
gcloud functions deploy java-envVar-function \ --entry-point functions.EnvVars \ --runtime java17 \ --memory 512MB \ --set-env-vars FOO=bar \ --trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime
versi Java yang didukung guna menjalankan
fungsi Anda.
C#
gcloud functions deploy csharp-envVar-function \ --entry-point EnvironmentVariables.Function \ --runtime dotnet6 \ --set-env-vars FOO=bar \ --trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime
versi .NET yang didukung guna menjalankan
fungsi Anda.
Ruby
gcloud functions deploy env_vars --runtime ruby32 \ --set-env-vars FOO=bar \ --trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime
versi Ruby yang didukung untuk menjalankan
fungsi Anda.
PHP
gcloud functions deploy envVar --runtime php82 \ --set-env-vars FOO=bar \ --trigger-http
Gunakan tanda --runtime
untuk menentukan ID runtime
versi PHP yang didukung untuk menjalankan
fungsi Anda.
Saat runtime, gakses variabel secara terprogram:
Node.js
Di Node.js, gunakan properti process.env
untuk mengakses variabel lingkungan runtime:
Python
Di Python, gunakan os.environ
untuk mengakses variabel lingkungan runtime:
Go
Di Go, gunakan os.Getenv()
untuk mengakses variabel lingkungan runtime:
Java
Di Java, gunakan System.getenv
untuk mengakses variabel lingkungan runtime:
C#
Saat runtime, variabel lingkungan dapat diakses menggunakanEnvironment.GetEnvironmentVariable
di C#:
Ruby
Saat runtime, variabel lingkungan dapat diakses menggunakanENV
di Ruby:
PHP
Saat runtime, variabel lingkungan dapat diakses menggunakan fungsigetenv
PHP:
Menggunakan variabel lingkungan build
Anda juga dapat menetapkan variabel lingkungan build untuk runtime yang mendukung buildpack.
Variabel lingkungan build adalah key-value pair yang di-deploy bersama fungsi yang memungkinkan Anda meneruskan informasi konfigurasi ke buildpack. Misalnya, Anda mungkin ingin menyesuaikan opsi compiler. Anda dapat menambahkan atau menghapus variabel lingkungan build ini menggunakan Google Cloud CLI atau UI Google Cloud Console.
Menetapkan variabel lingkungan build
Gunakan metode ini untuk menetapkan variabel baru atau mengganti sepenuhnya variabel yang ada. Untuk membuat perubahan tambahan, gunakan proses update (flag
--update-build-env-vars
di gcloud
) yang dijelaskan di bagian berikutnya.
gcloud
Untuk menetapkan variabel menggunakan Google Cloud CLI, gunakan flag --set-build-env-vars
pada waktu deployment:
gcloud beta functions deploy FUNCTION_NAME --set-build-env-vars FOO=bar FLAGS...
Anda juga dapat menetapkan beberapa variabel lingkungan build menggunakan daftar yang dipisahkan koma:
gcloud functions deploy FUNCTION_NAME --set-build-env-vars FOO=bar,BAZ=boo FLAGS...
Jika ingin menyimpan konfigurasi dalam file (misalnya di bawah kontrol sumber), Anda dapat menggunakan file YAML dengan flag --build-env-vars-file
:
gcloud functions deploy FUNCTION_NAME --build-env-vars-file FILE_NAME.yaml FLAGS...
dengan isi file *.yaml
adalah:
FOO: bar
BAZ: boo
Pada contoh di atas, FLAGS...
merujuk pada opsi lain yang Anda teruskan selama men-deploy fungsi Anda. Untuk referensi lengkap perintah deploy
, lihat gcloud beta functions deploy
.
UI Konsol Google Cloud
Anda juga dapat menetapkan variabel lingkungan build selama pembuatan fungsi di Google Cloud Console:
Buka halaman Ringkasan Fungsi di Google Cloud Console:
Klik Create function.
Lengkapi kolom wajib isi untuk fungsi Anda.
Buka bagian Setelan runtime, build, dan koneksi.
Pilih tab Build.
Di bagian Variabel lingkungan build, klik Tambahkan variabel, lalu tambahkan nama dan nilai.
Mengupdate variabel lingkungan build
Anda juga dapat mengupdate variabel lingkungan build untuk fungsi yang ada. Ini adalah pendekatan non-destruktif yang mengubah atau menambahkan variabel lingkungan build, tetapi tidak menghapusnya.
gcloud
Untuk menetapkan variabel menggunakan Google Cloud CLI, gunakan flag --update-build-env-vars
pada waktu deployment:
gcloud functions deploy FUNCTION_NAME --update-build-env-vars FOO=bar
Anda juga bisa mengupdate beberapa variabel lingkungan build menggunakan daftar yang dipisahkan koma:
gcloud functions deploy FUNCTION_NAME --update-build-env-vars FOO=bar,BAZ=boo
UI Konsol Google Cloud
Untuk memperbarui variabel lingkungan build menggunakan Google Cloud Console:
Buka halaman Ringkasan Fungsi di Google Cloud Console:
Klik fungsi yang ada untuk membuka halaman detailnya.
Klik Edit.
Buka bagian Setelan runtime, build, dan koneksi.
Pilih tab Build.
Lakukan pengeditan di bagian Variabel lingkungan build.
Menghapus variabel lingkungan build
gcloud
Jika ingin menghapus variabel lingkungan build secara selektif, Anda dapat menggunakan flag --remove-build-env-vars
pada waktu deployment:
gcloud functions deploy FUNCTION_NAME --remove-build-env-vars FOO,BAZ
Atau, Anda dapat menghapus semua variabel lingkungan build yang ditetapkan sebelumnya dengan flag --clear-build-env-vars
:
gcloud functions deploy FUNCTION_NAME --clear-build-env-vars
UI Konsol Google Cloud
Untuk menghapus variabel lingkungan build menggunakan Google Cloud Console:
Buka halaman Ringkasan Fungsi di Google Cloud Console:
Klik fungsi yang ada untuk membuka halaman detailnya.
Klik Edit.
Buka bagian Setelan runtime, build, dan koneksi.
Pilih tab Build.
Di bagian Variabel lingkungan build, klik ikon sampah di samping key-value pair untuk menghapusnya.
Siklus proses variabel
Semua variabel lingkungan terikat pada deployment fungsi Cloud Run, dan dapat hanya dapat ditetapkan atau diubah dengan deployment. Jika deployment gagal karena suatu alasan, perubahan apa pun pada variabel lingkungan tidak akan diterapkan. Perubahan variabel lingkungan memerlukan deployment yang berhasil.
Praktik terbaik dan variabel lingkungan yang dicadangkan
Beberapa variabel lingkungan tambahan ditetapkan secara otomatis bergantung pada runtime yang digunakan fungsi Anda. Hal ini didasarkan pada sistem operasi
runtime (misalnya, DEBIAN_FRONTEND
, SHLVL
, atau PATH
) dan runtime bahasa
(misalnya, NODE_ENV
, VIRTUAL_ENV
, atauGOPATH
).
Variabel lingkungan yang disediakan oleh lingkungan (selain yang tercantum dalam Variabel lingkungan disetel secara otomatis) dapat berubah pada versi runtime mendatang. Sebagai praktik terbaik, sebaiknya Anda tidak bergantung pada atau mengubah variabel lingkungan yang belum ditetapkan secara eksplisit.
Mengubah variabel lingkungan yang disediakan oleh lingkungan dapat menyebabkan hasil yang tidak dapat diprediksi. Upaya untuk mengubah variabel lingkungan tersebut dapat diblokir atau, lebih buruk lagi, menyebabkan konsekuensi yang tidak diinginkan seperti fungsi yang tidak dapat dimulai. Sebagai praktik terbaik, pertimbangkan untuk memberi awalan pada variabel lingkungan apa pun dengan kunci unik untuk menghindari konflik.
Terakhir, Anda tidak dapat menggunakan variabel lingkungan berikut:
Kunci | Deskripsi |
---|---|
Kosong ('') | Kunci tidak boleh berupa string kosong. |
= |
Kunci tidak boleh berisi karakter '='. |
X_GOOGLE_ |
Kunci tidak boleh berisi awalan X_GOOGLE_ . |
Batas ukuran
Jumlah total byte yang digunakan oleh nama dan nilai variabel lingkungan runtime untuk setiap fungsi dibatasi hingga 32 KiB. Tidak ada batasan khusus untuk setiap kunci atau nilai dalam kapasitas keseluruhan ini.
Untuk variabel lingkungan build, maksimal 100 variabel dapat ditentukan, dengan string definisi foo=bar
dibatasi hingga 64KiB.
Mengelola secret
Variabel lingkungan dapat digunakan untuk konfigurasi fungsi, tetapi tidak direkomendasikan sebagai cara untuk menyimpan rahasia seperti kredensial database atau kunci API. Nilai yang lebih sensitif ini harus disimpan di luar kode sumber dan di luar variabel lingkungan. Beberapa lingkungan eksekusi atau penggunaan beberapa framework dapat mengakibatkan isi variabel lingkungan dikirim ke log, dan penyimpanan kredensial sensitif dalam file YAML, skrip deployment, atau di bawah kontrol sumber tidak direkomendasikan.
Untuk menyimpan secret, sebaiknya Anda menggunakan Secret Manager. Untuk mengonfigurasi fungsi Cloud Run guna mengakses secret yang disimpan di Secret Manager, lihat Mengonfigurasi secret. Perhatikan bahwa tidak ada integrasi khusus fungsi Cloud Run dengan Cloud KMS.
Portabilitas
Ada kemungkinan bahwa variabel lingkungan yang saat ini bekerja dengan Fungsi Cloud Run tidak akan berfungsi dengan lingkungan runtime yang berbeda, seperti dalam bahasa yang berbeda atau dengan alat atau {i>library<i} tertentu. Mungkin juga mereka tidak akan diterima oleh platform yang berbeda.
Anda dapat menghindari masalah tersebut dengan mengikuti standar POSIX untuk variabel lingkungan.
Jika Anda menggunakan Google Cloud Console untuk mengedit variabel, Google Cloud Console akan memperingatkan setiap kali Anda menentukan variabel yang mungkin memiliki masalah portabilitas (tetapi tidak akan mencegah deployment). Sebagai aturan umum, sebaiknya kunci variabel lingkungan hanya terdiri dari huruf besar, angka, dan <underscore>
(_
), seperti yang ditentukan dalam Set Karakter Portabel,
dan tidak dimulai dengan angka.