使用python

时间:2015-12-30 10:17:09

标签: python cloudfoundry

我是Cloud Foundry的新手。我想使用Python自动化Cloud Foundry中的应用程序部署和服务绑定。

要在Cloud Foundry中部署应用程序,我们将使用命令(Cloud Foundry CLI),如:

cf push redis-sample-app
cf create-service redis shared-vm service-example-redis
cf bind-service redis-sample-app service-example-redis
cf restage redis-sample-app

现在我不想使用CLI,我只想编写一个Python / Ruby /(任何语言)脚本来完成所有工作。

我试过google并最终使用了Python cloudfoundry模块,但目前还不清楚。我的任务是否有任何API,例如boto用于访问EC2。我试过在Python中使用以下代码:

from cloudfoundrty import CloudFoundryInterface
cf=CloudFoundryInterface(target="api.end.point",username="myusername",password="mypwd")
cf.login()

它显示错误:

`File "C:\Python27\lib\site-packages\requests\models.py", line 398, in full_url
    raise MissingSchema("Invalid URL %r: No schema supplied" % url)
MissingSchema: Invalid URL    u'users/kishorekumarnetala%40gmail.com/tokens': No schema supplied`

1 个答案:

答案 0 :(得分:1)

首先,快速的是,您的Cloud Foundry部署的实际API端点是什么?如果您正在使用cf CLI,那么您在cf api API_ENDPOINT时做了什么?您可以运行cf target以查看当前API端点的设置。它应该有httphttps等方案。如果你真的将api.end.point放在Python代码中,这就是你收到错误信息的原因。

关于自动化Cloud Foundry交互的一般问题,您有以下几种选择:

  1. 编写直接驱动cf CLI
  2. 的shell脚本
  3. 使用更高级别的语言编写模块,如Ruby或Python,它只包含对CLI的调用
  4. 使用更高级语言编写模块,该语言​​包含对restful API的调用。
  5. 以下是这些选项的细分:

    1. 如果您的语言列表(Ruby / Python /任何语言)包含bash或纯sh之类的内容,那么您可以轻松地使用它来编写"代码"自动化与Cloud Foundry交互。 CLI设计为可编写脚本,不需要人工交互。这是最常用的方法,因为CLI是针对此用例而设计的。
    2. 如果您想通过其他语言推动互动(例如,因为这是一个已经使用不同语言的大型项目的一部分),您当然可以这样做。 Cloud Foundry的全套最高级系统测试在Golang中完成。如果您熟悉导航Golang项目,可以查看:
    3. 您还可以围绕RESTful HTTP API构建包装器。生态系统中还有几个已经存在:
      • 这是最近关于官方支持Java client
      • 的帖子
      • 社区中的某个人一直在为自己的目的开发node.js client(不确定它是否公开)
      • 曾经有一个Ruby宝石,但我相信它已被弃用,但你可以找到它并查看它的想法