2.3 KiB
2.3 KiB
pcapi
算力中心API服务器
安装须知
- 先执行sh install.sh安装升级第三方库
- 将sqlor,ahserver,apppublic,rbac,appbase库拉取下来依次安装
- 建议不要直接pip install -r requirement.txt,小麻烦较多
安全保证
- 使用https协议
- 使用BasicAuth传输用户密码
- 检查IP是否在允许IP集中
- 上述检查失败的请求全部返回401
服务方代码
例子功能
步骤1 包装K8S功能
async def create_namespaced_job_v1(namespace, jobdesc):
batch_v1 = client.BatchV1Api()
f = awaitify(batch_v1.create_namespaced_job)
return await f(namespace=namespace, body=jobdesc)
上述代码用来包装k8s的以下功能
batch_v1 = client.BatchV1Api()
batch_v1.create_namespaced_job(namespace=..., nody=...)
步骤2 让新功能在dspy脚本中可用
将下面的代码放在def init_func()函数的最后:
g.create_namespaced_job_v1 = create_namespaced_job_v1
功能扩充
有新功能需要扩充时,请参照上述功能操作
数据参数话函数
paramify(data, ns): data是一个python的字符串,字典或数组,其中的数据有用“${name}$"形式定义的变量,此函数将data中的参数用ns字典中的值替换 此函数在dspy脚本中可用
后台目录协议
- 所有后台程序在wwwroot下
- wwwroot中只有一个api目录
- api目录按照api的版本创建v{版本号}目录, 版本号为整数,从“1”开始
- 每个api一个在版本目录下创建一个api名称的目录
- api代码在api名称目录的index.dspy文件中
接口脚本例子
info('test .....{params_kw=}')
data = {
"k":"${key}$",
"s":"${secretkey}$"
}
ns = paramify(data, params_kw)
return ns
请求方代码例子
curl版本
curl --basic --user kyycloud:Kyy@123456 https://pcapi.opencomputing.cn
dspy版本
# 客户方需要提供用户密码,用basic_auth_headers函数生成验证用户所需
# 的http请求的headers,并在请求是放在headers参数中
headers = basic_auth_headers('kyycloud','Kyy@123456')
hc = HttpClient()
resp = await hc.request('https://pcapi.opencomputing.cn',
method='GET',
params={
"a":"1",
"key":"87y32iuhi453u8y56",
"secretkey":"qqqqqcccccceeeee"
},
headers=headers)
info(f'{resp=}')
return resp
# bricks