Menetapkan dan Mendapatkan Data

Halaman ini menjelaskan cara menetapkan, mendapatkan, dan memperbarui variabel menggunakan Runtime Configurator. Variabel adalah key-value pair yang termasuk dalam resource RuntimeConfig. Setiap key-value pair berisi data yang Anda tentukan. Setelah membuat variabel, Anda dapat menetapkan watcher atau waiter di dalamnya.

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

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

Sebelum memulai

Membuat variabel

Variabel adalah pasangan nilai kunci. Kunci variabel dapat bersifat datar atau hierarkis. Misalnya, semua kunci berikut 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 ke:

  • 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

Dalam properti variabel, berikan name, location, dan value 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 Config untuk permintaan ini.
  • [VARIABLE_KEY] adalah kunci 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 hubung, dan garis miring, dan panjang maksimum untuk 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 base64, pilih properti value atau text:
    • value: Jika memberikan nilai sebagai string berenkode 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 angka, huruf, tanda hubung, dan garis miring, dan panjang maksimum untuk nama adalah 256 karakter.
  • [VARIABLE_VALUE] adalah nilai variabel ini. Anda dapat menetapkan nilai sebagai teks biasa, atau sebagai string berenkode base64. 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 melakukan 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, semua variabel yang ada akan ditimpa secara otomatis. Jika Anda ingin mempertahankan variabel yang ada, sertakan flag --fail-if-present, yang akan membuat variabel baru jika tidak ada.

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

Untuk referensi lengkap 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] sebagai project ID untuk permintaan ini. Payload permintaan berisi URI ke resource RuntimeConfig dan nilai plaintext 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 angka, huruf, tanda hubung, dan garis miring, dan panjang maksimum untuk nama adalah 256 karakter.
  • [VARIABLE_VALUE] adalah nilai untuk variabel ini. Bergantung pada apakah Anda ingin menetapkan nilai sebagai teks biasa, atau sebagai string yang dienkode base64, pilih properti value atau text:

    • value: Jika memberikan nilai sebagai string berenkode 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 memperbarui variabel di Deployment Manager:

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

  2. Ikuti langkah-langkah untuk membuat permintaan pembaruan.

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 yang dienkode base64, pilih properti value atau text:

  • value: Jika memberikan nilai sebagai string berenkode 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: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 dan nilainya dengan 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 ini:

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

Semua variabel yang tidak memiliki izin get akan dihilangkan. Hal ini mencakup variabel tempat Anda memiliki izin list, tetapi tidak memiliki izin get.

Untuk referensi lengkap 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 berenkode base64 dari variabel:

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

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

Jika Anda ingin mendapatkan daftar variabel yang memiliki izin runtimeconfig.variables.get dan 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?