データの設定と取得

このページでは、Runtime Configurator を使用して変数を設定、取得、更新する方法について説明します。変数は RuntimeConfig リソースに属している Key-Value ペアです。各 Key-Value ペアには、ユーザーが定義したデータが含まれています。変数を作成した後に、その変数のウォッチャーウェイターを設定できます。

変数および Runtime Configurator サービスの詳細については、Runtime Configurator の基礎知識をご覧ください。

RuntimeConfig リソースを作成する方法の詳細については、RuntimeConfig リソースの作成と削除をご覧ください。

始める前に

変数の作成

変数は、Key-Value ペアです。変数キーは、フラット、または階層化することができます。たとえば、次のすべてが、有効なキーになります。

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

リーフノード キーのみが値を持つことができます。上記の例では、以下に値を代入することはできません。

  • users
  • users/jane-smith

これは、両方のキーが下に他のキーを含むためです。

変数を作成するには、Deployment Manager、gcloud コマンドライン ツール、API を使用します。

Deployment Manager

Deployment Manager で変数を作成するには、変数のタイプを指定します。

runtimeconfig.v1beta1.variable

変数のプロパティで、変数の namelocationvalue を設定します。

- 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] は、この変数のキーです。たとえば、statususers/jane-smith/favorite_color は有効なキーです。変数のキーには / を含めることができます。また、数字、文字、ダッシュ、スラッシュを含めることができ、名前の最大長は 256 文字です。
  • [VARIABLE_VALUE] は、この変数の値です。値を平文として割り当てるか、または base64 エンコード済み文字列として割り当てるかに応じて、value プロパティまたは text プロパティを選択します。
    • value: 値を base64 エンコード済み文字列として指定するには、value プロパティを使用します。
    • text: 平文の文字列を提供する場合は、text プロパティを使用します。文字列は有効な UTF-8 でなければなりません。

gcloud

gcloud コマンドライン ツールで変数を作成するには、runtime-config configs variables set コマンドを使用します。

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

ここで

  • [VARIABLE_KEY] は、変数のキーです。たとえば、statususers/jane-smith/favorite_color は有効なキーです。変数のキーには / を含めることができます。また、数字、文字、ダッシュ、スラッシュを含めることができ、名前の最大長は 256 文字です。
  • [VARIABLE_VALUE] は、この変数の値です。平文値にするか、base64 エンコード済み文字列にできます。平文値を指定する場合は --is-text フラグを指定してください。フラグがない場合、gcloud コマンドライン ツールによって値が 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 ツールは次のようなレスポンスを返します。

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] は、変数のキーです。たとえば、statususers/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

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

gcloud コマンドライン ツールで変数を作成するには、runtime-config configs variables get-value コマンドを使用します。

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

ここで

  • [VARIABLE_KEY] は、変数のキーです。例: statususers/jane-smith/favorite_color
  • [CONFIG_NAME] は、この変数の RuntimeConfig リソースの名前です。例: website

    gcloud ツールは次のようなレスポンスを返します。

    example-value

ご自分が runtimeconfig.variables.get 権限を持つ変数とその値のリストも取得できます。その場合、list コマンドを使用し、--values フラグを指定します。例:

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

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

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 のドキュメントをご覧ください。

次のステップ