このページでは、Runtime Configurator を使用して変数を設定、取得、更新する方法について説明します。変数は RuntimeConfig リソースに属している Key-Value ペアです。各 Key-Value ペアには、ユーザーが定義したデータが含まれています。変数を作成した後に、その変数のウォッチャーやウェイターを設定できます。
変数および Runtime Configurator サービスの詳細については、Runtime Configurator の基礎知識をご覧ください。
RuntimeConfig リソースを作成する方法の詳細については、RuntimeConfig リソースの作成と削除をご覧ください。
始める前に
- このガイドのコマンドラインの例を使用する場合、gcloud コマンドライン ツールをインストールします。
- このガイドの API の例を使用する場合は、API アクセスを設定します。
- Runtime Configurator の基礎知識を読みます。
- RuntimeConfig リソースの作成と削除を読みます。
変数の作成
変数は、Key-Value ペアです。変数キーは、フラット、または階層化することができます。たとえば、次のすべてが、有効なキーになります。
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]
は、この変数の値です。値を平文として割り当てるか、または 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]
ここで
[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
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 が含まれます。これはキーの平文値または base64 エンコード済みの値のいずれかになります。
{
"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]
は、この変数の値です。値を平文として割り当てるか、または 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 で変数を更新するには:
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]
は、この変数の値です。値を平文として割り当てるか、または 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]
ここで
[VARIABLE_KEY]
は、変数のキーです。例:status
、users/jane-smith/favorite_color
[CONFIG_NAME]
は、この変数の RuntimeConfig リソースの名前です。例:website
gcloud CLI から次のようなレスポンスが返されます。
example-value
ご自分が runtimeconfig.variables.get
権限を持つ変数とその値のリストも取得できます。その場合、list
コマンドを使用し、--values
フラグを指定します。例:
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
のドキュメントをご覧ください。
次のステップ
- Runtime Configurator について学習します。
- 特定の変数を監視します。
- ウェイターを作成します。
- RuntimeConfig リソースの作成と削除を行います。
- v1beta1 リファレンスを参照します。
- Runtime Configurator の割り当てを参照する。