用户提供的服务

用户可以通过创建用户提供的服务实例来利用市场中未提供的服务。创建后,用户提供的服务实例的行为类似于通过市场创建的服务实例。Kf 支持创建、列出、更新、删除、绑定和取消绑定用户提供的服务。

创建用户提供的服务实例

kf create-user-provided-service 的别名为 kf cups

赋予用户提供的服务的名称在空间中的所有服务实例(包括通过 Service Broker 创建的服务)中必须具有唯一性。

将服务凭据传送到应用

用户提供的服务实例可用于向应用传送凭据。例如,数据库管理员可以为在 Kf 外管理的现有数据库设置一组凭据,这些凭据包括用于连接到数据库的网址、端口、用户名和密码。

管理员可以使用凭据创建用户提供的服务,而开发者可以将服务实例绑定到应用。这样,无需离开平台即可共享凭据。将服务实例绑定到应用后,无论服务是用户提供的服务还是市场服务,会产生相同的效果。

应用可使用用户提供的凭据进行配置,应用运行时环境变量 VCAP_SERVICES 会填充该应用的所有绑定服务的相关信息。

可以使用凭据和/或标记列表创建用户提供的服务。

kf cups my-db -p '{"username":"admin", "password":"test123", "some-int-val": 1, "some-bool": true}' -t "comma, separated, tags"

这将使用提供的凭据和标记创建用户提供的服务实例 my-db。传递给 -p 标志的凭据必须是有效的 JSON(内嵌或从文件路径加载)。

要向一个或多个应用传送凭据,用户可以运行 kf bind-service

假设我们有一个具有一项绑定服务的应用,该服务是上面定义的用户提供的服务 my-db。该应用的 VCAP_SERVICES 环境变量将包含以下内容:

{
  "user-provided": [
    {
      "name": "my-db",
      "instance_name": "my-db",
      "label": "user-provided",
      "tags": [
        "comma",
        "separated",
        "tags"
      ],
      "credentials": {
        "username": "admin",
        "password": "test123",
        "some-int-val": 1,
        "some-bool": true
      }
    }
  ]
}

更新用户提供的服务实例

kf update-user-provided-service 的别名为 kf uups

您可以使用 uups 命令更新用户提供的服务。新传入的新凭据和/或标记会完全覆盖现有凭据和/或标记。例如,如果用户创建了上述用户提供的服务 my-db(名为 kf bind-service),用于将服务绑定到应用,然后运行以下命令。

kf uups my-db -p '{"username":"admin", "password":"new-pw", "new-key": "new-val"}'

只有在用户取消绑定服务并将其重新绑定到应用后,更新后的凭据才会反映在应用上。无需重启或重新暂存应用。更新后的 VCAP_SERVICES 环境变量将包含以下内容:

{
  "user-provided": [
    {
      "name": "my-db",
      "instance_name": "my-db",
      "label": "user-provided",
      "tags": [
        "comma",
        "separated",
        "tags"
      ],
      "credentials": {
        "username": "admin",
        "password": "new-pw",
        "new-key": "new-val"
      }
    }
  ]
}

新凭据会覆盖旧凭据,并且未更改标记,因为未在更新命令中指定它们。