跳到主要内容

自定义域名

管理云开发环境的自定义域名绑定及 HTTP 访问路由规则。通过 app.env 访问。

版本提示

自 v5.0.0 起新增此能力。v5.0.0 之前请使用 HTTP 网关(旧)。

概念说明​

概念说明
自定义域名绑定到云开发 HTTP 网关的自定义域名,支持 HTTPS 证书配置
访问路由在某个域名下配置路径到上游服务(云函数/云托管/静态托管)的映射规则
AccessType域名接入方式:DIRECT(直连)/ CDN(云开发 CDN)/ CUSTOM(自定义 CDN/WAF)/ EO(云开发 EdgeOne)
ProtocolHTTPS 协议策略:HTTP_AND_HTTPS / HTTP_TO_HTTPS(强制跳转)/ HTTPS_TO_HTTP
UpstreamResourceType路由上游类型:SCF(云函数)/ CBR(云托管)/ STATIC_STORE(静态托管)/ WEB_SCF(Web 云函数)

describeHttpServiceRoute​

1. 接口描述​

接口功能:查询环境下的域名与访问路由列表,支持多维度过滤

接口声明:app.env.describeHttpServiceRoute(params): Promise<DescribeHttpServiceRouteRes>

版本提示

自 v5.0.0 起支持此接口

2. 输入参数​

字段必填类型说明
EnvId是String环境 ID
Filters否HTTPServiceRouteFilter[]过滤条件,支持 Domain、Path、DomainType、UpstreamResourceType
Offset否Number分页偏移量,默认 0
Limit否Number分页大小,默认 20,最大 1000

3. 返回结果​

字段类型说明
DomainsHTTPServiceDomain[]域名路由信息列表
OriginDomainStringHTTP 网关源站域名(用于自定义 CDN/WAF 回源)
TotalCountNumber域名总数
RequestIdString请求唯一标识

HTTPServiceDomain

字段类型说明
DomainString域名
DomainTypeString域名类型
AccessTypeString接入方式:DIRECT / CDN / CUSTOM / EO
CertIdStringSSL 证书 ID
ProtocolString协议类型
CnameString需配置的 CNAME 目标值
IsDefaultBoolean是否是默认域名
EnableBoolean是否已开启
StatusString状态:PROCESSING / FAIL / SUCCESS
DNSStatusStringDNS 解析状态:OK / INVALID
RoutesHTTPServiceRoute[]该域名下的路由列表
CreateTimeString创建时间
UpdateTimeString更新时间

4. 示例代码​

const CloudBase = require('@cloudbase/manager-node')
const app = new CloudBase({ secretId: 'Your SecretId', secretKey: 'Your SecretKey', envId: 'your-env-id' })

async function test() {
const { Domains, TotalCount } = await app.env.describeHttpServiceRoute({
EnvId: 'your-env-id',
Limit: 20
})
console.log(`共 ${TotalCount} 个域名`)
Domains.forEach(d => console.log(d.Domain, d.Status, d.DNSStatus))
}

test()

bindCustomDomain​

1. 接口描述​

接口功能:绑定自定义域名到 HTTP 网关,支持配置 HTTPS 证书和接入方式

接口声明:app.env.bindCustomDomain(params): Promise<BindCustomDomainRes>

调用建议

建议先调用 verifyHttpServiceRoute 进行归属权与冲突预检,通过后再执行域名绑定。

版本提示

自 v5.0.0 起支持此接口

2. 输入参数​

字段必填类型说明
EnvId是String环境 ID
Domain是BindCustomDomainDomainParam域名配置,见下方说明

BindCustomDomainDomainParam

字段必填类型说明
Domain是String域名,全局唯一
CertId是StringSSL 证书 ID(腾讯云 SSL 平台)
AccessType否String接入方式:DIRECT(默认)/ CDN / CUSTOM / EO
Protocol否String协议策略:默认 HTTP_AND_HTTPS
Enable否Boolean是否立即开启,默认 true
CustomCname否String自定义 CDN/WAF 的回源 CNAME(AccessType=CUSTOM 时填写)

3. 返回结果​

字段类型说明
RequestIdString请求唯一标识

4. 示例代码​

async function test() {
await app.env.bindCustomDomain({
EnvId: 'your-env-id',
Domain: {
Domain: 'api.example.com',
CertId: 'your-cert-id',
AccessType: 'DIRECT',
Protocol: 'HTTP_TO_HTTPS'
}
})
console.log('域名绑定成功,请前往 DNS 服务商配置 CNAME 解析')
}

test()

deleteCustomDomain​

1. 接口描述​

接口功能:删除自定义域名。域名下存在路由绑定时会抛出错误,需先删除路由

接口声明:app.env.deleteCustomDomain(params): Promise<DeleteCustomDomainRes>

版本提示

自 v5.0.0 起支持此接口

2. 输入参数​

字段必填类型说明
EnvId是String环境 ID
Domain是String要删除的域名

3. 返回结果​

字段类型说明
RequestIdString请求唯一标识

verifyHttpServiceRoute​

1. 接口描述​

接口功能:对待创建/修改的域名路由配置进行只读预检,不会创建或修改任何资源

接口声明:app.env.verifyHttpServiceRoute(params): Promise<VerifyHttpServiceRouteRes>

版本提示

自 v5.8.0 起支持此接口

2. 输入参数​

字段必填类型说明
EnvId是String环境 ID
Domain是HTTPServiceDomainParam域名及路由配置,见下方说明

HTTPServiceDomainParam

字段必填类型说明
Domain是String域名(全局唯一)
AccessType否String绑定类型:DIRECT / CDN / CUSTOM / EO
CertId否String当前账号下 SSL 平台证书 ID
Protocol否String协议策略:HTTP / HTTPS / HTTP_AND_HTTPS / HTTP_TO_HTTPS / HTTPS_TO_HTTP
CustomCname否String自定义 CNAME,仅 AccessType=CUSTOM 时使用
Enable否Boolean域名开启状态,不传默认开启
Routes否HTTPServiceRouteParam[]路由列表,最多 20 条
Extension否HTTPServiceExtension域名扩展配置

HTTPServiceRouteParam(单条路由)

字段必填类型说明
Path是String路由路径,如 /api
UpstreamResourceType否String上游类型:SCF / CBR / STATIC_STORE / WEB_SCF / LH / STORAGE(创建时必填,修改时可选)
UpstreamResourceName否String上游服务名称(创建时必填,修改时可选;STATIC_STORE / STORAGE 可不填)
PathRewrite否HTTPServicePathRewrite路径重写配置
EnableSafeDomain否Boolean是否启用安全域名,默认 true
EnableAuth否Boolean是否启用身份认证,默认 false
EnablePathTransmission否Boolean是否路径透传,默认 false
QPSPolicy否HTTPServiceRouteQPSPolicyQPS 限频策略
Extension否HTTPServiceExtension路由扩展配置(包含 headers 处理等)
Enable否Boolean是否开启路由

HTTPServicePathRewrite

字段必填类型说明
Prefix否String路径前缀重写。与 StaticStorePrefix 二选一
StaticStorePrefix否String静态托管路径前缀重写。与 Prefix 二选一

HTTPServiceRouteQPSPolicy

字段必填类型说明
QPSTotal否Number全局 QPS 值(每秒请求次数)
QPSPerClient否HTTPServiceQPSPerClient客户端限频配置

HTTPServiceQPSPerClient

字段必填类型说明
LimitBy否String客户端维度:UserID / ClientIP
LimitValue否Number客户端限频值(每秒请求次数)

HTTPServiceExtension

字段必填类型说明
HeadersHandler否HTTPServiceHeadersHandlerheaders 处理配置

HTTPServiceHeadersHandler

字段必填类型说明
RequestHeadersToAdd否HTTPServiceHeaderToAdd[]要添加的请求头列表
RequestHeadersToRemove否String[]要删除的请求头 key 列表
ResponseHeadersToAdd否HTTPServiceHeaderToAdd[]要添加的响应头列表
ResponseHeadersToRemove否String[]要删除的响应头 key 列表

HTTPServiceHeaderToAdd

字段必填类型说明
Key否String要添加的头部 key
Value否String要添加的头部值
Action否String添加行为:APPEND_IF_EXISTS_OR_ADD / ADD_IF_ABSENT / OVERWRITE_IF_EXISTS_OR_ADD / OVERWRITE_IF_EXISTS

3. 返回结果​

字段类型说明
PassedBoolean所有启用检查项均通过时为 true
OwnershipVerifyHttpServiceRouteCheckItem域名归属权校验结果
CertVerifyHttpServiceRouteCheckItem证书校验结果
QuotaVerifyHttpServiceRouteCheckItem域名/路径配额校验结果
RouteConflictVerifyHttpServiceRouteCheckItem同域名下路由冲突校验结果
DomainConflictVerifyHttpServiceRouteCheckItem域名占用冲突校验结果
InternalAccountVerifyHttpServiceRouteCheckItem内部域名与账号校验结果
BlacklistVerifyHttpServiceRouteCheckItem域名黑名单校验结果
CDNResourceVerifyHttpServiceRouteCheckItemCDN 资源校验结果
EOVerifyHttpServiceRouteCheckItemEdgeOne 预检结果
RequestIdString请求唯一标识

VerifyHttpServiceRouteCheckItem 结构:

字段类型说明
StatusString检查状态:PASS / SKIPPED / FAIL
CodeString失败原因码,仅 FAIL 时返回
MessageString结果详情或跳过原因
OwnershipVerificationObject归属权验证指引(如 DNS 记录/文件校验信息)

4. 示例代码​

建议在创建或修改路由前先调用 verifyHttpServiceRoute。若返回 Passed=true,再继续绑定域名与创建路由。

async function test() {
const verifyRes = await app.env.verifyHttpServiceRoute({
EnvId: 'your-env-id',
Domain: {
Domain: 'api.example.com',
CertId: 'your-cert-id'
}
})

if (!verifyRes.Passed) {
console.log('预检未通过,请根据返回结果完成归属权校验或修复冲突后再重试')
console.log(verifyRes.Ownership, verifyRes.RouteConflict, verifyRes.DomainConflict)
return
}

console.log('预检通过,可继续 bindCustomDomain / createHttpServiceRoute')
}

test()

createHttpServiceRoute​

1. 接口描述​

接口功能:在指定域名下创建访问路由,将路径映射到云函数、云托管或静态托管等上游服务

接口声明:app.env.createHttpServiceRoute(params): Promise<CreateHttpServiceRouteRes>

调用建议

建议先调用 verifyHttpServiceRoute 完成预检,确认 Passed=true 后再创建路由。

版本提示

自 v5.0.0 起支持此接口

2. 输入参数​

字段必填类型说明
EnvId是String环境 ID
Domain是HTTPServiceDomainParam域名及路由配置,见下方说明

HTTPServiceDomainParam

字段必填类型说明
Domain是String域名(全局唯一)
AccessType否String绑定类型:DIRECT / CDN / CUSTOM / EO
CertId否String当前账号下 SSL 平台证书 ID
Protocol否String协议策略:HTTP / HTTPS / HTTP_AND_HTTPS / HTTP_TO_HTTPS / HTTPS_TO_HTTP
CustomCname否String自定义 CNAME,仅 AccessType=CUSTOM 时使用
Enable否Boolean域名开启状态,不传默认开启
Routes否HTTPServiceRouteParam[]路由列表,最多 20 条
Extension否HTTPServiceExtension域名扩展配置

HTTPServiceRouteParam(单条路由)

字段必填类型说明
Path是String路由路径,如 /api
UpstreamResourceType否String上游类型:SCF / CBR / STATIC_STORE / WEB_SCF / LH / STORAGE(创建时必填,修改时可选)
UpstreamResourceName否String上游服务名称(创建时必填,修改时可选;STATIC_STORE / STORAGE 可不填)
PathRewrite否HTTPServicePathRewrite路径重写配置
EnableSafeDomain否Boolean是否启用安全域名,默认 true
EnableAuth否Boolean是否启用身份认证,默认 false
EnablePathTransmission否Boolean是否路径透传,默认 false
QPSPolicy否HTTPServiceRouteQPSPolicyQPS 限频策略
Extension否HTTPServiceExtension路由扩展配置(包含 headers 处理等)
Enable否Boolean是否开启路由

PathRewrite / EnableAuth / EnablePathTransmission / QPSPolicy 四个字段的语义与 CLI 网关配置一致,字段权威定义见 配置文件-网关。Manager SDK 使用帕斯卡命名(如 EnableAuth),与 cloudbaserc.json 的小驼峰命名(enableAuth)一一对应。

3. 返回结果​

字段类型说明
RequestIdString请求唯一标识

4. 示例代码​

async function test() {
// 在已绑定的域名下创建路由:将 /api 映射到云函数 my-function
await app.env.createHttpServiceRoute({
EnvId: 'your-env-id',
Domain: {
Domain: 'api.example.com',
Routes: [
{
Path: '/api',
UpstreamResourceType: 'SCF',
UpstreamResourceName: 'my-function',
EnableAuth: false,
Enable: true
}
]
}
})
console.log('路由创建成功')
}

test()

modifyHttpServiceRoute​

1. 接口描述​

接口功能:修改指定域名下的访问路由配置

接口声明:app.env.modifyHttpServiceRoute(params): Promise<ModifyHttpServiceRouteRes>

版本提示

自 v5.0.0 起支持此接口

2. 输入参数​

与 createHttpServiceRoute 相同,参见上方说明。

3. 返回结果​

字段类型说明
RequestIdString请求唯一标识

deleteHttpServiceRoute​

1. 接口描述​

接口功能:删除指定域名下的访问路由。不传 Paths 时删除该域名下的全部路由

接口声明:app.env.deleteHttpServiceRoute(params): Promise<DeleteHttpServiceRouteRes>

版本提示

自 v5.0.0 起支持此接口

2. 输入参数​

字段必填类型说明
EnvId是String环境 ID
Domain是String域名
Paths否String[]要删除的路由路径列表;不传则删除该域名下全部路由

3. 返回结果​

字段类型说明
RequestIdString请求唯一标识

4. 示例代码​

async function test() {
// 删除 /api 路由
await app.env.deleteHttpServiceRoute({
EnvId: 'your-env-id',
Domain: 'api.example.com',
Paths: ['/api']
})

// 删除域名下全部路由
await app.env.deleteHttpServiceRoute({
EnvId: 'your-env-id',
Domain: 'api.example.com'
})
}

test()

purgeHttpServiceCache​

1. 接口描述​

接口功能:刷新 HTTP 访问服务域名缓存,支持 CDN 和 EdgeOne(EO)两种缓存类型。刷新缓存后会生成任务 ID,可通过 describeHttpServiceCachePurgeTask 查询任务进度和详细信息。

接口声明:app.env.purgeHttpServiceCache(params): Promise<PurgeHttpServiceCacheRes>

2. 输入参数​

字段必填类型说明
EnvId是String环境 ID
Domain是StringHTTP 访问服务域名
CacheType是String缓存类型:CDN(云开发 CDN)/ EO(EdgeOne)
PurgeType是String刷新粒度:PURGE_URL(URL,需含协议)/ PURGE_PREFIX(目录,仅 EO)/ PURGE_HOST(域名,仅 EO)。CDN 仅支持 PURGE_URL
Targets是String[]刷新目标列表,语义随 PurgeType 变化

3. 返回结果​

字段类型说明
CacheTypeString缓存类型:CDN / EO
TaskIdString刷新任务 ID,可通过 describeHttpServiceCachePurgeTask 查询进度
RequestIdString请求唯一标识

4. 示例代码​

async function test() {
// 刷新 CDN 域名的 URL 缓存
const { TaskId } = await app.env.purgeHttpServiceCache({
EnvId: 'your-env-id',
Domain: 'api.example.com',
CacheType: 'CDN',
PurgeType: 'PURGE_URL',
Targets: ['https://api.example.com/index.html']
})
console.log(`已提交刷新任务:${TaskId}`)

// 刷新 EO 域名的目录缓存(PURGE_PREFIX 仅 EO 支持)
await app.env.purgeHttpServiceCache({
EnvId: 'your-env-id',
Domain: 'static.example.com',
CacheType: 'EO',
PurgeType: 'PURGE_PREFIX',
Targets: ['https://static.example.com/assets/']
})
}

test()

describeHttpServiceCachePurgeTask​

1. 接口描述​

接口功能:查询 HTTP 访问服务域名缓存刷新任务详情。传入任务 ID 查询单个任务状态、时间、缓存类型等信息,不传则查询历史任务记录。

接口声明:app.env.describeHttpServiceCachePurgeTask(params): Promise<DescribeHttpServiceCachePurgeTaskRes>

2. 输入参数​

字段必填类型说明
EnvId是String环境 ID
Domain是StringHTTP 访问服务域名
CacheType是String缓存类型:CDN / EO
TaskId否String任务 ID,由 purgeHttpServiceCache 返回;不传时查询历史任务记录
PurgeType否String按刷新粒度过滤:PURGE_URL / PURGE_PREFIX / PURGE_HOST
StartTime否String查询开始时间,ISO8601 格式。TaskId 为空时默认 7 天前
EndTime否String查询结束时间,ISO8601 格式。TaskId 为空时默认当前时间
Offset否Number分页偏移量,默认 0
Limit否Number分页大小,默认 20,最大 1000

3. 返回结果​

字段类型说明
TasksHTTPServiceCachePurgeTask[]任务列表
TotalCountNumber任务总数,用于判断是否已拉取全部数据
RequestIdString请求唯一标识

HTTPServiceCachePurgeTask

字段类型说明
TaskIdString任务 ID
CacheTypeString缓存类型:CDN / EO
StatusString任务状态:PROCESSING(处理中)/ SUCCESS(成功)/ FAILED(失败)/ TIMEOUT(超时)/ CANCELED(取消)
PurgeTypeString刷新类型:PURGE_URL / PURGE_PREFIX / PURGE_HOST
MethodString刷新方法:INVALIDATE(仅刷新有更新的资源)/ DELETE(无论是否更新都刷新)
TargetsString[]刷新目标列表
FailReasonString失败原因,任务失败时返回
CreateTimeString任务创建时间,ISO8601 格式(UTC+0)
UpdateTimeString任务更新时间,ISO8601 格式(UTC+0)

4. 示例代码​

async function test() {
// 查询单个任务进度
const { Tasks } = await app.env.describeHttpServiceCachePurgeTask({
EnvId: 'your-env-id',
Domain: 'api.example.com',
CacheType: 'CDN',
TaskId: 'your-task-id'
})
const task = Tasks[0]
console.log(`任务状态:${task.Status},失败原因:${task.FailReason || '-'}`)

// 查询 EO 域名的目录刷新历史
const history = await app.env.describeHttpServiceCachePurgeTask({
EnvId: 'your-env-id',
Domain: 'static.example.com',
CacheType: 'EO',
PurgeType: 'PURGE_PREFIX',
Limit: 20
})
console.log(`共 ${history.TotalCount} 条历史记录`)
}

test()