この文書では、Runtime Configurator の機能について概説し、Runtime Configurator に関連する重要な概念について説明します。RuntimeConfig リソースを作成する方法の詳細については、RuntimeConfig リソースの作成と削除をご覧ください。
Runtime Configurator とは
Runtime Configurator 機能を使用すると、データを Google Cloud Platform で Key-Value ペアの階層として定義し、格納することができます。これらの Key-Value ペアを以下のように使用することができます。
- 動的にサービスを構成
- サービス状態の伝達
- データへの変更の通知を送信
- サービスの複数の層の間で情報を共有
たとえば、スタートアップ手順を実行するノードのクラスタがあるシナリオを想像してみてください。起動中、Runtime Configurator にそのステータスを報告するためにノードを構成し、別のアプリケーションで Runtime Configurator へのクエリを実行して、ノードのステータスに基づいた特定のタスクを実行できます。
Runtime Configurator はさらに Watcher サービスと Waiter サービスを提供しています。Watcher サービスは、特定のキーペアを監視し、キーペアの値が変化した際に返ります。一方で Waiter サービスは、特定の終了条件を待ち、その終了条件が満たされた後にレスポンスを返します。
Runtime Configurator は gcloud CLI を使用して、またはスタンドアロン API として使用します。
コンセプト
Config リソース
Config リソースには、変数の階層リストが含まれています。異なる目的ごとに構成を作成できます。たとえば、環境(本番、開発、テスト)、アプリケーションまたはサービス(バックエンド、フロントエンド)の異なる階層、またはエンティティ(アプリケーションのユーザーごとに 1 つの構成)に基づいて構成を分離できます。
変数
変数は RuntimeConfig リソースに属している Key-Value ペアです。変数のキーの形式は次のとおりです。
projects/[project_id]/configs/[CONFIG_ID]/variables/[VARIABLE_NAME]
アプリケーションに情報を通信する、あるいは完成した状態を知らせる、またはデータの変更の通知などを送信するために、変数の値を設定、取得、監視できます。変数は階層構造になっているため、変数キーにはいくつかのレベルがある可能性があります。たとえば、サンプル変数のキーは次のようになります。
webserver-1/users/name webserver-1/users/favorite_color
ウォッチャー
変数の変更、ウォッチャーのタイムアウト、あるいはウォッチャーが削除された場合、変数を監視し、返すため、
watch()
メソッドを使用できます。watch()
機能を使用し、データの変化に基づいてアプリケーションを動的に構成します。ウェイター
特定のパス接頭辞を監視するために Waiter リソースを作成した場合、接頭辞の下の変数が特定の数に達すると、ウェイターが返されます。これは基数条件と呼びます。
たとえば、パス
/foo
の条件を設定し、パスの数が 2 に設定された場合、次のセットアップが条件を満たしています。/foo/variable1 = "value1"
/foo/variable2 = "value2"
/bar/variable3 = "value3" # Not /foo path
ウェイターには、失敗と成功両方の条件が設定可能です。
ウェイターの作成が完了すると、サービスは完了のためにポーリングしたオペレーション オブジェクトの名前を返します。次のいずれかが発生すると、オペレーションは完了です。
success
条件を満たしている。failure
条件を満たしている。- ウェイターが、最初のリクエストで指定されたタイムアウト期限に達した。
ウェイターを使用することは、特定数のサービスが実行されるまでデプロイを一時停止するようなスタートアップ シナリオにおいて最適でしょう。
次のステップ
- RuntimeConfig リソースを作成します。
- データの設定と取得を行います。
- 特定の変数を監視します。
- ウェイターを作成します。
- v1beta1 リファレンスを参照します。
- Runtime Configurator の割り当てを参照する。