本頁面說明如何使用 Runtime Configurator 來設定、取得和更新變數。變數是 RuntimeConfig 資源中的鍵/值組合,每個鍵/值組合都包含您定義的資料。建立變數之後,您可以為變數設定監看程式或等候程序。
如要進一步瞭解變數及執行階段配置器服務,請參閱執行階段配置器基礎知識說明文件。
如要瞭解如何建立 RuntimeConfig 資源,請參閱建立和刪除 RuntimeConfig 資源一文。
事前準備
- 如要使用本指南提供的指令列範例,請安裝 `gcloud` 指令列工具。
- 如要使用本指南提供的 API 範例,請設定 API 存取權。
- 參閱 Runtime Configurator 基礎知識一文。
- 參閱建立和刪除 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]
其中:
[NAME]
是變數的資源名稱 (由系統任意決定),並非變數本身的名稱。[CONFIG_NAME]
是這項要求的 Config 資源。[VARIABLE_KEY]
是變數的鍵。舉例來說,status
和users/jane-smith/favorite_color
是有效鍵。變數鍵可以包含/
。數字、字母、破折號和斜線,名稱長度上限為 256 個字元。[VARIABLE_VALUE]
是變數的值,視您要將值指定為明文字串或是採用 Based64 編碼的字串而定,請選擇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]
其中:
[VARIABLE_KEY]
是變數的鍵,舉例來說,status
和users/jane-smith/favorite_color
是有效鍵。變數鍵可以包含/
。數字、字母、破折號和斜線,名稱長度上限為 256 個字元。[VARIABLE_VALUE]
是變數的值。您可以將值指定為明文字串或是採用 Based64 編碼的字串。如要將值指定為明文,請提供--is-text
旗標,否則 Google Cloud CLI 會採用 Based64 編碼方法來編碼值。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
gcloud CLI 會傳回類似下方的回應:
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
在 REST API 中,針對以下 URI 發出 POST
要求即可建立新變數:
https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables
其中 [PROJECT_ID]
是要求的專案 ID。此要求酬載包含 RuntimeConfig 資源的 URI,以及鍵的明文值或是採用 Based64 編碼的值:
{
"name": "projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]"
"[value | text]": "[VARIABLE_VALUE]" # Choose either 'value' or 'text' but not both
}
其中:
[PROJECT_ID]
是這項要求的專案 ID。[CONFIG_NAME]
是設定的名稱。[VARIABLE_KEY]
是變數的鍵,例如status
和users/jane-smith/favorite_color
。變數鍵可以包含/
。數字、字母、破折號和斜線,名稱長度上限為 256 個字元。[VARIABLE_VALUE]
是變數的值,視您要將值指定為明文字串或是採用 Based64 編碼的字串而定,請選擇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 變數的步驟如下:
gcloud
使用與建立變數一文中所述的相同程序來更新變數。
API
在 REST API 中,針對以下 URI 提出 PUT
要求即可更新變數:
https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]
其中:
[PROJECT_ID]
是這項要求的專案 ID。[CONFIG_NAME]
是設定的名稱。[VARIABLE_VALUE]
是變數的值,屬於採用 Base64 編碼的字串。
這個要求的酬載必須如下:
{
"[value | text]": "[VARIABLE_VALUE]" # Choose either 'value' or 'text' but not both
}
在上面的指令中,[VARIABLE_VALUE]
是變數的值。視您要將值指定為明文字串或是採用 Based64 編碼的字串而定,請選擇 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]
其中:
[VARIABLE_KEY]
是變數的鍵,例如:status
、users/jane-smith/favorite_color
。[CONFIG_NAME]
是變數的 RuntimeConfig 資源名稱,例如:website
。gcloud CLI 會傳回類似下方的回應:
example-value
您也可以使用 list
指令並加上 --values
旗標,取得您擁有 runtimeconfig.variables.get
權限的變數清單及變數的值。例如:
gcloud beta runtime-config configs variables list --config-name example-config --values
gcloud CLI 會傳回類似下方的清單:
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
在 REST API 中,針對以下 URI 提出 GET
要求即可取得變數的值:
https://runtimeconfig.googleapis.com/v1beta1/projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_KEY]
其中:
[PROJECT_ID]
是這項要求的專案 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
說明文件。
後續步驟
- 瞭解執行階段配置器。
- 監看特定變數。
- 建立等候程序。
- 建立及刪除 RuntimeConfig 資源。
- 參閱 v1beta1 參考資料。
- 參閱 Runtime Configurator 的配額一文。