Version 2.3

Von Nutzern bereitgestellte Dienste

Nutzer können Dienste verwenden, die nicht auf dem Marktplatz verfügbar sind, indem sie von Nutzern bereitgestellte Dienstinstanzen erstellen. Von Nutzern bereitgestellte Dienstinstanzen verhalten sich wie Dienstinstanzen, die über den Marketplace erstellt werden. Das Erstellen, Auflisten, Aktualisieren, Löschen, Binden und Aufheben von Bindungen durch Nutzer, die von Nutzern bereitgestellt werden, wird in Kf unterstützt.

Vom Nutzer bereitgestellte Dienstinstanz erstellen

Der Alias für kf create-user-provided-service ist kf cups.

Der Name eines vom Nutzer bereitgestellten Dienstes muss für alle Dienstinstanzen in einem Bereich eindeutig sein, einschließlich der Dienste, die über einen Service Broker erstellt wurden.

Stellt Dienstanmeldedaten für eine Anwendung bereit

Mit einer vom Nutzer bereitgestellten Dienstinstanz können Anmeldedaten an eine Anwendung gesendet werden. Ein Datenbankadministrator kann beispielsweise eine Reihe von Anmeldedaten für eine außerhalb von Kf verwaltete Datenbank haben. Diese Anmeldedaten enthalten die URL, den Port, den Nutzernamen und das Passwort, die zum Herstellen einer Verbindung zur Datenbank verwendet werden.

Der Administrator kann einen vom Nutzer bereitgestellten Dienst mit den Anmeldedaten erstellen und der Entwickler kann die Serviceinstanz an die Anwendung binden. So können die Anmeldedaten freigegeben werden, ohne die Plattform zu verlassen. Das Binden einer Dienstinstanz an eine Anwendung hat den gleichen Effekt, unabhängig davon, ob es sich um einen nutzerseitig erstellten Dienst oder einen Marktplatz handelt.

Die Anwendung wird mit den vom Nutzer bereitgestellten Anmeldedaten konfiguriert und die Anwendungs-Laufzeitumgebungsvariable VCAP_SERVICES wird mit Informationen zu allen an diese Anwendung gebundenen Diensten gefüllt.

Ein vom Nutzer bereitgestellter Dienst kann mit Anmeldedaten und/oder einer Liste von Tags erstellt werden.

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

Dadurch wird die vom Nutzer bereitgestellte Dienstinstanz my-db mit den angegebenen Anmeldedaten und Tags erstellt. Die an das Flag -p übergebenen Anmeldedaten müssen gültige JSON-Daten sein, entweder inline oder aus einem Dateipfad.

Der Nutzer kann kf bind-service ausführen, um die Anmeldedaten an eine oder mehrere Anwendungen zu senden.

Angenommen, wir haben eine Anwendung mit einem gebundenen Dienst, dem vom Nutzer bereitgestellten Dienst my-db wie oben. Die Umgebungsvariable VCAP_SERVICES für diese Anwendung hat folgenden Inhalt:

{
  "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
      }
    }
  ]
}

Aktualisiert eine vom Nutzer bereitgestellte Dienstinstanz

Der Alias für kf update-user-provided-service ist kf uups.

Ein vom Nutzer bereitgestellter Dienst kann mit dem Befehl uups aktualisiert werden. Neue Anmeldedaten und/oder Tags, die vollständig übergeben werden, überschreiben vorhandene. Wenn der Nutzer beispielsweise den von Nutzern bereitgestellten Dienst my-db mit dem Namen kf bind-service erstellt hat, um den Dienst an eine Anwendung zu binden, und führt dann den folgenden Befehl aus.

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

Die aktualisierten Anmeldedaten werden nur dann in der Anwendung widergespiegelt, wenn der Nutzer die Bindung der Dienste an die Anwendung aufhebt und sie wieder an die Anwendung bindet. Ein Neustart der Anwendung ist nicht erforderlich. Die aktualisierte Umgebungsvariable VCAP_SERVICES hat folgenden Inhalt:

{
  "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"
      }
    }
  ]
}

Die alten Anmeldedaten werden durch die neuen Anmeldedaten überschrieben. Die Tags bleiben unverändert, da sie nicht im Befehl "update" angegeben wurden.