Menetapkan dan Mendapatkan Data

Halaman ini menjelaskan cara menyetel, mendapatkan, dan memperbarui variabel menggunakan Konfigurasi Runtime. Variabel adalah key-value pair yang termasuk dalam resource RuntimeConfig. Setiap pasangan nilai kunci berisi data yang Anda tentukan. Setelah membuat variabel, Anda dapat menyetel pengamat atau penunggu di variabel tersebut.

Untuk mempelajari lebih lanjut variabel dan layanan Runtime Configurator, 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 berupa datar atau hierarkis. Misalnya, semua kunci berikut valid:

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

Hanya kunci node daun yang dapat memiliki nilai. Dalam 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

Di 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 digit, huruf, tanda hubung, dan garis miring, serta 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 digit, huruf, tanda hubung, dan garis miring, serta 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 tanda --is-text; jika tidak, Google Cloud CLI akan mengenkode nilai dalam enkode 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 diam-diam. Jika Anda ingin mempertahankan variabel yang ada, sertakan flag --fail-if-present, yang membuat variabel baru jika variabel tersebut belum ada.

Demikian pula, Anda juga dapat membuat permintaan gagal jika variabel tidak ada dengan memberikan tanda --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] adalah project ID untuk permintaan ini. Payload permintaan berisi URI ke resource RuntimeConfig dan nilai teks biasa dari kunci, atau nilai berenkode 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 digit, huruf, tanda hubung, dan garis miring, serta 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 mengupdate variabel di Deployment Manager:

  1. Tentukan atau perbarui properti variabel Anda seperti yang dijelaskan dalam 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 berupa:

{
   "[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 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 tanda --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

Semua variabel yang izin get-nya tidak Anda miliki akan dihilangkan. Hal itu mencakup variabel yang izin list-nya Anda miliki, 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 sendiri nilai untuk mendapatkan string. Untuk mempelajari lebih lanjut metode ini, 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 ini 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 sendiri nilai untuk mendapatkan string.

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

Apa langkah selanjutnya?