Os utilizadores podem tirar partido de serviços que não estão disponíveis no mercado criando instâncias de serviços fornecidas pelos utilizadores. Depois de criadas, as instâncias de serviços fornecidas pelo utilizador comportam-se como instâncias de serviços criadas através do mercado. A criação, a listagem, a atualização, a eliminação, a associação e a desassociação de serviços fornecidos pelo utilizador são suportadas no Kf.
Crie uma instância de serviço fornecida pelo utilizador
O alias de kf create-user-provided-service
é kf cups
.
O nome atribuído a um serviço fornecido pelo utilizador tem de ser exclusivo em todas as instâncias de serviço num espaço, incluindo os serviços criados através de um agente de serviços.
Forneça credenciais de serviço a uma app
Pode usar uma instância de serviço fornecida pelo utilizador para fornecer credenciais a uma app. Por exemplo, um administrador de base de dados pode ter um conjunto de credenciais para uma base de dados existente gerida fora do Kf, e estas credenciais incluem o URL, a porta, o nome de utilizador e a palavra-passe usados para estabelecer ligação à base de dados.
O administrador pode criar um serviço fornecido pelo utilizador com as credenciais e o programador pode associar a instância do serviço à app. Isto permite que as credenciais sejam partilhadas sem nunca sair da plataforma. A associação de uma instância de serviço a uma app tem o mesmo efeito, independentemente de o serviço ser um serviço fornecido pelo utilizador ou um serviço de mercado.
A app está configurada com as credenciais fornecidas pelo utilizador, e a variável de ambiente de tempo de execução da app VCAP_SERVICES
é preenchida com informações sobre todos os serviços associados a essa app.
Pode criar um serviço fornecido pelo utilizador com credenciais e/ou uma lista de etiquetas.
kf cups my-db -p '{"username":"admin", "password":"test123", "some-int-val": 1, "some-bool": true}' -t "comma, separated, tags"
Isto cria a instância de serviço fornecida pelo utilizador my-db
com as credenciais e as etiquetas fornecidas. As credenciais transmitidas ao parâmetro -p
têm de ser um JSON válido (incorporado ou carregado a partir de um caminho de ficheiro).
Para fornecer as credenciais a uma ou mais apps, o utilizador pode executar kf bind-service
.
Suponhamos que temos uma app com um serviço associado, o serviço fornecido pelo utilizador my-db
definido acima. A variável de ambiente VCAP_SERVICES
para essa app vai ter o seguinte conteúdo:
{
"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
}
}
]
}
Atualize uma instância de serviço fornecida pelo utilizador
O alias de kf update-user-provided-service
é kf uups
.
Um serviço fornecido pelo utilizador pode ser atualizado com o comando uups
. As novas credenciais e/ou etiquetas transmitidas substituem completamente as existentes. Por exemplo, se o utilizador criou o serviço fornecido pelo utilizador my-db
acima, denominado kf bind-service
, para associar o serviço a uma app e, em seguida, executou o comando.
kf uups my-db -p '{"username":"admin", "password":"new-pw", "new-key": "new-val"}'
As credenciais atualizadas só são refletidas na app depois de o utilizador desassociar e voltar a associar o serviço à app. Não é necessário reiniciar nem voltar a implementar a app. A VCAP_SERVICES
variável de ambiente atualizada terá o seguinte conteúdo:
{
"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"
}
}
]
}
As novas credenciais substituem as antigas, e as etiquetas permanecem inalteradas porque não foram especificadas no comando de atualização.