【问题标题】:Create and Push an App programmatically from another App in Cloud Foundry从 Cloud Foundry 中的另一个应用程序以编程方式创建和推送应用程序
【发布时间】:2016-06-11 00:03:06
【问题描述】:

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

我看到有一个可以使用的 Cloud Foundry API (https://apidocs.cloudfoundry.org/237/apps/creating_an_app.html)。谁能举个例子?

【问题讨论】:

    标签: cloud-foundry


    【解决方案1】:

    Cloud Foundry Java Client 专为此类用例而设计。它负责协商 CF API 使用的 OAuth2 安全性,并为需要多个 CF API 调用的常见操作提供很好的抽象(例如,推送应用程序,这涉及创建应用程序元数据、推送位和启动应用程序)。我更喜欢这个选项,而不是使用 Java 来使用 cf CLI,因为您可以更好地控制 CF API,并且不受 CLI UI 检测成功/失败的影响。

    没有什么可以阻止应用程序在 CF 上运行来推送其他应用程序,但该平台在这方面也没有多大帮助。具体来说,您需要 CF API 端点的地址(例如 http://api.mycf.example.com)才能定位、验证和部署应用程序。但是在 CF 上运行的应用程序无法知道它正在运行的 CF 的 API 端点。因此,您需要将 CF API 端点配置到将推送其他应用程序的应用程序中。

    【讨论】:

      【解决方案2】:

      TL;DR 是的,这是可能的。使用 CF cli。

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

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

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

      最后,CloudFoundry cli 是开源的 (https://github.com/cloudfoundry/cli)。请记住,如上所述,push 逻辑由多个操作组成,因此代码库可能难以理解。

      【讨论】:

        猜你喜欢
        • 2019-10-19
        • 2019-02-06
        • 2016-09-06
        • 2013-05-16
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多