Este documento mostra como vincular um app a uma instância do RabbitMQ não listada no marketplace do Kf (incluindo o click-to-deploy no Marketplace do RabbitMQ com o Spring Cloud Foundry Connector). Isso faz com que as credenciais do RabbitMQ sejam injetadas no app, assim como a vinculação aos serviços sejam provisionadas pelos planos do Marketplace.
Antes de começar
- Verifique se o RabbitMQ está instalado e acessível pelo cluster do Kf.
- Verifique se o RabbitMQ já foi configurado para o app.
- Verifique se você segmentou o Space que está executando o app.
Criar a instância fornecida pelo usuário
Para que o Kf vincule um app à instância do RabbitMQ, a variável de ambiente mínima tem que ser o URI (por exemplo, amqp://username:password@host:port/vhost?query
). Outros pares de chave-valor poderão ser incluídos, se você quiser. A documentação do RabbitMQ pode ajudar na criação de uma string de URI. O exemplo a seguir deve ser suficiente para implantações básicas.
kf cups service-instance-name -p '{"uri":"amqp://username:password@rabbitmq-host:5672"}' -t "rabbitmq"
Vincular o app
Agora que o serviço fornecido pelo usuário foi criado, você pode vincular um app ao nome da instância:
kf bind-service application-name service-instance-name
Reinicie o app para que as alterações entrem em vigor:
kf restart application-name
É possível confirmar as novas variáveis de ambiente que estão sendo fornecidas ao app:
kf vcap-services application-name
Atualizar a instância fornecida pelo usuário
Se houver alterações no ambiente (por exemplo, atualização de senha ou host no URI ou o acréscimo de novos pares de chave-valor) que precisem ser transmitidas para qualquer app vinculado a ele, será possível atualizar a instância fornecida pelo usuário.
kf uups service-instance-name -p '{"uri":"new-uri", "some-new-key": "some-new-value"}'
kf unbind-service application-name service-instance-name
kf bind-service application-name service-instance-name