Mengonfigurasi variabel lingkungan

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

Nama yang dilindungi

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.

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:

Untuk 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 memberikan peran, lihat izin deployment dan mengelola akses.

Menetapkan variabel lingkungan

Perubahan konfigurasi apa pun akan memunculkan "revisi" baru. Tiap revisi berikutnya juga akan secara otomatis mengandung perubahan konfigurasi tersebut, kecuali jika Anda membuat update yang eksplisit untuk perubahan secara khusus.

Anda dapat mengatur variabel lingkungan menggunakan konsol Google Cloud, command line gcloud, atau dengan file YAML saat membuat layanan baru atau men-deploy revisi baru:

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Klik Buat Layanan jika Anda mengonfigurasi layanan baru yang akan di-deploy. Jika Anda mengonfigurasi layanan yang ada, klik layanan, lalu klik Edit and deploy new revision.

  3. Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal sesuai keinginan, kemudian klik Container, vo;ume, jejaring, sekuritas untuk memperluas halaman konfigurasi layanan.

  4. Klik tab Container.

    gambar

    • Lakukan hal 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 Create atau Deploy.

Command line

Untuk menetapkan, mengupdate, atau menghapus variabel lingkungan dari layanan yang telah ada, gunakan perintah gcloud run services update. Anda dapat menggunakan salah satu flag berikut, sesuai yang dibutuhkan:

Anda dapat mengubah variabel lingkungan sekaligus men-deploy layanan, atau mengupdate layanan tersebut setelah layanan berhasil dibuat:

gcloud run deploy [SERVICE] --image IMAGE_URL --update-env-vars KEY1=VALUE1,KEY2=VALUE2

gcloud run services update SERVICE --update-env-vars KEY1=VALUE1,KEY2=VALUE2
  • Ganti SERVICE dengan nama layanan Anda.
  • Ganti KEY1=VALUE1,KEY2=VALUE2 dengan daftar nama variabel yang diinginkan beserta nilainya dan pisahkan dengan tanda koma.
  • Ganti IMAGE_URL dengan sebuah referensi ke container image, sebagai contoh, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

YAML

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang ada, download konfigurasi YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Update atribut name dan value di bawah atribut env yang terletak di bawah atribut containers::

    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. Struktur URL-nya adalah LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • KEY-1, VALUE-1 dengan nama variabel lingkungan dan nilainya. Secara opsional tambahkan variabel dan nilai lainnya sesuai yang diinginkan.
    • REVISION dengan sebuah nama revisi baru atau hapus saja (jika ada). Jika Anda memberikan nama revisi baru, nama tersebut harus memenuhi kriteria berikut:
      • Dimulai denganSERVICE-
      • Hanya berisi huruf kecil, angka, dan -
      • Tidak diakhiri dengan -
      • Tidak melebihi 63 karakter
  3. Buat atau update layanan menggunakan perintah berikut:

    gcloud run services replace service.yaml

Terraform

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

Resource google_cloud_run_v2_service berikut menentukan variabel lingkungan foo ke bar, dan variabel lingkungan baz ke quux. Update variabel lingkungan sesuai kebutuhan spesifik Anda:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-env-var"
  location = "us-central1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      # Environment variables
      env {
        name  = "foo"
        value = "bar"
      }
      env {
        name  = "baz"
        value = "quux"
      }
    }
  }
}

Menetapkan banyak variabel lingkungan

Jika Anda memiliki terlalu banyak variabel lingkungan yang tidak dapat dicantumkan dengan mudah dalam format KEY1=VALUE1,KEY2=VALUE2, secara alternatif Anda dapat menambahkan flag yang tercantum di atas 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 khusus", contohnya, @:

--set-env-vars "^@^KEY1=value1,value2,value3@KEY2=..."

Menetapkan variabel lingkungan default dalam container

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

ENV KEY1=VALUE1,KEY2=VALUE2

Urutan prioritas: container vs layanan atau variabel tugas

Jika Anda menetapkan variabel lingkungan default di dalam container dan juga menetapkan variabel lingkungan dengan nama yang sama pada layanan atau tugas Cloud Run, maka nilai yang ditetapkan pada layanan akan diutamakan.

Lihat setelan variabel lingkungan

Untuk melihat setelan variabel lingkungan saat ini pada tugas Cloud Run Anda:

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Klik layanan yang Anda minati untuk membuka halaman Detail layanan.

  3. Klik tab Revisions.

  4. Pada panel detail di sebelah kanan, setelan variabel lingkungan tercantum di bagian tab Container.

Command line

  1. Gunakan perintah berikut:

    gcloud run services describe SERVICE
  2. Temukan setelan variabel lingkungan di konfigurasi yang ditampilkan.

Kode sampel

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 selanjutnya

Anda dapat menggunakan variabel lingkungan untuk menetapkan konfigurasi Buildpack. Untuk mengetahui detail dalam bahasa tertentu, lihat dokumentasi Buildpacks dalam bahasa: