Layanan yang Disediakan Pengguna

Pengguna dapat memanfaatkan layanan yang tidak tersedia di marketplace dengan membuat instance layanan yang disediakan pengguna. Setelah dibuat, instance layanan yang disediakan pengguna akan berperilaku seperti instance layanan yang dibuat melalui marketplace. Membuat, mencantumkan, memperbarui, menghapus, mengikat, dan membatalkan pengikatan layanan yang disediakan pengguna semuanya didukung di Kf.

Membuat instance layanan yang disediakan pengguna

Alias untuk kf create-user-provided-service adalah kf cups.

Nama yang diberikan ke layanan yang disediakan pengguna harus unik di semua instance layanan di Ruang, termasuk layanan yang dibuat melalui broker layanan.

Mengirimkan kredensial layanan ke Aplikasi

Instance layanan yang disediakan pengguna dapat digunakan untuk mengirimkan kredensial ke Aplikasi. Misalnya, admin database dapat memiliki kumpulan kredensial untuk database yang ada yang dikelola di luar Kf, dan kredensial ini mencakup URL, port, nama pengguna, dan sandi yang digunakan untuk terhubung ke database.

Admin dapat membuat layanan yang disediakan pengguna dengan kredensial dan developer dapat mengikat instance layanan ke Aplikasi. Hal ini memungkinkan kredensial dibagikan tanpa harus keluar dari platform. Mengikat instance layanan ke Aplikasi memiliki efek yang sama, terlepas dari apakah layanan tersebut adalah layanan yang disediakan pengguna atau layanan marketplace.

Aplikasi dikonfigurasi dengan kredensial yang disediakan oleh pengguna, dan variabel lingkungan runtime Aplikasi VCAP_SERVICES diisi dengan informasi tentang semua layanan yang terikat ke Aplikasi tersebut.

Layanan yang disediakan pengguna dapat dibuat dengan kredensial dan/atau daftar tag.

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

Tindakan ini akan membuat instance layanan my-db yang disediakan pengguna dengan kredensial dan tag yang diberikan. Kredensial yang diteruskan ke tanda -p harus berupa JSON yang valid (baik inline maupun dimuat dari jalur file).

Untuk mengirimkan kredensial ke satu atau beberapa Aplikasi, pengguna dapat menjalankan kf bind-service.

Misalkan kita memiliki Aplikasi dengan satu layanan terikat, layanan yang disediakan pengguna my-db yang ditentukan di atas. Variabel lingkungan VCAP_SERVICES untuk Aplikasi tersebut akan memiliki konten berikut:

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

Memperbarui instance layanan yang disediakan pengguna

Alias untuk kf update-user-provided-service adalah kf uups.

Layanan yang disediakan pengguna dapat diperbarui dengan perintah uups. Kredensial dan/atau tag baru yang diteruskan akan sepenuhnya menimpa kredensial dan/atau tag yang ada. Misalnya, jika pengguna membuat layanan yang disediakan pengguna my-db di atas, yang disebut kf bind-service untuk mengikat layanan ke Aplikasi, lalu menjalankan perintah.

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

Kredensial yang diperbarui hanya akan ditampilkan di Aplikasi setelah pengguna membatalkan tautan dan menautkan ulang layanan ke Aplikasi. Tidak perlu memulai ulang atau melakukan staging ulang Aplikasi. Variabel lingkungan VCAP_SERVICES yang diperbarui akan memiliki konten berikut:

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

Kredensial baru akan menimpa kredensial lama, dan tag tidak berubah karena tidak ditentukan dalam perintah update.