如何参数化Cloud Foundry服务实例?

时间:2015-01-23 14:41:20

标签: configuration cloudfoundry microservices

我的问题可以归结为这种情况: 我希望有一个单一REST入口点的服务返回一些消息。因为它对我非常有用,我希望它有几个实例,但每个都返回我指定的不同消息。当然,每个服务实例都会绑定到很少的应用程序。所以我想知道如何做到这样的事情。

在我看来,执行此操作的最佳方法是在代理(http://docs.cloudfoundry.org/devguide/services/adding-a-service.html#create)上的创建调用期间传递一些参数。但这样做是不可能的。你知道创建一些服务的多个实例有什么办法可以通过启动期间传递的一些参数而有所不同吗?我希望有完整的CF实例管理(如果崩溃它应该重新启动等),我想避免创建它们作为环境变量传递不同参数的应用程序......

更新:不同消息(和实例)的数量可能非常大,其内容事先未知。这在某种程度上取消了使用服务代理计划的资格(每条消息一个计划)。

2 个答案:

答案 0 :(得分:2)

路线图上的功能是使用户能够指定配置属性以及{create,bind,update}服务实例操作。从平台的角度来看,这些属性是任意且不透明的,平台只会将请求传递给代理。代理将负责验证并返回有意义的面向用户的错误消息。经纪人作者将负责在带外与用户通信支持的属性。

听起来你有一个实现代理API端点的应用程序,它还提供了消息端点-aaS。您的应用如何在单个端点上提供不同的消息?或者您的应用是否会支持每个服务实例的端点?

例如

对于绑定到服务实例001的应用,您的代理会返回凭据“url”:“app.route / instances / 001”

GET / instances / 001 / { “message”:“message001” }

对于绑定到服务实例002的应用,您的代理会返回凭据“url”:“app.route / instances / 002”

GET / instances / 002 / { “message”:“message002” }

在我们实现上述功能之前,我建议代理作者允许用户在配置后直接配置实例。

您的应用可以通过PUT端点支持这一点,用户可以直接卷曲,或使用简单的GUI(see our docs on service dashboard SSO)。

答案 1 :(得分:0)

不确定我是否正确理解您要尝试的内容,但我认为您可能需要考虑为要实施的服务创建一些Service Plans。每个计划都将创建具有不同(预定义)参数的服务实例。您需要为此创建自己的service broker