本文档简要介绍了 Runtime Configurator 功能并描述了与 Runtime Configurator 相关的关键概念。要了解如何创建 RuntimeConfig 资源,请阅读创建和删除 RuntimeConfig 资源。
什么是 Runtime Configurator?
借助 Runtime Configurator 功能,您可以在 Google Cloud Platform 中以键值对层次结构的形式定义并存储数据。您可以这些键值对为方式进行:
- 动态配置服务
- 沟通服务状态
- 发送数据更改通知
- 在多级服务间共享信息
例如,设想一个场景,您有一个运行启动过程的集群节点。在启动时,您可以将节点配置为向 Runtime Configurator 报告状态,然后让另一个应用询问 Runtime Configurator 并根据节点的状态运行特定任务。
Runtime Configurator 还提供 Watcher 服务和 Waiter 服务。Watcher 服务监视特定键对,并在键对的值变更时返回结果,而 Waiter 服务等待特定的结束条件,并在满足结束条件后返回响应。
您可以通过 gcloud CLI 或作为独立 API 使用 Runtime Configurator。
概念
配置资源
Config 资源包含变量的层次结构列表。您可以针对不同目的创建不同的配置。例如,您可以根据环境(prod、dev、test),基于不同等级的应用程序或服务(后端、前端)或基于实体(应用程序的每个用户一个配置)来分离配置。
变量
变量是属于 RuntimeConfig 资源的键值对。变量键采用以下格式:
projects/[project_id]/configs/[CONFIG_ID]/variables/[VARIABLE_NAME]
您可以设置、获取和监视变量值,以便将信息传达给应用、发出完成状态信号以及发送数据更改通知等。变量是分层的,因此您的变量键应有多个级别。例如,示例变量键可以是:
webserver-1/users/name webserver-1/users/favorite_color
Watcher
您可以使用
watch()
方法监视变量,并在变量更改、Watcher 超时或 Watcher 被删除时返回结果。使用watch()
功能可根据数据更改动态配置应用。Waiter
如果您要创建 Waiter 资源以监视特定路径前缀,则前缀下的变量数达到特定量后,waiter 就会返回。这称为基数条件。
例如,如果为路径
/foo
设置条件且路径数设置为 2,则以下设置将满足以下条件:/foo/variable1 = "value1"
/foo/variable2 = "value2"
/bar/variable3 = "value3" # Not /foo path
您可以为 waiter 设置失败和成功条件。
创建 Waiter 后,该服务将返回您轮询完成的操作对象。发生以下任一情况时,操作完成:
- 满足
success
条件。 - 满足
failure
条件。 - Waiter 达到了初始请求中指定的超时截止时间。
使用 waiter 极为适合启动方案,您可能需要暂停部署,直到运行一定数量的服务。