我们是否真的需要在PCF中绑定Oracle服务,难道我们不能仅使用服务中提到的凭证吗?

时间:2020-07-16 11:53:31

标签: pivotal-cloud-foundry

我有一个疑问,如果我仅使用PCF提供的Oracle / MySQL服务而不绑定它,会有什么区别?它将带来什么不同。无论如何,我都可以使用凭据访问数据库

1 个答案:

答案 0 :(得分:0)

我想到了两个区别:

  1. 通过Cloud Foundry市场创建服务时,这将为该服务创建支持资源,但是在大多数情况下,它不会创建凭据。在大多数情况下,对于大多数服务代理而言,将服务绑定到您的应用程序的行为实际上将为您创建服务凭证。再次与大多数代理解除绑定时,服务凭证将被破坏。这样可以轻松地重新生成服务凭证,只需取消绑定/重新绑定服务并重新启动应用程序即可。最终结果是,如果您不绑定,就不会有凭据。

  2. 大多数人不希望在实际应用程序中包含凭据(有关原因的详细信息,请参见Mysql Python Connector Docs)。他们希望能够在应用程序外部提供配置。在Cloud Foundry上,这通常意味着绑定服务。

话虽如此,您想如何为您的应用程序提供凭据?

可以使用服务绑定来尝试简化开发人员的生活,但是您不必使用它们。如果您想通过其他方式传递配置,例如通过环境变量,配置文件或使用配置服务(Spring Cloud Config Server或Vault),这些也是不错的选择。

如果您不想将服务绑定到您的应用程序,那么您唯一需要做的就是创建一个服务密钥。服务密钥就像绑定,但不与应用程序关联。它还将生成一组唯一的凭据。然后,您可以从服务密钥中获取凭据,并以最适合您的方式将其提供给您的应用。

例如:

<ul class="three">
  <li class="unordered-list A">A</li>
  <span class="first row"></span>
  <li class="unordered-list B">B</li>
  <li class="unordered-list C">C</li>
  <li class="unordered-list D">D</li>
  <li class="unordered-list E">E</li>
  <span class="second row"></span>
  <li class="unordered-list B-1">B-1</li>
  <li class="unordered-list B-2">B-2</li>
  <li class="unordered-list B-3">B-3</li>
</ul>

第一个命令创建服务密钥,第二个命令显示其凭据。