Halaman ini menjelaskan cara mengonfigurasi variabel lingkungan untuk layanan Cloud Run Anda.
Anda dapat menggunakan variabel lingkungan untuk konfigurasi layanan, tetapi kami tidak menyarankan variabel tersebut 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 Anda perlukan untuk mengonfigurasi dan men-deploy layanan Cloud Run, minta administrator untuk memberi Anda peran IAM berikut:
-
Cloud Run Developer (
roles/run.developer
) di layanan Cloud Run -
Service Account User (
roles/iam.serviceAccountUser
) di 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.
Batas dan jumlah maksimum variabel lingkungan
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 dapat dilihat 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, lalu klik Edit dan deploy revisi baru.
Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal, lalu klik Container, Volume, Networking, Security untuk memperluas halaman konfigurasi layanan.
Klik tab Container.
- Klik Add Variable untuk menambahkan variabel baru, dan tentukan nama yang Anda inginkan untuk variabel tersebut, serta nilainya di kolom Name dan Value.
Klik Buat atau Deploy.
gcloud
Untuk menentukan variabel lingkungan saat men-deploy layanan, 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 dan nilai variabel 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 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 antar 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 penampung dan juga menetapkan variabel lingkungan dengan nama yang sama pada layanan Cloud Run, 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 Google Cloud konsol:
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 dan nilai variabel 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 Google Cloud konsol:
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, gerakkan kursor ke sebelah kiri kolom Value dari variabel lingkungan yang Anda hapus, untuk menampilkan ikon Delete
, 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 menetapkannya
sendiri.
Variabel lingkungan tambahan yang dicadangkan 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 dalam bahasa:
Jika Anda men-deploy dari sumber dan perlu menyesuaikan variabel pada waktu build, lihat Menetapkan variabel lingkungan build.