Pelajari cara membuat dan menggunakan variabel lingkungan dalam penayangan Knative.
Saat Anda menetapkan variabel lingkungan (environment variable),
variabel tersebut dimasukkan ke dalam container dan dapat diakses oleh kode Anda.
Variabel lingkungan ditetapkan dalam format pasangan kunci/nilai (key/value). Misalnya, Anda
menjalankan layanan yang mengaktifkan logging tambahan saat membaca
LOGGING_VERBOSE: true
di lingkungan. Dalam skenario ini, Anda menetapkan
pasangan nilai kunci variabel lingkungan sebagai LOGGING_VERBOSE=true
. Perintah atau UI
tepatnya ditampilkan di bagian berikut.
Nama yang digunakan sistem
Variabel lingkungan yang didefinisikan di dalam
container runtime contract
terkategorikan sebagai "dilindungi" dan tidak boleh diubah. Secara khusus, variabel lingkungan PORT
dimasukkan ke dalam container Anda oleh penayangan Knative. Anda sebaiknya tidak menetapkannya
sendiri.
Menetapkan variabel lingkungan pada layanan
Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.
Anda dapat menetapkan variabel lingkungan menggunakan konsol Google Cloud, Google Cloud CLI, atau file YAML saat men-deploy layanan baru atau memperbarui layanan yang ada dan men-deploy revisi:
Konsol
Buka penayangan Knative di konsol Google Cloud:
Klik Buat Layanan jika Anda mengonfigurasi layanan baru yang akan di-deploy. Jika Anda mengonfigurasi layanan yang sudah ada, klik layanan tersebut, lalu klik Edit & Deploy New Revision.
Di bagian Setelan lanjutan, klik Variabel dan Secret.
Lakukan tindakan berikut:
- Jika Anda ingin menambahkan variabel, klik Add Variable, dan tentukan nama dan nilai yang Anda inginkan untuk variabel tersebut pada kotak teks Nama dan Nilai.
- Jika Anda ingin mengubah nilai dari sebuah variabel, maka ganti nilai yang ada di kotak teks Nilai dengan nilai yang Anda inginkan.
- Jika Anda ingin menghapus satu atau beberapa variabel lingkungan, arahkan kursor Anda ke sebelah kiri kotak teks Nilai dari variabel yang sedang Anda hapus untuk menampilkan ikon Sampah, lalu klik ikon tersebut.
Klik Berikutnya untuk melanjutkan ke bagian berikutnya.
Di bagian Configure how this service is triggered, pilih konektivitas yang ingin Anda gunakan untuk memanggil layanan.
Klik Create untuk men-deploy image ke layanan Knative dan tunggu deployment selesai.
Command line
Anda dapat menggunakan Google Cloud CLI untuk menetapkan variabel lingkungan untuk layanan baru atau mengupdate layanan yang ada:
Untuk layanan yang ada, perbarui variabel lingkungan dengan menjalankan perintah
gcloud run services update
dengan salah satu parameter berikut:Contoh:
gcloud run services update SERVICE --update-env-vars KEY1=VALUE1,KEY2=VALUE2
Ganti:
- SERVICE dengan nama layanan Anda.
- KEY1=VALUE1,KEY2=VALUE2 dengan daftar pasangan nama dan nilai yang dipisahkan koma untuk setiap variabel lingkungan. Tentukan nama variabel lingkungan untuk setiap KEY dan nilai variabel lingkungan tersebut untuk VALUE. Cara menentukan beberapa parameter.
-
Untuk menentukan variabel lingkungan yang berisi koma (
,
), Anda harus meng-escape setiap KEY=VALUE dengan pemisah yang berbeda. Misalnya, jika Anda menggunakan@
:--set-env-vars "^@^KEY1=value,with,commas@KEY2=anothervalue@KEY3..."
-
Untuk menentukan beberapa kumpulan pasangan nilai kunci, Anda
dapat menentukan beberapa parameter untuk keterbacaan. Contoh:
[...] --set-env-vars "KEY=VALUE1" \ --set-env-vars "KEY=VALUE2" \ --set-env-vars "KEY=VALUE3"
Opsi parameter perintah
Untuk layanan baru, tetapkan variabel lingkungan dengan menjalankan perintah
gcloud run deploy
dengan parameter--set-env-vars
:gcloud run deploy SERVICE --image=IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2
Ganti:
- IMAGE_URL dengan referensi ke image container,
misalnya,
gcr.io/cloudrun/hello
. - SERVICE dengan nama layanan Anda.
- KEY1=VALUE1,KEY2=VALUE2 dengan daftar pasangan nama dan nilai yang dipisahkan koma untuk setiap variabel lingkungan. Tentukan nama variabel lingkungan untuk setiap KEY dan nilai variabel lingkungan tersebut untuk VALUE. Cara menentukan beberapa parameter.
-
Untuk menentukan variabel lingkungan yang berisi koma (
,
), Anda harus meng-escape setiap KEY=VALUE dengan pemisah yang berbeda. Misalnya, jika Anda menggunakan@
:--set-env-vars "^@^KEY1=value,with,commas@KEY2=anothervalue@KEY3..."
-
Untuk menentukan beberapa kumpulan pasangan nilai kunci, Anda
dapat menentukan beberapa parameter untuk keterbacaan. Contoh:
[...] --set-env-vars "KEY=VALUE1" \ --set-env-vars "KEY=VALUE2" \ --set-env-vars "KEY=VALUE3"
Opsi parameter perintah
- IMAGE_URL dengan referensi ke image container,
misalnya,
YAML
Anda dapat mendownload konfigurasi layanan yang ada ke dalam
file YAML dengan perintah gcloud run services describe
menggunakan
tanda --format=export
.
Kemudian, Anda dapat mengubah file YAML tersebut dan men-deploy
perubahan tersebut dengan perintah gcloud run services replace
.
Anda harus memastikan bahwa Anda hanya mengubah atribut yang ditentukan.
Download konfigurasi layanan Anda ke file bernama
service.yaml
di ruang kerja lokal:gcloud run services describe SERVICE --format export > service.yaml
Ganti SERVICE dengan nama layanan penayangan Knative Anda.
Dalam file lokal, perbarui atribut
name
danvalue
di bawah atributenv
di bawahcontainers:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - env: - name: KEY-1 value: VALUE-1 - name: KEY-N value: VALUE-N
Ganti
- SERVICE dengan nama layanan penayangan Knative Anda
- KEY-1, VALUE-1 dengan nama variabel lingkungan dan nilainya. Secara opsional tambahkan variabel dan nilai lainnya sesuai yang diinginkan.
Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:
gcloud run services replace service.yaml
Menetapkan variabel lingkungan default dalam penampung
Anda dapat menggunakan pernyataan ENV
dalam Dockerfile untuk menetapkan nilai default dari variabel lingkungan:
ENV KEY1=VALUE1,KEY2=VALUE2
Urutan prioritas: variabel container vs. layanan
Jika Anda menetapkan variabel lingkungan default di dalam container dan juga menetapkan variabel lingkungan dengan nama yang sama pada layanan penayangan Knative, nilai yang ditetapkan pada layanan akan diutamakan.
Mengaktifkan penautan layanan Kubernetes
Untuk menggunakan link layanan Kubernetes, Anda harus mengaktifkan dukungan secara manual. Karena masalah performa yang terlihat di namespace dengan ribuan layanan dan revisi, link layanan Kubernetes dinonaktifkan secara default mulai Januari 2021.
Untuk mengaktifkan link layanan Kubernetes, jalankan perintah berikut untuk menetapkan
data.enable-service-links
ke true
di ConfigMap
knative-serving/config-defaults
Anda:
kubectl patch cm -n knative-serving config-defaults -p '{"data":{"enable-service-links":"true"}}