הגדרת נתונים ואחזור נתונים

בדף הזה מוסבר איך להגדיר, לקבל ולעדכן משתנים באמצעות Runtime Configurator. משתנים הם צמדי מפתח/ערך ששייכים למשאב RuntimeConfig. כל צמד מפתח-ערך מכיל נתונים שאתם מגדירים. אחרי שיוצרים משתנה, אפשר להגדיר לו watcher או waiter.

מידע נוסף על משתנים ועל שירות Runtime Configurator זמין במאמר יסודות של Runtime Configurator.

במאמר יצירה ומחיקה של משאבי RuntimeConfig מוסבר איך ליצור משאב RuntimeConfig.

לפני שמתחילים

יצירת משתנה

משתנה הוא צמד מפתח/ערך. מפתח משתנה יכול להיות שטוח או היררכי. לדוגמה, כל המפתחות הבאים הם מפתחות תקינים:

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

רק למפתחות של צמתי עלים יכולים להיות ערכים. בדוגמה שלמעלה, אי אפשר להקצות ערך ל:

  • users
  • users/jane-smith

הסיבה לכך היא ששני המקשים האלה מכילים מקשים אחרים מתחתיהם.

כדי ליצור משתנה, משתמשים ב-Deployment Manager, ב-Google Cloud CLI או ב-API.

Deployment Manager

כדי ליצור משתנה ב-Deployment Manager, צריך לציין את סוג המשתנה:

runtimeconfig.v1beta1.variable

במאפיינים של המשתנה, מציינים את name, location ו-value של המשתנה:

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

where:

  • [NAME] הוא שם המשאב השרירותי של המשתנה הזה. זה לא השם של המשתנה עצמו.
  • [CONFIG_NAME] הוא משאב ההגדרות של הבקשה הזו.
  • [VARIABLE_KEY] הוא המפתח של המשתנה הזה. לדוגמה, status ו-users/jane-smith/favorite_color הם מפתחות תקינים. מפתחות של משתנים יכולים להכיל /. מפתח משתנה יכול להכיל ספרות, אותיות, מקפים וקווים נטויים, והאורך המקסימלי של השם הוא 256 תווים.
  • [VARIABLE_VALUE] הוא הערך של המשתנה הזה. בהתאם להגדרה הרצויה (האם להקצות ערך כטקסט רגיל או כמחרוזת בקידוד base64), בוחרים את המאפיין value או text:
    • value: אם מספקים ערך כמחרוזת בקידוד base64, צריך להשתמש במאפיין value.
    • text: אם מספקים מחרוזת בטקסט לא מוצפן, משתמשים במאפיין text. המחרוזת צריכה להיות בקידוד UTF-8 תקין.

gcloud

כדי ליצור משתנה באמצעות Google Cloud CLI, משתמשים בפקודה runtime-config configs variables set:

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

where:

  • [VARIABLE_KEY] הוא המפתח של המשתנה. לדוגמה, status ו-users/jane-smith/favorite_color הם מפתחות תקינים. מפתחות של משתנים יכולים להכיל את התווים /. מפתח משתנה יכול להכיל ספרות, אותיות, מקפים ולוכסנים, והאורך המקסימלי של שם הוא 256 תווים.
  • [VARIABLE_VALUE] הוא הערך של המשתנה הזה. אפשר להקצות ערך כטקסט רגיל או כמחרוזת בקידוד Base64. אם מציינים ערך בטקסט רגיל, צריך לספק את הדגל --is-text. אחרת, Google Cloud CLI יקודד את הערך בקידוד base64.

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

    אפשר גם לספק את ערך המשתנה מקובץ. לדוגמה:

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

    הערה: אין צורך לקודד את הערך הזה כי gcloud יבצע את הקידוד בשבילכם.

  • [CONFIG_NAME] הוא שם משאב ה-RuntimeConfig שבו צריך ליצור את המשתנה הזה. לדוגמה, frontend-config.

    לדוגמה:

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

    ה-CLI של gcloud מחזיר תשובה כמו:

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

כברירת מחדל, משתנים קיימים יוחלפו ללא הודעה. אם רוצים לשמור משתנה קיים, צריך לכלול את הדגל --fail-if-present, שיוצר את המשתנה החדש אם הוא לא קיים.

באופן דומה, אפשר גם לגרום לכך שהבקשה של המשתנה תיכשל אם הוא לא קיים, על ידי ציון הדגל --fail-if-absent.

למידע נוסף על הפקודה gcloud, תוכלו לקרוא את מאמרי העזרה של runtime-config variables set.

API

ב-API בארכיטקטורת REST, שולחים בקשת POST ל-URI הבא כדי ליצור משתנה חדש:

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

כאשר [PROJECT_ID] הוא מזהה הפרויקט של הבקשה הזו. מטען הייעודי (payload) של הבקשה מכיל את ה-URI של משאב RuntimeConfig ואת ערך הטקסט הפשוט של המפתח, או את הערך המקודד ב-base64:

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

where:

  • [PROJECT_ID] הוא מזהה הפרויקט של הבקשה הזו.
  • [CONFIG_NAME] הוא השם של ההגדרה הזו.
  • [VARIABLE_KEY] הוא המפתח של המשתנה. לדוגמה, status ו-users/jane-smith/favorite_color. מפתחות של משתנים יכולים להכיל את התווים /. מפתח משתנה יכול להכיל ספרות, אותיות, מקפים ולוכסנים, והאורך המקסימלי של שם הוא 256 תווים.
  • [VARIABLE_VALUE] הוא הערך של המשתנה הזה. בהתאם להחלטה אם להקצות ערך כטקסט פשוט או כמחרוזת בקידוד base64, בוחרים במאפיין value או text:

    • value: אם מספקים ערך כמחרוזת בקידוד base64, צריך להשתמש במאפיין value.
    • text: אם מספקים מחרוזת בטקסט לא מוצפן, משתמשים במאפיין text. המחרוזת צריכה להיות בקידוד UTF-8 תקין.

    אם הפעולה בוצעה ללא שגיאות, ה-API מחזיר תגובה כמו:

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

    מידע נוסף על השיטה זמין במאמרי העזרה בנושא variables().create.

עדכון משתנה

Deployment Manager

כדי לעדכן משתנה ב-Deployment Manager:

  1. מגדירים או מעדכנים את מאפייני המשתנה כמו שמתואר במאמר יצירת משתנה.

  2. פועלים לפי השלבים לשליחת בקשת עדכון.

gcloud

כדי לעדכן משתנה, פועלים לפי אותו תהליך שבו יוצרים משתנה.

API

ב-API בארכיטקטורת REST, שולחים בקשת PUT ל-URI הבא כדי לעדכן משתנה:

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

where:

  • [PROJECT_ID] הוא מזהה הפרויקט של הבקשה הזו.
  • [CONFIG_NAME] הוא השם של ההגדרה הזו.
  • [VARIABLE_VALUE] הוא הערך של המשתנה הזה. זו מחרוזת שעברה קידוד base64.

המטען הייעודי (payload) של הבקשה צריך להיות:

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

כאשר [VARIABLE_VALUE] הוא הערך של המשתנה הזה. בהתאם להגדרה הרצויה של הערך – כטקסט פשוט או כמחרוזת בקידוד base64 – בוחרים את המאפיין value או text:

  • value: אם מספקים ערך כמחרוזת בקידוד base64, צריך להשתמש במאפיין value.
  • text: אם מספקים מחרוזת בטקסט לא מוצפן, משתמשים במאפיין text. המחרוזת צריכה להיות בקידוד UTF-8 תקין.

אם הפעולה בוצעה ללא שגיאות, ה-API מחזיר תגובה כמו:

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

מידע נוסף על השיטה זמין במאמרי העזרה בנושא variables().create.

קבלת הערך של משתנה

Deployment Manager

אפשר לקבל את הערך של משתנה באמצעות אחת מהשיטות הבאות:

gcloud

כדי ליצור משתנה באמצעות Google Cloud CLI, משתמשים בפקודה runtime-config configs variables get-value:

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

where:

  • [VARIABLE_KEY] הוא המפתח של המשתנה. לדוגמה, status, users/jane-smith/favorite_color.
  • [CONFIG_NAME] הוא השם של משאב RuntimeConfig של המשתנה הזה. לדוגמה, website.

    ה-CLI של gcloud מחזיר תשובה כמו:

    example-value

אפשר גם לקבל רשימה של משתנים שיש לכם הרשאת runtimeconfig.variables.get לגביהם, ואת הערכים שלהם, באמצעות הפקודה list והדגל --values. לדוגמה:

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

ה-CLI של gcloud מחזיר רשימה כזו:

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

משתנים שלא קיבלתם לגביהם הרשאת get לא ייכללו. זה כולל משתנים שיש לכם הרשאת list אבל לא הרשאת get.

למידע נוסף על הפקודה gcloud, אפשר לקרוא את מאמרי העזרה של runtime-config variables.

API

ב-API בארכיטקטורת REST, שולחים בקשת GET ל-URI הבא כדי לקבל את הערך של משתנה:

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

where:

  • [PROJECT_ID] הוא מזהה הפרויקט של הבקשה הזו.
  • [CONFIG_NAME] הוא השם של ההגדרה הזו.
  • [VARIABLE_KEY] הוא השם של הבקשה.

אם הפעולה מצליחה, ה-API מחזיר תגובה עם הערך של המשתנה שעבר קידוד בפורמט Base64:

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

כדי לקבל את המחרוזת, צריך לפענח את הערך בעצמכם. מידע נוסף על השיטה זמין במאמרי העזרה בנושא variables().get.

אם רוצים לקבל רשימה של משתנים שיש לכם הרשאת runtimeconfig.variables.get לגביהם, ואת הערכים שלהם, משתמשים בשיטה returnValues. לדוגמה:

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

ה-API מחזיר את כל המשתנים שיש לכם הרשאה לגשת אליהם:

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

באופן דומה, אתם צריכים לפענח את הערך בעצמכם כדי לקבל את המחרוזת.

מידע נוסף על השיטה זמין במאמרי העזרה בנושא variables().list.

מה השלב הבא?