Halaman ini menjelaskan cara membuat resource Waiter. Untuk mempelajari pelayan lebih lanjut, baca Dasar-Dasar Konfigurasi Runtime.
Resource Pelayan menunggu kondisi keberhasilan atau kegagalan tertentu sebelum menampilkan respons. Untuk keberhasilan dan kegagalan, tetapkan kondisi Kardinalitas, yaitu pelayan menunggu sejumlah variabel dibuat dengan awalan jalur tertentu. Setelah variabel dibuat, pelayan akan kembali. Kode aplikasi Anda kemudian dapat merespons keberhasilan atau kegagalannya. Jika status variabel Anda saat ini sudah cocok dengan kondisi akhir berhasil atau gagal, pelayan akan segera menampilkan keberhasilan atau kegagalan.
Sebelum memulai
- Jika Anda ingin menggunakan contoh command line dalam panduan ini, instal alat command line`gcloud`.
- Jika Anda ingin menggunakan contoh API dalam panduan ini, siapkan akses API.
- Baca Dasar-Dasar Konfigurasi Runtime.
- Baca Membuat dan Menghapus Resource RuntimeConfig.
- Baca Menetapkan dan Mendapatkan Data.
Membuat pelayan
Untuk membuat pelayan:
Tentukan keberhasilan Anda, dan secara opsional, kondisi kegagalan untuk pelayan.
Misalnya, kode contoh berikut menetapkan kondisi untuk berhasil dan gagal, dengan pelayan berhasil kembali jika jumlah jalur dalam
/status/success
adalah tiga dan gagal jika jalur pada/status/failure
adalah dua:{ 'name': 'projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]', 'timeout': '360s', 'success': { 'cardinality': { 'path': '/status/success', 'number': 3 } }, 'failure': { 'cardinality': { 'path': '/status/failure', 'number': 2 } } }
Praktik terbaik untuk menentukan pelayan:
- Hanya satu kondisi berhasil dan satu kondisi kegagalan yang diizinkan per pelayan.
- Anda harus memiliki satu pelayan per jalur.
- Kondisi kegagalan selalu dievaluasi sebelum kondisi berhasil.
- Jangan tumpang tindih awalan jalur di antara kondisi.
Membuat pelayan.
Deployment Manager
Untuk membuat pelayan di Deployment Manager, tentukan jenis pelayan:
runtimeconfig.v1beta1.waiter
Di properti pelayan, berikan
name
,location
,timeout
, dan kondisi akhir pelayan:- name: [NAME] type: runtimeconfig.v1beta1.waiter properties: parent: $(ref.[CONFIG_NAME].name) waiter: [WAITER_NAME] timeout: [TIMEOUT_SECS] success: cardinality: path: [SUCCESS_PATH_PREFIX] number: [SUCCESS_NUMBER]
dengan:
[NAME]
adalah nama resource.[CONFIG_NAME]
adalah resource Konfigurasi untuk permintaan ini.[WAITER_NAME]
adalah nama pelayan ini.[TIMEOUT_SECS]
adalah jumlah detik untuk menunggu sebelum waktu pelayan habis. Misalnya, untuk 300 detik, gunakan300s
.[SUCCESS_PATH_PREFIX]
adalah awalan jalur yang harus diperhatikan untuk kondisi keberhasilan.[SUCCESS_NUMBER]
adalah jumlah variabel yang ada pada jalur ini yang akan dianggap berhasil.
gcloud
Dengan Google Cloud CLI:
gcloud beta runtime-config configs waiters create [WAITER_NAME] \ --config-name [CONFIG_NAME] \ --success-cardinality-path [SUCCESS_PATH_PREFIX] \ --success-cardinality-number [SUCCESS_NUMBER] --timeout [TIMEOUT_SECS]
dengan:
[WAITER_NAME]
adalah nama pelayan ini.[CONFIG_NAME]
adalah resource RuntimeConfig untuk permintaan ini.[SUCCESS_PATH_PREFIX]
adalah awalan jalur yang harus diperhatikan untuk kondisi keberhasilan.[SUCCESS_NUMBER]
adalah jumlah variabel yang ada pada jalur ini yang akan dianggap berhasil.[TIMEOUT_SECS]
jumlah detik untuk menunggu sebelum waktu pelayan habis.Gcloud CLI menampilkan respons seperti:
[https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/example-waiter] telah dibuat.
Setelah membuat pelayan, alat ini melakukan polling pada resource Operations terkait sampai pelayan kembali dengan salah satu respons yang berlaku.
Untuk referensi lengkap terkait perintah
gcloud
ini, baca dokumentasi referensiruntime-config configs waiters
.
API
Di API, buat permintaan
POST
ke URI berikut:https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters
dengan:
[PROJECT_ID]
adalah project ID untuk permintaan ini.[CONFIG_NAME]
adalah nama konfigurasi untuk permintaan ini.
Payload permintaan harus berisi nama pelayan, kondisi keberhasilan, dan durasi waktu tunggu:
{ 'name': 'projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]', 'timeout': '[TIMEOUT_SEC]', 'success': { 'cardinality': { 'path': '[SUCCESS_PATH_PREFIX]', 'number': '[SUCCESS_NUMBER]' } } }
dengan:
[PROJECT_ID]
adalah project ID untuk permintaan ini.[CONFIG_NAME]
adalah nama konfigurasi untuk permintaan ini.[WAITER_NAME]
adalah nama pelayan yang akan membuat.[TIMEOUT_SECS]
jumlah detik untuk menunggu sebelum waktu pelayan habis.[SUCCESS_PATH_PREFIX]
adalah awalan jalur yang harus diperhatikan untuk kondisi keberhasilan.[SUCCESS_NUMBER]
adalah jumlah variabel yang ada pada jalur ini yang akan dianggap berhasil.
Jika berhasil, permintaan akan menampilkan nama objek operasi yang Anda polling untuk penyelesaian:
{ "name": "projects/[PROJECT_ID]/[CONFIG_NAME]/operations/waiters/[WAITER_NAME]" }
Selanjutnya, lakukan polling pelayan untuk memeriksa secara berkala kapan pelayan kembali.
Untuk mempelajari metode ini lebih lanjut, baca dokumentasi
waiters().create
.
Membuat polling untuk pelayan
Setelah membuat pelayan, lakukan polling resource Operasi terkait untuk memeriksa apakah pelayan telah memenuhi salah satu kondisi akhir. Jika pelayan telah memenuhi kondisi akhir atau waktu habis, operasi akan ditampilkan sebagai done
dan menampilkan respons berdasarkan hasil pelayan.
Gunakan gcloud
atau API untuk melakukan polling pelayan.
gcloud
Dengan Google Cloud CLI, saat Anda membuat permintaan untuk membuat pelayan, alat tersebut akan otomatis melakukan polling dan menunggu pelayan kembali. Alat ini mencetak respons seperti berikut saat melakukan polling pelayan:
Waiting for waiter [WAITER_NAME] to finish...
Jika Anda tidak ingin alat ini melakukan polling pelayan setelah membuatnya, berikan
flag --async
dengan permintaan pembuatan Anda.
API
Di REST API, buat permintaan GET
ke URI berikut untuk mendapatkan status operasi pelayan:
https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/operations/waiters/[WAITER_NAME]
dengan:
[PROJECT_ID]
adalah project ID untuk permintaan ini.[CONFIG_NAME]
adalah nama konfigurasi untuk permintaan ini.[WAITER_NAME]
adalah nama pelayan yang akan melakukan polling.
Jika operasi masih berlangsung, API akan menampilkan respons seperti berikut, yang tidak memiliki status:
{
"name": "projects/[PROJECT_NAME]/configs/[CONFIG_NAME]/operations/waiters/[WAITER_NAME]"
}
Jika operasi selesai, operasi akan ditandai sebagai done
dan menampilkan salah satu respons yang dijelaskan di bagian Respons Pelayan.
Untuk mempelajari metode ini lebih lanjut, baca
dokumentasi
waiters().create
.
Respons pelayan
Kondisi akhir berhasil
Jika pelayan telah memenuhi kondisi akhir yang berhasil, operasi akan menampilkan resource Pelayan:
{
"name": "projects/[PROJECT_NAME]/configs/[CONFIG_NAME]/operations/waiters/[WAITER_NAME]",
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.runtimeconfig.v1beta1.Waiter",
"name": "projects/[PROJECT_NAME]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]",
"timeout": "360.000s",
"failure": {
"cardinality": {
"path": "[SUCCESS_PATH_PREFIX]",
"number": "[SUCCESS_NUMBER]"
}
},
"success": {
"cardinality": {
"path": "[FAILURE_PATH_PREFIX]",
"number": [FAILURE_NUMBER]
}
},
"createTime": "2016-04-12T18:02:13.316695490Z",
"done": true
}
}
Kondisi kegagalan
Jika pelayan memenuhi kondisi akhir kegagalan atau waktu habis, operasi akan menampilkan error.
Kondisi kegagalan terpenuhi
{
"name": "projects/[PROJECT_NAME]/configs/[CONFIG_NAME]/operations/waiters/[WAITER_NAME]",
"done": true,
"error": {
"code": 9,
"message": "Failure condition satisfied."
}
}
Waktu tunggu habis
{
"name": "projects/[PROJECT_NAME]/configs/[CONFIG_NAME]/operations/waiters/[WAITER_NAME]",
"done": true,
"error": {
"code": 4,
"message": "Timeout expired."
}
}
Langkah selanjutnya
- Pelajari Konfigurasi Runtime.
- Pelajari cara menetapkan dan mendapatkan variabel.
- Tetapkan Watcher a specific variabel.
- Membuat dan menghapus Resource RuntimeConfig.
- Lihat referensi v1beta1.
- Lihat Kuota untuk Konfigurasi Runtime.