我想在我的cloudControl部署中添加一个环境变量,在此上下文中也称为config。但是,我不能使用提供的命令行工具cctrlapp
,但必须使用REST API。他们的API可以在https://api.cloudcontrol.com访问,并记录在https://api.cloudcontrol.com/doc/。
我现在的问题是引用环境变量的文档部分是空的!
这是我到目前为止所做的:
我发现我必须向https://api.cloudcontrol.com/app/{APP_NAME}/deployment/{DEPLOYMENT_NAME}/addon
发送POST请求。根据{{1}}的实现(请参阅app.py和cclib.py),我推断需要以下JSON数据:
cctrlapp
现在我被卡住了。 在这种情况下,请求返回:
{"addon":"config.free","options":{"key":"value"}}
如果我使用稍微修改过的对象
Bad Request {"parameters": "Invalid parameters given."}
我收到此消息:
{"addon":"config.free","settings":{"key":"value"}}
有人知道如何仅使用API来应用这样的键值对吗?
答案 0 :(得分: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