1

我想在我的 cloudControl 部署中添加一个环境变量,在这种情况下也称为 config。但是,我不能使用提供的命令行工具cctrlapp,而必须使用 REST API。他们的 API 可以在https://api.cloudcontrol.com上访问,并记录在https://api.cloudcontrol.com/doc/上。

我现在的问题是引用环境变量的文档部分是空的!

这是我到目前为止所做的:

  1. 应用类型 nodejs 创建
  2. 已创建默认部署
  3. 试图添加环境。多变的

我发现我必须向https://api.cloudcontrol.com/app/{APP_NAME}/deployment/{DEPLOYMENT_NAME}/addon. 根据cctrlapp(参见app.pycclib.py)的实现,我会推断需要以下 JSON 数据:

{"addon":"config.free","options":{"key":"value"}}

现在我被困住了。在这种情况下,请求返回:

Bad Request {"parameters": "Invalid parameters given."}

如果我使用稍微修改过的对象

{"addon":"config.free","settings":{"key":"value"}}

我收到这条消息:

[ERROR] Missing config variables

有谁知道如何仅使用 API 应用这样的键值对?

4

1 回答 1

1

从查看https://github.com/cloudControl/pycclib/blob/master/pycclib/cclib.py#L422,我认为您确实需要使用"options"并且值options应该是一个json编码的字典( https://github .com/cloudControl/cctrl/blob/master/cctrl/addonoptionhelpers.py#L82)。

然而,其余部分不是 json 编码的,而只是普通的 POST 参数(https://github.com/cloudControl/pycclib/blob/master/pycclib/cclib.py#L931)。参考的工作请求(相当于 config.add x=1):

POST /app/myappname/deployment/default/addon/ HTTP/1.1
content-length: 50
accept-encoding: compress, gzip
user-agent: pycclib/1.5.5
host: api.cloudcontrolled.com
content-type: application/x-www-form-urlencoded
authorization: cc_auth_token="thetoken"

options=%7B%22x%22%3A+%221%22%7D&addon=config.free
于 2014-12-04T15:32:07.270 回答