Anda dapat menetapkan variabel lingkungan arbitrer untuk layanan Cloud Run. Cloud Run memasukkan key-value pair ini ke dalam penampung dan membuatnya dapat diakses oleh kode Anda. Anda juga dapat menggunakannya untuk meneruskan informasi konfigurasi ke buildpack saat men-deploy fungsi dari kode sumber.
Variabel lingkungan terikat pada satu layanan dan tidak terlihat oleh layanan lain dalam project Google Cloud Anda. Setiap variabel disimpan di layanan yang di-deploy dan berada dalam siklus proses yang sama dengan layanan yang terikat pada variabel tersebut.
Jumlah maksimum variabel lingkungan
Anda dapat menetapkan maksimum 1.000 variabel lingkungan untuk layanan Cloud Run.
Siklus proses variabel
Semua variabel lingkungan terikat pada deployment layanan; Anda hanya dapat menetapkan atau mengubahnya 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
Bagian berikut menyoroti beberapa praktik terbaik untuk mengonfigurasi variabel lingkungan.
Mengelola secret
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. Beberapa lingkungan eksekusi, atau penggunaan beberapa framework dapat mengakibatkan isi variabel lingkungan dikirim ke log. Sebaiknya jangan simpan kredensial sensitif dalam file YAML, skrip deployment, atau di bawah sistem kontrol sumber. Ingat bahwa variabel lingkungan dapat dilihat oleh siapa saja yang memiliki izin Project Viewer atau yang lebih tinggi.
Untuk menyimpan secret, sebaiknya Anda menggunakan Secret Manager. Untuk mengonfigurasi layanan agar dapat mengakses secret yang disimpan di Secret Manager, lihat Mengonfigurasi secret.
Tidak ada integrasi khusus Cloud Run dengan Cloud KMS.
Variabel lingkungan yang dicadangkan
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 yang dicadangkan untuk fungsi
Cloud Run menetapkan variabel lingkungan runtime berikut secara otomatis saat men-deploy fungsi:
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. |
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.
Selain itu, 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 variabel untuk fungsi
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, Anda dapat menentukan maksimal 100 variabel, dengan string definisi foo=bar
dibatasi hingga 64 KiB.
Menggunakan variabel lingkungan portabel dalam fungsi
Ada kemungkinan variabel lingkungan yang berfungsi dengan fungsi Anda mungkin tidak berfungsi dengan lingkungan runtime yang berbeda, seperti dalam bahasa lain atau dengan alat atau library 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. Sebaiknya
kunci variabel lingkungan hanya terdiri dari huruf besar,
angka, dan <underscore>
(_
), seperti yang ditentukan dalam
Set Karakter Portabel, dan tidak dimulai dengan angka.