Skip to main content

Application Deployment

version tip

This module has been added since v5.0.0.

The CloudAppService provides deployment management capabilities for Web applications, accessible via app.cloudAppService.

Differences from CloudRun
  • app.cloudAppService (this document): CloudApp application deployment, currently supporting the static-hosting (Static Hosting) deployment type, providing complete application version management.
  • app.cloudBaseRun (formerly known as app.cloudApp, deprecated alias): Cloud Run (CloudBaseRun / TCBR), used for containerized service deployment. These are independent services; do not confuse them.
Naming Migration Notice

Prior to v5.0.0, app.cloudApp was used as the access point for CloudBaseRunService (Cloud Run).

Starting from v5.0.0:

  • app.cloudAppDeprecated, can still access CloudBaseRunService, but migration to app.cloudBaseRun is strongly recommended.
  • app.cloudAppServiceNew access point for CloudApp application deployment service

createApp

1. API Description

API feature: Create or update CloudApp applications (initial call creates the application, subsequent calls with the same application name trigger an update deployment)

API declaration: app.cloudAppService.createApp(params): Promise<ICreateCloudAppResult>

2. Input Parameters

FieldRequiredTypeDescription
deployTypeYesDeployTypeDeployment type: static-hosting (Static Hosting) / http-function (reserved)
serviceNameRequiredStringApplication service name, globally unique
envIdNoStringEnvironment ID, defaults to the envId during initialization
buildTypeNoBuildTypeBuild type: GIT / ZIP (default) / TEMPLATE
staticConfigNoIStaticConfigStatic Hosting configuration (used when deployType is static-hosting)

IStaticConfig

FieldRequiredTypeDescription
cosTimestampRequiredString/NumberCOS upload timestamp (returned by uploadCode)
frameworkNoStringFramework type: vue, react, next, nuxt, vite, angular, static
nodeJsVersionNoStringNode.js version, default 20
appPathNoStringAccess path (hosting mount path), default /serviceName
buildPathNoStringBuild artifacts directory
staticCmdNoIStaticCmdBuild command configuration
staticEnvNoIStaticEnvStatic environment variables

IStaticCmd

FieldDescription
buildCmdBuild command (e.g. npm run build)
installCmdInstallation command (e.g. npm install)
deployCmdDeployment command (usually automatically generated, no manual specification required)

3. Return Results

FieldTypeDescription
ServiceNameStringApplication service name
BuildIdStringBuild ID, used for polling status
RequestIdStringUnique identifier of the request

describeAppList

1. API Description

API feature: Query the CloudApp application list

API declaration: app.cloudAppService.describeAppList(params): Promise<IDescribeCloudAppListResult>

2. Input Parameters

FieldRequiredTypeDescription
deployTypeRequiredDeployTypeDeployment type: static-hosting, etc.
envIdNoStringEnvironment ID
pageNoNoNumberPage number (starting from 1)
pageSizeNoNumberPage size
searchKeyNoStringFuzzy search by application name

3. Return Results

FieldTypeDescription
TotalNumberTotal applications
ServiceListCloudAppServiceItem[]Application list
RequestIdStringUnique identifier of the request

CloudAppServiceItem

FieldTypeDescription
ServiceNameStringApplication service name
DeployTypeStringDeployment type
FrameworkStringFramework type
DomainStringAccess domain
AppPathStringAccess path
CreateTimeStringCreation time
LatestVersionNameStringLatest version name
LatestStatusStringLatest version status: BUILDING / SUCCESS / FAILED
LatestBuildTimeStringLatest build time

describeAppInfo

1. API Description

API feature: Query the details of a single CloudApp application.

API declaration: app.cloudAppService.describeAppInfo(params): Promise<IDescribeCloudAppInfoResult>

2. Input Parameters

FieldRequiredTypeDescription
deployTypeRequiredDeployTypeDeployment type
serviceNameRequiredStringApplication service name
envIdNoStringEnvironment ID

3. Return Results

FieldTypeDescription
ServiceNameStringApplication service name
DeployTypeStringDeployment type
FrameworkStringFramework type
DomainStringAccess domain
AppPathStringAccess path
CreateTimeStringCreation time
LatestVersionNameStringLatest version name
LatestStatusStringLatest version status
LatestBuildTimeStringLatest build time

deleteApp

1. API Description

API feature: Delete CloudApp application (including all historical versions)

API declaration: app.cloudAppService.deleteApp(params): Promise<IDeleteCloudAppResult>

2. Input Parameters

FieldRequiredTypeDescription
deployTypeRequiredDeployTypeDeployment type
serviceNameRequiredStringApplication service name
envIdNoStringEnvironment ID

3. Return Results

FieldTypeDescription
ResultBooleanwhether the deletion was successful
RequestIdStringUnique identifier of the request

describeAppVersion

1. API Description

API feature: Query details of a specified application version (including build status).

API declaration: app.cloudAppService.describeAppVersion(params): Promise<IDescribeCloudAppVersionResult>

2. Input Parameters

FieldRequiredTypeDescription
deployTypeRequiredDeployTypeDeployment type
serviceNameRequiredStringApplication service name
envIdNoStringEnvironment ID
versionNameNoStringVersion name (either this or buildId)
buildIdNoStringBuild ID (either this or versionName)

3. Return Results

FieldTypeDescription
BuildTypeStringBuild type
BuildIdStringBuild ID
StatusStringBuild status: BUILDING / SUCCESS / FAILED / PENDING
DomainStringVersion access domain (present when status is SUCCESS)
UrlStringVersion access URL (present when status is SUCCESS)
BuildDurationNumberBuild duration (seconds)
FailReasonStringFailure reason (present when status is FAILED)

describeAppVersionList

1. API Description

API feature: Query application version list

API declaration: app.cloudAppService.describeAppVersionList(params): Promise<IDescribeCloudAppVersionListResult>

2. Input Parameters

FieldRequiredTypeDescription
deployTypeRequiredDeployTypeDeployment type
serviceNameRequiredStringApplication service name
envIdNoStringEnvironment ID
pageNoNoNumberPage number
pageSizeNoNumberPage size

3. Return Results

FieldTypeDescription
TotalNumberTotal versions
VersionListCloudAppVersion[]Version list
RequestIdStringUnique identifier of the request

deleteAppVersion

1. API Description

API feature: Delete the specified historical version of the application

API declaration: app.cloudAppService.deleteAppVersion(params): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
deployTypeRequiredDeployTypeDeployment type
serviceNameRequiredStringApplication service name
versionNameRequiredStringVersion name to be deleted
envIdNoStringEnvironment ID

Code Upload

uploadCode

1. API Description

API feature: Compress and upload local code to COS for subsequent createApp deployment.

API declaration: app.cloudAppService.uploadCode(params): Promise<IUploadCloudAppCodeResult>

tip

Typically, the CLI (tcb app deploy) automatically calls this API to complete code upload, eliminating the need for manual invocation. Manual invocation is only required when directly using the SDK for automated deployment.

2. Input Parameters

FieldRequiredTypeDescription
envIdNoStringEnvironment ID
serviceNameRequiredStringApplication service name
filePathRequiredStringThe local absolute path of the file or directory to be uploaded
ignoreNostring[]glob patterns for files/directories to ignore during upload
onProgressNoFunctionUpload progress callback (data: IProgressData) => void

3. Return Results

FieldTypeDescription
cosTimestampStringCOS upload timestamp, must be passed to createApp's staticConfig.cosTimestamp
RequestIdStringUnique identifier of the request

Complete Usage Sample

import CloudBase from '@cloudbase/manager-node'
import path from 'path'

const app = CloudBase.init({
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
})

async function deployApp() {
const serviceName = 'my-react-app'

// 1. Upload code
console.log('Uploading code...')
const { cosTimestamp } = await app.cloudAppService.uploadCode({
serviceName,
filePath: path.resolve('./my-react-app'),
ignore: ['**/node_modules/**', '**/.git/**']
})

// 2. Create/Update application
console.log('Triggering deployment...')
const { BuildId } = await app.cloudAppService.createApp({
deployType: 'static-hosting',
serviceName,
buildType: 'ZIP',
staticConfig: {
framework: 'react',
cosTimestamp,
appPath: `/${serviceName}`,
buildPath: 'build',
staticCmd: {
buildCmd: 'npm run build',
installCmd: 'npm install'
}
}
})

// 3. Poll build status
console.log('Waiting for build completion, BuildId:', BuildId)
let status = 'BUILDING'
while (status === 'BUILDING' || status === 'PENDING') {
await new Promise(r => setTimeout(r, 5000))
const version = await app.cloudAppService.describeAppVersion({
deployType: 'static-hosting',
serviceName,
buildId: BuildId
})
status = version.Status
console.log('Build status:', status)
}

if (status === 'SUCCESS') {
const info = await app.cloudAppService.describeAppInfo({
deployType: 'static-hosting',
serviceName
})
console.log('Deployment succeeded! Access URL: ', info.Domain)
} else {
console.error('Deployment failed')
}
}

deployApp()