测试通过api自动获取cnb api server的地址,并设置proxy,测试成功啦
由于cnb业务端口访问策略的调整,此方法已不再适用,等cnb等新方法
1、启动后端服务
https://cnb.cool/ikunkun/demo/apiserver
2、启动本项目
pnpm dev

启动后端服务后,通过api获取后端服务的地址,替换前端proxy后启动前端页面
cnb 官方客户端ts语言版:https://cnb.cool/cnb/sdk/node-cnb
1、设置api密钥,并导入到前端项目
.cnb.yml:
imports: https://cnb.cool/yiqiu/dev.env/-/blob/main/webdemo/config.yml
2、获取CNB_PIPELINE_ID
通过后端项目名称和状态,获取到CNB_PIPELINE_ID,CNB_PIPELINE_ID是组成访问地址的唯一变量
关键代码:lib/devhelper.ts
const client = getClient(env.CNB_API_ENDPOINT|| "https://api.cnb.cool", env.CNB_API_TOKEN ||"");
export const getApiServerBaseUrl = async ():Promise<DtoWorkspaceListResult> => {
return client.Workspace.ListWorkspaces({slug:env.CNB_API_WORKSPACE||"",status: "running"})
}
3、替换proxy
关键代码:next.config.ts
const {list: [{ pipeline_id }, ...rest],} = await getApiServerBaseUrl();
async redirects() {
return [
{
source: "/api/:slug*",
destination: `https://${pipeline_id}-8181.cnb.run/api/:slug*`,
permanent: true,
},
];
},