Cloud 云铸造中的用户提供服务

Cloud 云铸造中的用户提供服务,cloud,cloud-foundry,Cloud,Cloud Foundry,我阅读了云铸造公司关于用户提供的服务的文档,但不确定我是否得到了它以及如何真正使用它 > 1. my question is what is the use case for it? (据我所知,该服务在市场上不可用…) 我的问题是它的用例是什么 这基本上是一个包罗万象的问题。它旨在处理您环境中服务代理未涵盖的任何内容。此外,它还为您向应用程序传递信息提供了额外的灵活性 2.建议何时使用,何时不使用 如果您有可用的服务代理,请使用它。服务代理更易于CF开发人员使用,它们还可以提供附加元数

我阅读了云铸造公司关于用户提供的服务的文档,但不确定我是否得到了它以及如何真正使用它

> 1. my question is what is the use case for it?
(据我所知,该服务在市场上不可用…)

  • 我的问题是它的用例是什么
  • 这基本上是一个包罗万象的问题。它旨在处理您环境中服务代理未涵盖的任何内容。此外,它还为您向应用程序传递信息提供了额外的灵活性

    2.建议何时使用,何时不使用

    如果您有可用的服务代理,请使用它。服务代理更易于CF开发人员使用,它们还可以提供附加元数据,如用户提供的服务无法设置的标签和标记。这种额外的元数据使应用程序更容易检测和处理服务

    例如:如果您的应用程序正在查找绑定的MySQL服务(即,在所有绑定的服务中搜索特定类型的服务),您通常会查看标签和标签,以通用方式找到它。如果绑定了用户提供的服务,则无法获得此信息,因此必须查看服务数据(即是否有URL,它看起来像什么,等等)或模式匹配名称以进行区分

  • 有一些真实世界的例子,我可以用它来创建,我的意思是一些E2E指南
  • 使用用户提供的服务最简单也是最常见的情况是绑定没有可用service broker的服务。这可能是您创建的自定义服务,也可能只是CF安装/提供程序不支持的服务

    因为用户提供的服务是将数据绑定到应用程序的通用机制,所以您也可以将其用于其他用途

    例:

  • 服务实例的作用域为组织和空间。如果要将服务从一个组织和空间共享到另一个组织和空间,可以在第二个组织和空间中创建用户提供的服务,并从第一个组织和空间传入凭据

  • 将应用程序转换为服务。也许你在PCF上部署了一个微服务作为应用程序。如果您希望其他应用程序使用您的微服务,您可以创建用户提供的服务,并将微服务的URL传递给消费应用程序。当然,您也可以用其他方法来实现,但这是在CF上实现它的一种非常简单的方法

  • 将任何数据传递到多个应用程序。假设您有一个密钥或公用设置,希望将其传递给已部署在CF上的10个应用程序。您可以通过为所有10个应用程序设置相同的env变量来实现这一点,也可以将数据放入服务并将服务绑定到所有10个应用程序。这使得更改数据更容易(更新一个服务vs 10个应用程序),而且扩展性更好(想想更新100个应用程序的环境变量)


  • 我确信还有其他用例。关键是它们是CF的一个灵活部分,您可以使用它们在应用程序之间共享数据。

    使用CLI在Pivotal Cloud Foundry中创建用户提供的服务

    cf cups oracle-db -p "url, username, password"
    url> jdbc:oracle:thin:@database_host_name:port/sid    
    username> admin
    password> admin
    Creating user provided service oracle-db in org
    OK
    
    在spring引导应用程序中访问服务

     datasource:
        url: ${vcap.services.oracle-db.credentials.url}
        username: ${vcap.services.oracle-db.credentials.username}
        password: ${vcap.services.oracle-db.credentials.password}
    
    还要将服务名称放在清单文件中

    services: 
       - oracle-db
    
    如果您需要完整的演示spring引导应用程序,请访问下面的链接

    非常感谢+1,一个问题,假设我想将其用作用户提供的服务,例如公开用户实体,我应该如何做?你能举个例子吗?谢谢我指的是这个api,例如。。。要公开用户实体…我不确定是否理解您的问题。但是对于像您链接到的web服务,您通常会执行类似于
    cf cups-p“url,user,pass”服务名称的操作。然后,您可以向API和凭据提供URL。其他服务可能具有令牌或访问密钥&密钥。你可以这样做。谢谢Daniel,但正如你所看到的,这个api没有任何用户和密码,在这种情况下我应该怎么做?你是说这样的吗?cf cups-p“,?,?”我的服务,关于用户和密码你能不能请elborate 2。如果有几个应用程序需要使用这个API,那么使用像这样的东西作为cups有意义吗?我已经尝试过为我的dockerised Django应用程序使用相同的方法。但是${vcap.service…}变量从未设置,我的应用程序失败。也没有故障排除选项。
    
    services: 
       - oracle-db