É possível criar instâncias de serviço fornecidas pelo usuário para utilizar serviços que não estão disponíveis no marketplace. Depois da criação, as instâncias de serviço fornecidas pelo usuário se comportam como as instâncias de serviço criadas no marketplace. O Kf permite a criação, listagem, atualização, exclusão, vinculação e desvinculação de serviços fornecidos pelo usuário.
Criar uma instância de serviço fornecida pelo usuário
O alias de kf create-user-provided-service é kf cups.
O nome dado a um serviço fornecido pelo usuário precisa ser exclusivo em todas as instâncias de serviço de um espaço, incluindo os criados por um agente de serviços.
Como enviar credenciais de serviço para um aplicativo
Uma instância de serviço fornecida pelo usuário pode ser usada para fornecer credenciais a um aplicativo. Por exemplo, um administrador de banco de dados pode ter um conjunto de credenciais para um banco de dados gerenciado fora do Kf, e essas credenciais incluem o URL, a porta, o nome de usuário e a senha usados para se conectar ao banco de dados.
O administrador pode criar um serviço fornecido pelo usuário com essas credenciais, e o desenvolvedor pode vincular a instância de serviço ao aplicativo. Isso permite que as credenciais sejam compartilhadas sem sair da plataforma. A vinculação de uma instância de serviço a um app tem o mesmo efeito, e não importa se o serviço é fornecido pelo usuário ou pelo marketplace.
O aplicativo é configurado com as credenciais fornecidas pelo usuário, e a variável de ambiente do ambiente de execução do aplicativo VCAP_SERVICES é preenchida com informações sobre todos os serviços vinculados a esse aplicativo.
Um serviço fornecido pelo usuário pode ser criado com credenciais e/ou uma lista de tags.
kf cups my-db -p '{"username":"admin", "password":"test123", "some-int-val": 1, "some-bool": true}' -t "comma, separated, tags"Isso cria a instância de serviço fornecida pelo usuário my-db com as credenciais e as tags fornecidas. As credenciais transmitidas à flag -p precisam estar em um formato JSON válido, seja inline ou carregadas de um caminho de arquivo.
Para entregar as credenciais a um ou mais aplicativos, o usuário pode executar kf bind-service.
Suponha que tenhamos um aplicativo com um serviço vinculado, o serviço fornecido pelo usuário my-db definido acima. A variável de ambiente VCAP_SERVICES para esse aplicativo 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
}
}
]
}
Atualizar uma instância de serviço fornecida pelo usuário
O alias de kf update-user-provided-service é kf uups.
Um serviço fornecido pelo usuário pode ser atualizado com o comando uups. As novas credenciais e/ou tags transmitidas substituem completamente as atuais. Por exemplo, se o usuário criou o serviço fornecido pelo usuário my-db acima, chamado kf bind-service, para vincular o serviço a um aplicativo, execute o comando.
kf uups my-db -p '{"username":"admin", "password":"new-pw", "new-key": "new-val"}'As credenciais atualizadas só serão refletidas no aplicativo depois que o usuário desvincular e vincular novamente o serviço a ele. Não é necessário reiniciar o aplicativo. A variável de ambiente VCAP_SERVICES 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 tags permanecem inalteradas, porque não foram especificadas no comando de atualização.