Menetapkan dan Mendapatkan Data

Halaman ini menjelaskan cara menetapkan, mendapatkan, dan memperbarui variabel menggunakan Runtime Configurator. Variabel adalah pasangan nilai kunci yang termasuk dalam resource RuntimeConfig. Setiap pasangan nilai kunci berisi data yang Anda tentukan. Setelah membuat variabel, Anda dapat menetapkan watcher atau waiter pada variabel tersebut.

Untuk mempelajari lebih lanjut variabel dan layanan Runtime Configurator, lihat dokumentasi Dasar-Dasar Konfigurasi Runtime.

Untuk mempelajari cara membuat resource RuntimeConfig, lihat Membuat dan Menghapus Resource RuntimeConfig.

Sebelum memulai

Membuat variabel

Variabel adalah pasangan nilai kunci. Kunci variabel bisa datar atau hierarkis. Misalnya, semua hal berikut adalah kunci yang valid:

  • status
  • users/jane-smith/favorite-color
  • users/total

Hanya kunci node daun yang dapat memiliki nilai. Pada contoh di atas, Anda tidak dapat menetapkan nilai untuk:

  • users
  • users/jane-smith

Hal ini karena kedua kunci ini berisi kunci lain di bawahnya.

Untuk membuat variabel, gunakan Deployment Manager, Google Cloud CLI, atau API.

Deployment Manager

Untuk membuat variabel di Deployment Manager, tentukan jenis variabel:

runtimeconfig.v1beta1.variable

Di properti variabel, berikan name, location, dan value dari variabel:

- name: [NAME]
  type: runtimeconfig.v1beta1.variable
  properties:
    parent: $(ref.[CONFIG_NAME].name)
    variable: [VARIABLE_KEY]
    [value | text]: [VARIABLE_VALUE]

dengan:

  • [NAME] adalah nama resource arbitrer untuk variabel ini. Ini bukan nama variabel itu sendiri.
  • [CONFIG_NAME] adalah resource Konfigurasi untuk permintaan ini.
  • [VARIABLE_KEY] adalah kunci dari variabel ini. Misalnya, status dan users/jane-smith/favorite_color adalah kunci yang valid. Kunci variabel dapat berisi /. Kunci variabel dapat berisi angka, huruf, tanda pisah, dan garis miring. Panjang maksimal nama adalah 256 karakter.
  • [VARIABLE_VALUE] adalah nilai untuk variabel ini. Bergantung pada apakah Anda ingin menetapkan nilai sebagai teks biasa, atau sebagai string berenkode berbasis 64, pilih properti value atau text:
    • value: Jika memberikan nilai sebagai string dienkode base64, gunakan properti value.
    • text: Jika memberikan string teks biasa, gunakan properti text. String harus berupa UTF-8 yang valid.

gcloud

Untuk membuat variabel dengan Google Cloud CLI, gunakan perintah runtime-config configs variables set:

gcloud beta runtime-config configs variables set [VARIABLE_KEY] \
    [VARIABLE_VALUE] --config-name [CONFIG_NAME] [--is-text]

dengan:

  • [VARIABLE_KEY] adalah kunci variabel. Misalnya, status dan users/jane-smith/favorite_color adalah kunci yang valid. Kunci variabel dapat berisi /. Kunci variabel dapat berisi gali, huruf, tanda pisah, dan garis miring, dengan panjang maksimum nama adalah 256 karakter.
  • [VARIABLE_VALUE] adalah nilai variabel ini. Anda dapat menetapkan nilai sebagai teks biasa, atau sebagai string yang dienkode berbasis 64. Jika menentukan nilai teks biasa, berikan flag --is-text; jika tidak, Google Cloud CLI akan mengenkode nilai dalam encoding base64.

    gcloud beta runtime-config configs variables set [VARIABLE_KEY] \
          [VARIABLE_VALUE] --config-name [CONFIG_NAME] --is-text
    

    Anda juga dapat memberikan nilai variabel dari file. Contoh:

    cat [FILE_NAME] | gcloud beta runtime-config configs variables set [VARIABLE_KEY] --config-name [CONFIG_NAME]
    

    Catatan: Anda tidak perlu mengenkode nilai ini karena gcloud akan menjalankan encoding untuk Anda.

  • [CONFIG_NAME] adalah nama resource RuntimeConfig tempat variabel ini harus dibuat. Contoh, frontend-config.

    Contoh:

    gcloud beta runtime-config configs variables set example-variable \
          my-test-value --config-name example-config
    

    Gcloud CLI menampilkan respons seperti:

Created [https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]].

Secara default, setiap variabel yang ada akan ditimpa tanpa pemberitahuan. Jika ingin mempertahankan variabel yang sudah ada, sertakan flag --fail-if-present, yang membuat variabel baru jika tidak ada.

Demikian pula, Anda juga dapat menggagalkan permintaan variabel yang tidak ada dengan memberikan flag --fail-if-absent.

Untuk referensi lengkap terkait perintah gcloud ini, baca dokumentasi referensi runtime-config variables set.

API

Di REST API, buat permintaan POST ke URI berikut untuk membuat variabel baru:

https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables

dengan [PROJECT_ID] adalah project ID untuk permintaan ini. Payload permintaan berisi URI ke resource RuntimeConfig dan nilai teks biasa kunci, atau nilai yang dienkode base64:

{
   "name": "projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]"
   "[value | text]": "[VARIABLE_VALUE]" # Choose either 'value' or 'text' but not both
}

dengan:

  • [PROJECT_ID] adalah project ID untuk permintaan ini.
  • [CONFIG_NAME] adalah nama konfigurasi ini.
  • [VARIABLE_KEY] adalah kunci variabel. Misalnya, status dan users/jane-smith/favorite_color. Kunci variabel dapat berisi /. Kunci variabel dapat berisi gali, huruf, tanda pisah, dan garis miring, serta panjang maksimum nama adalah 256 karakter.
  • [VARIABLE_VALUE] adalah nilai untuk variabel ini. Bergantung pada apakah Anda ingin menetapkan nilai sebagai teks biasa, atau sebagai string berenkode berbasis 64, pilih properti value atau text:

    • value: Jika memberikan nilai sebagai string dienkode base64, gunakan properti value.
    • text: Jika memberikan string teks biasa, gunakan properti text. String harus berupa UTF-8 yang valid.

    Jika berhasil, API akan menampilkan respons seperti:

    {
    "name": "projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]",
    "value": "dGVhbA==",
    "updateTime": "2016-04-11T21:49:00.773366134Z"
    }

    Untuk mempelajari metode ini lebih lanjut, baca dokumentasi variables().create.

Memperbarui variabel

Deployment Manager

Untuk mengupdate variabel di Deployment Manager:

  1. Tentukan atau perbarui properti variabel Anda seperti yang dijelaskan dalam artikel Membuat variabel.

  2. Ikuti langkah-langkah untuk membuat permintaan update.

gcloud

Perbarui variabel menggunakan proses yang sama untuk membuat variabel.

API

Di REST API, buat permintaan PUT ke URI berikut untuk memperbarui variabel:

https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]

dengan:

  • [PROJECT_ID] adalah project ID untuk permintaan ini.
  • [CONFIG_NAME] adalah nama konfigurasi ini.
  • [VARIABLE_VALUE] adalah nilai untuk variabel ini. Ini adalah string yang telah dienkode base64.

Payload permintaan harus:

{
   "[value | text]": "[VARIABLE_VALUE]" # Choose either 'value' or 'text' but not both
}

dengan [VARIABLE_VALUE] adalah nilai untuk variabel ini. Bergantung pada apakah Anda ingin menetapkan nilai sebagai teks biasa, atau sebagai string berenkode base64, pilih properti value atau text:

  • value: Jika memberikan nilai sebagai string dienkode base64, gunakan properti value.
  • text: Jika memberikan string teks biasa, gunakan properti text. String ini harus berupa UTF-8 yang valid.

Jika berhasil, API akan menampilkan respons seperti:

{
  "name": "projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]",
  "value": "dGVhbA==",
  "updateTime": "2016-04-11T21:46:11.591713370Z",
  "state": "UPDATED"
}

Untuk mempelajari metode ini lebih lanjut, baca dokumentasi variables().create.

Mendapatkan nilai variabel

Deployment Manager

Dapatkan nilai variabel menggunakan salah satu metode berikut:

gcloud

Untuk membuat variabel dengan Google Cloud CLI, gunakan perintah runtime-config configs variables get-value:

gcloud beta runtime-config configs variables get-value [VARIABLE_KEY] --config-name [CONFIG_NAME]

dengan:

  • [VARIABLE_KEY] adalah kunci variabel. Misalnya, status, users/jane-smith/favorite_color.
  • [CONFIG_NAME] adalah nama resource RuntimeConfig untuk variabel ini. Contoh, website.

    Gcloud CLI menampilkan respons seperti:

    example-value

Anda juga bisa mendapatkan daftar variabel yang memiliki izin runtimeconfig.variables.get beserta nilainya menggunakan perintah list dan memberikan flag --values. Contoh:

gcloud beta runtime-config configs variables list --config-name example-config --values

Gcloud CLI menampilkan daftar seperti berikut:

NAME                         UPDATE_TIME                     VALUE
not-my-favorite-color/shade  2016-04-18T21:14:59.932428461Z  orange
not-my-favorite-food/group   2016-04-18T21:14:59.932428461Z  vegetables

Setiap variabel yang izin get-nya tidak Anda miliki akan dihilangkan. Mencakup variabel yang Anda miliki izin list, tetapi bukan izin get.

Untuk referensi lengkap terkait perintah gcloud ini, baca dokumentasi referensi runtime-config variables.

API

Di REST API, buat permintaan GET ke URI berikut untuk mendapatkan nilai variabel:

https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]

dengan:

  • [PROJECT_ID] adalah project ID untuk permintaan ini.
  • [CONFIG_NAME] adalah nama konfigurasi ini.
  • [VARIABLE_KEY] adalah nama untuk permintaan ini.

Jika berhasil, API akan menampilkan respons dengan nilai variabel yang dienkode base64:

{
  "name": "projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]",
  "value": "[VARIABLE_VALUE]",
  "updateTime": "2016-04-11T21:49:00.773366134Z"
}

Anda harus mendekode nilai tersebut sendiri untuk mendapatkan string. Untuk mempelajari metode ini lebih lanjut, baca dokumentasi variables().get.

Jika ingin mendapatkan daftar variabel yang memiliki izin runtimeconfig.variables.get beserta nilainya, gunakan metode returnValues. Contoh:

GET uri: https://runtimeconfig.googleapis.com/v1beta1/projects/myproject/configs/example-config/variables?returnValues=True

API menampilkan semua variabel yang izinnya Anda miliki:

{
  "variables": [
    {
      "name": "projects/compute-writers-project/configs/example-config/variables/not-my-favorite-color/shade",
      "updateTime": "2016-04-18T21:14:59.932428461Z",
      "value": "b3Jhbmdl"
    }
  ]
}

Demikian pula, Anda harus mendekode nilai sendiri untuk mendapatkan string.

Untuk mempelajari metode ini lebih lanjut, baca dokumentasi variables().list.

Apa langkah selanjutnya?