Menyetel variabel lingkungan

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 adalah menjalankan layanan yang mengaktifkan pencatatan tambahan ketika membaca LOGGING_VERBOSE: true di lingkungan. Dalam skenario ini, Anda menetapkan key-value pair variabel lingkungan sebagai LOGGING_VERBOSE=true. Tujuan perintah atau UI yang tepat 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 diinjeksikan ke dalam container oleh penayangan Knative. Anda tidak boleh menetapkan melakukannya sendiri.

Menyetel 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 Anda men-deploy service atau memperbarui layanan yang ada dan men-deploy revisi:

Konsol

  1. Buka penyaluran Knative di Konsol Google Cloud:

    Buka penayangan Knative

  2. Klik Buat Layanan jika Anda mengonfigurasi layanan baru yang akan di-deploy. Jika Anda mengonfigurasi layanan yang ada, klik layanan, lalu klik Edit & Deploy Revisi Baru.

  3. Di bagian Setelan lanjutan, klik Variabel dan Rahasia.

  4. 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.

  5. Klik Berikutnya untuk melanjutkan ke bagian berikutnya.

  6. Di bagian Konfigurasi cara layanan ini dipicu, memilih konektivitas yang ingin Anda gunakan untuk memanggil layanan.

  7. Klik Create untuk men-deploy image ke inferensi Knative, lalu tunggu hingga deployment selesai.

Command line

Anda dapat menggunakan Google Cloud CLI untuk menetapkan lingkungan variabel untuk layanan baru atau untuk memperbarui layanan yang ada:

  • Untuk layanan yang ada, perbarui variabel lingkungan dengan menjalankan 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 dipisahkan koma daftar pasangan nama dan nilai untuk setiap variabel lingkungan. Tentukan nama variabel lingkungan untuk setiap variabel KEY dan nilai variabel lingkungan tersebut untuk VALUE. Cara menentukan beberapa parameter.
    • Opsi parameter perintah

      • Untuk menentukan variabel lingkungan yang berisi koma (,), Anda harus meng-escape masing-masing KEY=VALUE dengan {i>delimiter<i} 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 agar mudah dibaca. Contoh:
        [...]
        --set-env-vars "KEY=VALUE1" \
        --set-env-vars "KEY=VALUE2" \
        --set-env-vars "KEY=VALUE3"
  • Untuk layanan baru, atur variabel lingkungan dengan menjalankan perintah perintah gcloud run deploy dengan --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 dipisahkan koma daftar pasangan nama dan nilai untuk setiap variabel lingkungan. Tentukan nama variabel lingkungan untuk setiap variabel KEY dan nilai variabel lingkungan tersebut untuk VALUE. Cara menentukan beberapa parameter.
    • Opsi parameter perintah

      • Untuk menentukan variabel lingkungan yang berisi koma (,), Anda harus meng-escape masing-masing KEY=VALUE dengan {i>delimiter<i} 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 agar mudah dibaca. Contoh:
        [...]
        --set-env-vars "KEY=VALUE1" \
        --set-env-vars "KEY=VALUE2" \
        --set-env-vars "KEY=VALUE3"

YAML

Anda dapat mendownload konfigurasi layanan yang ada ke YAML dengan perintah gcloud run services describe menggunakan Tanda --format=export. Anda kemudian dapat memodifikasi file YAML itu dan men-deploy perubahan tersebut dengan perintah gcloud run services replace. Anda harus memastikan bahwa Anda hanya mengubah atribut yang ditentukan.

  1. Download konfigurasi layanan Anda menjadi file bernama service.yaml pada ruang kerja lokal:

    gcloud run services describe SERVICE --format export > service.yaml

    Ganti SERVICE dengan nama Anda Layanan penyaluran Knative.

  2. Di file lokal Anda, perbarui atribut name dan value di bagian Atribut env di bagian containers::

    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.
  3. Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:

    gcloud run services replace service.yaml

Menetapkan variabel lingkungan default dalam penampung

Anda dapat menggunakan ENV di Dockerfile untuk menetapkan nilai default variabel lingkungan:

ENV KEY1=VALUE1,KEY2=VALUE2

Urutan prioritas: variabel penampung vs variabel layanan

Jika Anda menetapkan variabel lingkungan default di penampung dan juga menetapkan variabel lingkungan dengan nama yang sama di Layanan penayangan Knative, nilai yang ditetapkan pada layanan akan diprioritaskan.

Untuk menggunakan Link layanan Kubernetes, Anda harus mengaktifkan dukungan secara manual. Dikarenakan adanya masalah performa 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 knative-serving/config-defaults Anda ConfigMap:

kubectl patch cm -n knative-serving config-defaults -p '{"data":{"enable-service-links":"true"}}