Cloud foundry 从CloudFoundry中的另一个应用程序以编程方式创建和推送应用程序

Cloud foundry 从CloudFoundry中的另一个应用程序以编程方式创建和推送应用程序,cloud-foundry,Cloud Foundry,是否可以从已经在Cloud Foundry中运行的其他应用程序创建应用程序并将其推送到Cloud Foundry中?基本上,我需要从应用程序内部执行“cf推送” 我看到了一个我可以使用的CloudFoundry API()。谁能给我举个例子吗;是的,这是可能的。向CF cli提供Shell 要做到这一点,最简单的方法是只在应用程序中包含CF cli,然后向外推出以推送应用程序。您必须确保您使用的二进制文件与运行应用程序的操作系统相匹配(最有可能是Ubuntu 14.04)。但这样,您只需向它提供

是否可以从已经在Cloud Foundry中运行的其他应用程序创建应用程序并将其推送到Cloud Foundry中?基本上,我需要从应用程序内部执行“cf推送”


我看到了一个我可以使用的CloudFoundry API()。谁能给我举个例子吗;是的,这是可能的。向CF cli提供Shell

要做到这一点,最简单的方法是只在应用程序中包含CF cli,然后向外推出以推送应用程序。您必须确保您使用的二进制文件与运行应用程序的操作系统相匹配(最有可能是Ubuntu 14.04)。但这样,您只需向它提供用户的CF凭据,并使用CLI中的
CF push
逻辑即可

您可以使用CloudFoundry API,但我建议不要使用它。尝试验证和推送cf应用程序将很棘手
cf push
在幕后做了很多事情——它不仅通过找到的API端点创建应用程序,而且还以智能方式上载应用程序文件,将路由和服务附加到应用程序,启动应用程序,轮询cf API以获取有关暂存任务状态的更新,等等。您必须自己实现所有这些(更不用说OAuth2工作流来获取身份验证令牌)

您可能会发现一些第三方CF库很有用(取决于您使用的语言):

最后,CloudFoundry cli是开源的()。请记住,如上所述,推送逻辑由多个操作组成,因此代码库可能很难找到。

是为这样的用例设计的。它负责协商CF API使用的OAuth2安全性,并为需要多个CF API调用的常见操作(例如推送应用程序,其中包括创建应用程序元数据、推送位和启动应用程序)提供良好的抽象。我更喜欢使用此选项,而不是使用Java向
cf
CLI施舍,因为您可以更好地控制cf API,并且不必让CLI UI检测成功/失败

没有任何东西可以阻止一个应用程序在CF上运行而不推送其他应用程序,但该平台也没有为此提供太多帮助。具体来说,您需要CF API端点的地址(例如)才能定位、验证和部署应用程序。但在CF上运行的应用程序无法知道它运行的CF的API端点。因此,您需要将CF API端点配置到将推送其他应用程序的应用程序中