Halaman ini menjelaskan cara mengonfigurasi variabel lingkungan untuk layanan Cloud Run Anda.
Anda dapat menggunakan variabel lingkungan untuk konfigurasi layanan, tetapi kami tidak merekomendasikannya sebagai cara untuk menyimpan rahasia seperti kredensial database atau kunci API. Nilai sensitif harus disimpan di luar kode sumber dan di luar variabel lingkungan. Untuk menyimpan secret, sebaiknya Anda menggunakan Secret Manager. Untuk mengonfigurasi layanan agar dapat mengakses secret yang disimpan di Secret Manager, lihat Mengonfigurasi secret.
Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi dan men-deploy layanan Cloud Run, minta administrator Anda untuk memberi Anda peran IAM berikut:
-
Developer Cloud Run (
roles/run.developer
) di layanan Cloud Run -
Service Account User (
roles/iam.serviceAccountUser
) pada identitas layanan
Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat Peran IAM Cloud Run dan Izin IAM Cloud Run. Jika layanan Cloud Run Anda berinteraksi dengan Google Cloud API, seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.
Jumlah maksimum variabel lingkungan dan batas
Anda dapat menetapkan maksimum 1.000 variabel lingkungan untuk layanan Cloud Run.
Panjang variabel maksimum adalah 32 Kb.
Menetapkan variabel lingkungan
Anda dapat menetapkan variabel lingkungan untuk layanan baru dan yang sudah ada. Perhatikan bahwa tanda
--set-env-vars
adalah tindakan destruktif yang menghapus variabel lingkungan
yang ditetapkan sebelumnya dan tidak disertakan dalam daftar variabel lingkungan baru.
Variabel lingkungan terikat pada revisi layanan tertentu dan tidak terlihat oleh layanan lain dalam project Google Cloud Anda.
Anda dapat menetapkan variabel lingkungan menggunakan konsol Google Cloud , gcloud CLI, atau file YAML saat membuat layanan baru atau men-deploy revisi baru:
Konsol
Di konsol Google Cloud , buka Cloud Run:
Pilih Services dari menu, lalu klik Deploy container untuk mengonfigurasi layanan baru. Jika Anda mengonfigurasi layanan yang sudah ada, klik layanan tersebut, lalu klik Edit dan deploy revisi baru.
Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal, lalu klik Container, Volume, Jaringan, Keamanan untuk meluaskan halaman konfigurasi layanan.
Klik tab Container.
- Klik Tambahkan Variabel untuk menambahkan variabel baru, lalu tentukan nama yang Anda inginkan untuk variabel tersebut, dan nilainya di kolom Nama dan Nilai.
Klik Buat atau Deploy.
gcloud
Untuk menentukan variabel lingkungan saat
men-deploy layanan Anda,
gunakan flag --set-env-vars
:
gcloud run deploy SERVICE --image IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2
Ganti:
- SERVICE dengan nama layanan Anda.
- KEY1=VALUE1,KEY2=VALUE2, dengan daftar nama variabel dan nilai yang dipisahkan koma.
- IMAGE_URL dengan referensi ke image container,
misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Untuk menentukan variabel lingkungan saat
memperbarui
layanan, gunakan flag --set-env-vars
:
gcloud run services update SERVICE --image IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2
Menetapkan banyak variabel lingkungan
Jika Anda memiliki banyak variabel lingkungan yang tidak dapat dicantumkan dalam formatKEY1=VALUE1,KEY2=VALUE2
, Anda dapat mengulangi flag --set-env-vars
beberapa kali:
[...] --set-env-vars "KEY1=VALUE1" \ --set-env-vars "KEY2=VALUE2" \ --set-env-vars "KEY3=VALUE3"
Escape karakter koma
Karena karakter koma,
digunakan untuk memisahkan variabel lingkungan, jika
variabel lingkungan Anda mengandung karakter koma sebagai nilai, Anda perlu
meng-escape karakter pemisah tersebut dengan menentukan
karakter pemisah yang berbeda, misalnya, @
:
--set-env-vars "^@^KEY1=value1,value2,value3@KEY2=..."
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Update atribut
name
danvalue
di bawah atributenv
yang terletak di bawah atributcontainers:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE env: - name: KEY-1 value: VALUE-1 - name: KEY-N value: VALUE-N
Ganti
- SERVICE dengan nama layanan Cloud Run Anda
- IMAGE_URL dengan referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- KEY-1, VALUE-1 dengan variabel lingkungan dan nilainya. Secara opsional, tambahkan variabel dan nilai lainnya sesuai kebutuhan.
- REVISION dengan nama revisi baru atau hapus (jika ada). Jika Anda memberikan nama revisi baru, nama tersebut harus memenuhi kriteria berikut:
- Dimulai dengan
SERVICE-
- Hanya berisi huruf kecil, angka, dan
-
- Tidak diakhiri dengan
-
- Tidak melebihi 63 karakter
- Dimulai dengan
Buat atau perbarui layanan menggunakan perintah berikut:
gcloud run services replace service.yaml
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Tambahkan kode berikut ke resourcegoogle_cloud_run_v2_service
di konfigurasi Terraform Anda:Resource google_cloud_run_v2_service
sebelumnya menentukan
variabel lingkungan foo
ke bar
, dan variabel lingkungan baz
ke quux
. Perbarui variabel lingkungan sesuai kebutuhan.
Menetapkan variabel lingkungan default dalam container
Anda dapat menggunakan statement ENV
dalam Dockerfile untuk menetapkan nilai default dari variabel lingkungan:
ENV KEY1=VALUE1,KEY2=VALUE2
Urutan prioritas: variabel container versus layanan
Jika Anda menetapkan variabel lingkungan default di dalam container dan juga menetapkan variabel lingkungan dengan nama yang sama pada layanan Cloud Run, maka nilai yang ditetapkan pada layanan akan diutamakan.
Memperbarui variabel lingkungan
Anda dapat memperbarui variabel lingkungan untuk layanan yang ada. Ini adalah pendekatan non-destruktif yang mengubah atau menambahkan variabel lingkungan, tetapi tidak menghapus variabel lingkungan yang ditetapkan sebelumnya.
Konsol
Untuk memperbarui variabel lingkungan menggunakan konsol Google Cloud :
Di konsol Google Cloud , buka Cloud Run:
Pilih layanan Anda dari daftar, lalu klik Edit dan deploy revisi baru.
Klik tab Container.
Di tab Variables and secrets, edit kolom Name atau Value, lalu klik Done.
Klik Deploy.
gcloud
Untuk memperbarui variabel lingkungan layanan yang sudah ada, gunakan flag
--update-env-vars
:
gcloud run services update SERVICE --update-env-vars KEY1=VALUE1,KEY2=VALUE2
Ganti:
- SERVICE dengan nama layanan Anda.
- KEY1=VALUE1,KEY2=VALUE2, dengan daftar nama variabel dan nilai yang dipisahkan koma.
Untuk memperbarui variabel lingkungan layanan multi-region yang ada, gunakan
perintah gcloud beta run multi-region-services update
.
Lihat setelan variabel lingkungan
Untuk melihat setelan variabel lingkungan saat ini pada tugas Cloud Run Anda:
Konsol
Di konsol Google Cloud , buka Cloud Run:
Klik layanan yang Anda minati untuk membuka halaman Detail layanan.
Klik tab Revisi.
Pada panel detail di sebelah kanan, setelan variabel lingkungan tercantum di bagian tab Container.
gcloud
Gunakan perintah berikut:
gcloud run services describe SERVICE
Temukan setelan variabel lingkungan di konfigurasi yang ditampilkan.
Menghapus variabel lingkungan
Anda dapat menghapus variabel lingkungan untuk layanan yang ada.
Konsol
Untuk menghapus variabel lingkungan menggunakan konsol Google Cloud :
Di konsol Google Cloud , buka Cloud Run:
Pilih layanan Anda dari daftar, lalu klik Edit dan deploy revisi baru.
Klik tab Container.
Di tab Variables and secrets, arahkan kursor Anda ke sebelah kiri kolom Value dari variabel lingkungan yang sedang Anda hapus, untuk menampilkan ikon
Hapus, lalu klik ikon tersebut.Klik Selesai.
Klik Deploy.
gcloud
Untuk menghapus variabel lingkungan layanan yang ada secara selektif,gunakan flag --remove-env-vars
:
gcloud run services update SERVICE --remove-env-vars KEY1,KEY2
Ganti:
- SERVICE dengan nama layanan Anda.
- KEY1,KEY2, dengan daftar nama variabel yang dipisahkan koma.
Atau, hapus semua variabel lingkungan yang ditetapkan sebelumnya dengan flag --clear-env-vars
:
gcloud run services update SERVICE --clear-env-vars
Ganti:
- SERVICE dengan nama layanan Anda.
Praktik terbaik
Bagian berikut menyoroti beberapa praktik terbaik untuk mengonfigurasi variabel lingkungan.
Variabel lingkungan yang dicadangkan untuk layanan
Variabel lingkungan yang didefinisikan di dalam
container runtime contract
terkategorikan sebagai "dilindungi" dan tidak boleh diubah. Secara khusus, Cloud Run akan memasukkan variabel lingkungan PORT
ke dalam container Anda. Anda sebaiknya tidak mengaturnya
sendiri.
Variabel lingkungan cadangan tambahan saat men-deploy fungsi
Cloud Run menetapkan variabel lingkungan runtime berikut secara otomatis saat men-deploy fungsi:
FUNCTION_TARGET
: Fungsi yang akan dieksekusi.FUNCTION_SIGNATURE_TYPE
: Jenis fungsi:http
untuk fungsi HTTP, danevent
untuk fungsi berbasis peristiwa.
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 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.
Variabel lingkungan tidak valid
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_ . |
Kode contoh
Untuk mengetahui contoh kode yang menunjukkan cara mengakses variabel lingkungan dalam kode Anda, lihat halaman tentang Menangani konfigurasi sensitif dengan Secret Manager di tutorial autentikasi Pengguna akhir.
Langkah berikutnya
Anda dapat menggunakan variabel lingkungan untuk menetapkan konfigurasi buildpack. Untuk mengetahui detail dalam bahasa tertentu, lihat dokumentasi buildpack untuk:
Jika Anda men-deploy dari sumber dan perlu menyesuaikan variabel pada waktu build, lihat Menetapkan variabel lingkungan build.