Как перестать воссоздавать сервис внутри облачной фабрики - PullRequest
0 голосов
/ 28 мая 2020

Новое в CF. В моем приложении есть несколько служб, из которых одна конкретная служба должна быть создана только в первый раз (и не создаваться каждый раз).

Я использую следующий код: cf service service-name || cf create-service service-name

Однако он все равно создает службу каждый раз, когда я развертываю приложение. Есть ли лучший подход?

1 Ответ

0 голосов
/ 28 мая 2020

Вы должны запустить cf create-service только один раз. Каждый раз, когда вы запускаете его, он создает новый экземпляр службы.

Вы хотите cf bind-service или использовать manifest.yml, чтобы привязать свои службы к вашему приложению. Если вы поместите имена служб для привязки в manifest.yml, это произойдет автоматически. В противном случае вам нужно будет вручную запускать cf bind-service, когда это необходимо, что действительно только один раз, когда вы изначально pu sh или после внесения изменений в экземпляр службы.

Что касается вашей команды, кажется, что все в порядке . cf service должен вернуть 1, если он не может найти указанное вами имя службы, что должно вызвать вторую часть команды для создания службы. В то же время cf create-service однозначно выйдет из строя, если вы попытаетесь создать сервис с уже существующим именем. Будет написано The service instance name is taken: foo. Таким образом, если вы видите, что экземпляр службы воссоздается при выполнении этой команды, вероятно, что-то удалило его раньше. Возможно, просмотрите любой имеющийся у вас код развертывания и проверьте, случайно ли что-то удаляет этот экземпляр службы. Обычно вы не хотите удалять экземпляр службы, если только вы действительно не закончили с ним. Обычно достаточно просто отвязать услугу.

...