データを設定し取得する

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

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

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

始める前に

変数の作成

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

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

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

  • users
  • users/jane_smith

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

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

Deployment Manager

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

runtimeconfig.v1beta1.variable

変数のプロパティで、変数の namelocation、および 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] は、この変数のキーです。たとえば statususers/jane-smith/favorite_color が有効なキーです。変数のキーには / を含めることができます。変数のキーには数字、文字、ダッシュ、スラッシュを含めることができ、名前の最大長は 256 文字です。
  • [VARIABLE_VALUE] は、この変数の値です。値を平文値にするか based64 エンコード済みの文字列にするかによって、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] は、この変数の値です。平文値にするか、based64 エンコード済み文字列にすることができます。平文値を指定する場合は --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]

ここでは、[PROJECT_ID] がこのリクエストのプロジェクト ID です。リクエストのペイロードには RuntimeConfig の URL が含まれます。これはキーの平文値または 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] は、この変数の値です。値を平文値にするか 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 で変数を更新するには:

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

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Deployment Manager のドキュメント