使用者提供的服務

使用者可以建立使用者提供的服務例項,利用市集中未提供的服務。建立完成後,使用者提供的服務執行個體會像透過市集建立的服務執行個體一樣運作。Kf 支援建立、列出、更新、刪除、繫結及解除繫結使用者提供的服務。

建立使用者提供的服務執行個體

kf create-user-provided-service 的別名為 kf cups

為使用者提供的服務所指定的名稱,在工作區的所有服務例項中均不得重複,包括透過服務仲介建立的服務。

將服務憑證提供給應用程式

使用者提供的服務例項可用於將憑證提供給應用程式。舉例來說,資料庫管理員可以為 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"
      }
    }
  ]
}

新的憑證會覆寫舊憑證,而標記不會變更,因為標記並未在更新指令中指定。