Mengonfigurasi variabel lingkungan (generasi ke-1)
Anda dapat men-deploy key-value pair apa saja bersama fungsi Cloud Run. Pasangan ini tersedia untuk fungsi Anda baik sebagai variabel lingkungan literal, yang dapat diakses oleh kode Anda pada saat runtime, 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 Cloud Run Functions dan berada dalam siklus proses yang sama dengan fungsi yang terikat pada variabel tersebut.
Anda dapat menambahkan atau menghapus variabel lingkungan runtime menggunakan Google Cloud CLI atau konsol Google Cloud .
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 --no-gen2 FUNCTION_NAME --set-env-vars FOO=bar FLAGS ...
Anda juga dapat menetapkan beberapa variabel lingkungan runtime menggunakan comma separated list:
gcloud functions deploy --no-gen2 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 --no-gen2 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 konsol Google Cloud
Anda dapat menetapkan variabel lingkungan runtime selama pembuatan fungsi di konsol Google Cloud :
Buka halaman Overview Functions di konsol Google Cloud :
Klik Create function.
Lengkapi kolom yang wajib diisi untuk fungsi Anda.
Buka bagian Runtime, build and connections settings.
Pilih tab Runtime.
Di bagian Runtime environment variables, klik Add variable, lalu tambahkan nama dan nilai.
Untuk mengetahui petunjuk tentang cara menambahkan variabel lingkungan ke fungsi yang ada, lihat Mengupdate variabel lingkungan runtime.
Mengupdate variabel lingkungan runtime
Anda juga dapat mengupdate variabel lingkungan runtime untuk fungsi yang ada. Ini adalah pendekatan non-destruktif yang mengubah atau menambahkan variabel lingkungan runtime, tetapi tidak menghapusnya.
gcloud
Untuk mengupdate variabel menggunakan Google Cloud CLI,
gunakan flag --update-env-vars pada waktu deployment:
gcloud functions deploy FUNCTION_NAME --no-gen2 --update-env-vars FOO=bar
Anda juga dapat mengupdate beberapa variabel lingkungan runtime menggunakan comma separated list:
gcloud functions deploy FUNCTION_NAME --no-gen2 --update-env-vars FOO=bar,BAZ=boo
UI konsol Google Cloud
Untuk mengupdate variabel lingkungan runtime menggunakan konsol Google Cloud :
Buka halaman Overview Functions di konsol Google Cloud :
Klik fungsi yang ada untuk membuka halaman detailnya.
Klik Edit.
Buka bagian Runtime, build and connections settings.
Pilih tab Runtime.
Lakukan pengeditan di bagian Runtime environment variables.
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 --no-gen2 --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 --no-gen2 --clear-env-vars
UI konsol Google Cloud
Untuk menghapus variabel lingkungan runtime menggunakan konsol Google Cloud :
Buka halaman Overview Functions di konsol Google Cloud :
Klik fungsi yang ada untuk membuka halaman detailnya.
Klik Edit.
Buka bagian Runtime, build and connections settings.
Pilih tab Runtime.
Di bagian Runtime environment variables, 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 \
--no-gen2 \
--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 nodejs22 \ --set-env-vars FOO=bar \ --trigger-http
Gunakan flag --runtime
untuk menentukan ID runtime
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 untuk 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 untuk menjalankan
fungsi Anda.
Ruby
gcloud functions deploy env_vars --runtime ruby33 \ --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 flag --runtime
untuk menentukan ID runtime
versi PHP yang didukung untuk menjalankan
fungsi Anda.
Saat runtime, akses 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#:
using Google.Cloud.Functions.Framework; using Microsoft.AspNetCore.Http; using System; using System.Threading.Tasks; namespace EnvironmentVariables; public class Function : IHttpFunction { public async Task HandleAsync(HttpContext context) { string foo = Environment.GetEnvironmentVariable("FOO") ?? "Specified environment variable is not set."; await context.Response.WriteAsync(foo, context.RequestAborted); } }
Ruby
Saat runtime, variabel lingkungan dapat diakses menggunakanENV di Ruby:
PHP
Saat runtime, variabel lingkungan dapat diakses menggunakan fungsigetenv PHP:
use Psr\Http\Message\ServerRequestInterface; function envVar(ServerRequestInterface $request): string { return getenv('FOO') . PHP_EOL; }
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 konsol Google Cloud .
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 --no-gen2 --set-build-env-vars FOO=bar FLAGS...
Anda juga dapat menetapkan beberapa variabel lingkungan build menggunakan comma separated list:
gcloud functions deploy FUNCTION_NAME --no-gen2 --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 --no-gen2 --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 konsol Google Cloud :
Buka halaman Overview Functions di konsol Google Cloud :
Klik Create function.
Lengkapi kolom yang wajib diisi untuk fungsi Anda.
Buka bagian Runtime, build and connections settings.
Pilih tab Build.
Di bagian Build environment variables, klik Add variable, 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 --no-gen2 --update-build-env-vars FOO=bar
Anda juga dapat mengupdate beberapa variabel lingkungan build menggunakan comma separated list:
gcloud functions deploy FUNCTION_NAME --no-gen2 --update-build-env-vars FOO=bar,BAZ=boo
UI konsol Google Cloud
Untuk mengupdate variabel lingkungan build menggunakan konsol Google Cloud :
Buka halaman Overview Functions di konsol Google Cloud :
Klik fungsi yang ada untuk membuka halaman detailnya.
Klik Edit.
Buka bagian Runtime, build and connections settings.
Pilih tab Build.
Lakukan pengeditan di bagian Build environment variables.
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 --no-gen2 --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 --no-gen2 --clear-build-env-vars
UI konsol Google Cloud
Untuk menghapus variabel lingkungan build menggunakan konsol Google Cloud :
Buka halaman Overview Functions di konsol Google Cloud :
Klik fungsi yang ada untuk membuka halaman detailnya.
Klik Edit.
Buka bagian Runtime, build and connections settings.
Pilih tab Build.
Di bagian Build environment variables, klik ikon sampah di samping key-value pair untuk menghapusnya.
Siklus proses variabel
Semua variabel lingkungan terikat pada deployment fungsi Cloud Run, dan 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, atau GOPATH).
Variabel lingkungan yang disediakan oleh lingkungan (selain yang tercantum di bagian Variabel lingkungan ditetapkan 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 64 KiB.
Mengelola secret
Variabel lingkungan dapat digunakan untuk konfigurasi fungsi, tetapi tidak direkomendasikan sebagai cara untuk menyimpan secret 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 Cloud Run Functions agar dapat mengakses secret yang disimpan di Secret Manager, lihat Mengonfigurasi secret. Perlu diperhatikan bahwa tidak ada integrasi khusus Cloud Run Functions dengan Cloud KMS.
Portabilitas
Ada kemungkinan variabel lingkungan yang saat ini berfungsi dengan fungsi Cloud Run Anda tidak akan berfungsi dengan lingkungan runtime yang berbeda, seperti dalam bahasa lain atau dengan alat atau library tertentu. Variabel lingkungan tidak akan diterima oleh platform yang berbeda.
Anda dapat menghindari masalah tersebut
dengan mengikuti standar POSIX untuk variabel lingkungan.
Jika Anda menggunakan konsol Google Cloud untuk mengedit variabel,
konsolGoogle Cloud akan memperingatkan Anda 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 Himpunan Karakter Portabel,
dan tidak dimulai dengan angka.