跳到主要内容

云托管

init

1. 接口描述

接口功能:初始化云托管代码项目

接口声明:init(params: { serverName: string; template?: string; targetPath?: string }): Promise<{ projectDir: string }>

2. 输入参数

字段必填类型说明
serverNameString服务名称,将作为项目目录名
templateString模板标识符,默认为'helloworld'
targetPathString目标路径,默认为当前目录

3. 返回结果

字段类型说明
projectDirString初始化后的项目目录

4. 示例代码

import CloudBase from "@cloudbase/manager-node";

const manager = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});

async function test() {
const { projectDir } = await manager.cloudrun.init({
serverName: "my-server",
template: "helloworld",
targetPath: "./projects",
});
console.log("项目已初始化到:", projectDir);
}

test();

download

1. 接口描述

接口功能:下载云托管服务代码到本地目录

接口声明:download(params: { serverName: string; targetPath: string }): Promise<void>

2. 输入参数

字段必填类型说明
serverNameString要下载的服务名称
targetPathString下载的目标路径(绝对或相对路径)

3. 返回结果

无直接返回数据,成功时 Promise 解析,失败时拒绝。

4. 示例代码

import CloudBase from "@cloudbase/manager-node";

const manager = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});

async function test() {
await manager.cloudrun.download({
serverName: "my-server",
targetPath: "./downloads",
});
console.log("代码下载完成");
}

test();

list

1. 接口描述

接口功能:获取云托管服务列表

接口声明:list(params?: { pageSize?: number; pageNum?: number; serverName?: string; serverType?: CloudrunServerType }): Promise<ICloudrunListResponse>

2. 输入参数

字段必填类型说明
pageSizeNumber每页数量,默认 10
pageNumNumber页码,默认 1
serverNameString服务名称筛选
serverTypeCloudrunServerType服务类型筛选(function/container)

3. 返回结果

字段类型说明
ServerListICloudrunServerBaseInfo[]服务列表数组
ServerList[].ServerNameString服务名称
ServerList[].DefaultDomainNameString默认服务域名
ServerList[].CustomDomainNameString自定义域名
ServerList[].StatusString服务状态(running/deploying/deploy_failed)
ServerList[].UpdateTimeString更新时间
ServerList[].AccessTypesString[]公网访问类型数组
ServerList[].CustomDomainNamesString[]自定义域名数组
ServerList[].ServerTypeString服务类型(function/container)
ServerList[].TrafficTypeString流量类型
TotalNumber服务总数
RequestIdString请求 ID

4. 示例代码

import CloudBase from "@cloudbase/manager-node";

const manager = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});

async function test() {
const { ServerList, Total } = await manager.cloudrun.list({
pageSize: 20,
pageNum: 1,
});
console.log(`${Total} 个服务:`, ServerList);
}

test();

detail

1. 接口描述

接口功能:查询云托管服务详情

接口声明:detail(params: { serverName: string }): Promise<ICloudrunDetailResponse>

2. 输入参数

字段必填类型说明
serverNameString要查询的服务名称

3. 返回结果

字段类型说明
BaseInfoICloudrunServerBaseInfo服务基本信息
BaseInfo.ServerNameString服务名称
BaseInfo.DefaultDomainNameString默认服务域名
BaseInfo.CustomDomainNameString自定义域名
BaseInfo.StatusString服务状态
BaseInfo.UpdateTimeString更新时间
BaseInfo.AccessTypesString[]公网访问类型
BaseInfo.CustomDomainNamesString[]自定义域名数组
BaseInfo.ServerTypeString服务类型
BaseInfo.TrafficTypeString流量类型
ServerConfigICloudrunServerBaseConfig服务配置信息
ServerConfig.EnvIdString环境 ID
ServerConfig.ServerNameString服务名称
ServerConfig.OpenAccessTypesString[]公网访问类型
ServerConfig.CpuNumberCPU 规格
ServerConfig.MemNumber内存规格
ServerConfig.MinNumNumber最小副本数
ServerConfig.MaxNumNumber最大副本数
ServerConfig.PolicyDetailsICloudrunHpaPolicy[]扩缩容配置
ServerConfig.PolicyDetails[].PolicyTypeString扩缩容类型,可选值:
- "cpu": 基于 CPU 利用率的扩缩容
- "mem": 基于内存利用率的扩缩容;
- "cpu/mem": 基于 CPU 和内存利用率的扩缩容
ServerConfig.PolicyDetails[].PolicyThresholdNumber扩缩容阈值(百分比),取值范围 0-100,如 60 表示当资源利用率达到 60%时触发扩缩容
ServerConfig.CustomLogsString日志采集路径
ServerConfig.EnvParamsString环境变量
ServerConfig.InitialDelaySecondsNumber延迟检测时间
ServerConfig.CreateTimeString创建时间
ServerConfig.PortNumber服务端口
ServerConfig.HasDockerfileBoolean是否有 Dockerfile
ServerConfig.DockerfileStringDockerfile 文件名
ServerConfig.BuildDirString构建目录
ServerConfig.LogTypeString日志类型
ServerConfig.LogSetIdStringCLS 日志集 ID
ServerConfig.LogTopicIdStringCLS 主题 ID
ServerConfig.LogParseTypeString日志解析类型
ServerConfig.TagString服务标签
ServerConfig.InternalAccessString内网访问开关
ServerConfig.InternalDomainString内网域名
ServerConfig.OperationModeString运行模式
ServerConfig.TimerScaleICloudrunTimerScale[]定时扩缩容配置
ServerConfig.TimerScale[].CycleTypeString循环类型,可选值:
- "none": 无循环
- "daily": 每日循环
- "weekly": 每周循环
- "monthly": 每月循环
ServerConfig.TimerScale[].StartDateString循环起始日期(格式: YYYY-MM-DD)
ServerConfig.TimerScale[].EndDateString循环结束日期(格式: YYYY-MM-DD)
ServerConfig.TimerScale[].StartTimeString起始时间(格式: HH:mm:ss)
ServerConfig.TimerScale[].EndTimeString结束时间(格式: HH:mm:ss)
ServerConfig.TimerScale[].ReplicaNumNumber副本个数(最小值: 0)
ServerConfig.EntryPointString[]Dockerfile EntryPoint 参数
ServerConfig.CmdString[]Dockerfile Cmd 参数
OnlineVersionInfosICloudrunOnlineVersionInfo[]在线版本信息
OnlineVersionInfos[].VersionNameString版本名称
OnlineVersionInfos[].ImageUrlString镜像 URL
OnlineVersionInfos[].FlowRatioString流量比例
RequestIdString请求 ID

4. 示例代码

import CloudBase from "@cloudbase/manager-node";

const manager = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});

async function test() {
const detail = await manager.cloudrun.detail({
serverName: "my-server",
});
console.log("服务详情:", detail);
}

test();

delete

1. 接口描述

接口功能:删除指定的云托管服务

接口声明:delete(params: { serverName: string }): Promise<IResponseInfo>

2. 输入参数

字段必填类型说明
serverNameString要删除的服务名称

3. 返回结果

字段类型说明
RequestIdString请求 ID

4. 示例代码

import CloudBase from "@cloudbase/manager-node";

const manager = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});

async function test() {
await manager.cloudrun.delete({
serverName: "my-server",
});
console.log("服务删除成功");
}

test();

deploy

1. 接口描述

接口功能:本地代码部署云托管服务

接口声明:deploy(params: { serverName: string; targetPath: string; serverConfig?: Partial<ICloudrunServerBaseConfig> }): Promise<IResponseInfo>

2. 输入参数

字段必填类型说明
serverNameString要部署的服务名称
targetPathString本地代码路径
serverConfigPartial<ICloudrunServerBaseConfig>服务配置项,包含以下可选字段:
- OpenAccessTypes: string[] - 公网访问类型数组,可选值:
"OA" - 办公网访问
"PUBLIC" - 公网访问
"MINIAPP" - 小程序访问
"VPC" - VPC 访问
- Cpu: number - CPU 规格
- Mem: number - 内存规格
- MinNum: number - 最小实例数
- MaxNum: number - 最大实例数
- PolicyDetails: ICloudrunHpaPolicy[] - 扩缩容配置数组,每个元素包含:
PolicyType: string - 扩缩容类型,可选值:"cpu""mem""cpu/mem"
PolicyThreshold: number - 扩缩容阈值(百分比),如 60 表示 60%
- CustomLogs: string - 自定义日志配置
- EnvParams: string - 环境变量 JSON 字符串
- Port: number - 服务端口(函数型服务固定为 3000)
- Dockerfile: string - Dockerfile 文件名
- BuildDir: string - 构建目录
- InternalAccess: string - 内网访问开关
- InternalDomain: string - 内网域名
- EntryPoint: string[] - Dockerfile EntryPoint 参数
- Cmd: string[] - Dockerfile Cmd 参数

3. 返回结果

字段类型说明
RequestIdString请求 ID

4. 示例代码

import CloudBase from "@cloudbase/manager-node";

const manager = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});

async function test() {
await manager.cloudrun.deploy({
serverName: "my-server",
targetPath: "./my-project",
serverConfig: {
Cpu: 0.5,
Mem: 1,
MinNum: 1,
MaxNum: 5,
},
});
console.log("服务部署成功");
}

test();

getTemplates

1. 接口描述

接口功能:获取云托管服务模板列表

接口声明:getTemplates(): Promise<ITemplate[]>

2. 输入参数

3. 返回结果

字段类型说明
ITemplate[]Array模板数组
[].identifierString模板唯一标识符
[].titleString模板标题
[].descriptionString模板描述
[].runtimeVersionString运行时版本
[].languageString编程语言
[].zipFileStoreString模板压缩包存储地址

4. 示例代码

import CloudBase from "@cloudbase/manager-node";

const manager = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});

async function test() {
const templates = await manager.cloudrun.getTemplates();
console.log("可用模板:", templates);
templates.forEach((template) => {
console.log(`模板ID: ${template.identifier}`);
console.log(`标题: ${template.title}`);
console.log(`描述: ${template.description}`);
console.log(`运行时版本: ${template.runtimeVersion}`);
console.log(`语言: ${template.language}`);
console.log(`下载地址: ${template.zipFileStore}`);
});
}

test();