Configurar serviços fornecidos pelo usuário

Os usuários podem aproveitar os serviços que não estão disponíveis no marketplace criando instâncias de serviço fornecidas por eles. Depois de criadas, as instâncias de serviço fornecidas pelo usuário se comportam como instâncias de serviço criadas por meio do marketplace. A criação, listagem, atualização, a exclusão, a vinculação e a desvinculação de serviços fornecidos pelo usuário são compatíveis com o Kf.

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.

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 as 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 aplicativo tem o mesmo efeito, independentemente do serviço ser 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 criará a instância de serviço my-db fornecida pelo usuário com as credenciais e as tags fornecidas. As credenciais transmitidas para a sinalização -p precisam ser JSON válidos (em linha 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. Novas credenciais e/ou tags transmitidas substituem completamente as existentes. 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 app depois que o usuário desvincular e vincular o serviço novamente ao app. Não é necessário reiniciar o app. 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.