åºç¨é¨ç½²
èª v5.0.0 èµ·æ°å¢æ¤æ¨¡åã
CloudAppService æä¾ Web åºç¨çé¨ç½²ç®¡çè½åï¼éè¿ app.cloudAppService 访é®ã
app.cloudAppServiceï¼æ¬ææ¡£ï¼ï¼CloudApp åºç¨é¨ç½²ï¼ç®åæ¯æstatic-hostingï¼éææç®¡ï¼é¨ç½²ç±»åï¼æä¾å®æ´çåºç¨çæ¬ç®¡çãapp.cloudBaseRunï¼æ§ç§°app.cloudAppï¼å·²å¼ç¨å«åï¼ï¼äºæç®¡ï¼CloudBaseRun / TCBRï¼ï¼ç¨äºå®¹å¨åæå¡é¨ç½²ãä¸¤è æ¯ç¬ç«çæå¡ï¼è¯·å¿æ··æ·ã
å¨ v5.0.0 ä¹åï¼app.cloudApp æ¯ CloudBaseRunServiceï¼äºæç®¡ï¼ç访é®å
¥å£ã
ä» v5.0.0 èµ·ï¼
app.cloudAppââ å·²åºå¼ï¼ä»å¯è®¿é® CloudBaseRunServiceï¼ä½å»ºè®®è¿ç§»å°app.cloudBaseRunapp.cloudAppServiceââ æ°å ¥å£ï¼è®¿é® CloudApp åºç¨é¨ç½²æå¡
createAppâ
1. æ¥å£æè¿°â
æ¥å£åè½ï¼åå»ºææ´æ° CloudApp åºç¨ï¼é¦æ¬¡è°ç¨å建ï¼åååºç¨å次è°ç¨è§¦åæ´æ°é¨ç½²ï¼
æ¥å£å£°æï¼app.cloudAppService.createApp(params): Promise<ICreateCloudAppResult>
2. è¾å ¥åæ°â
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| deployType | æ¯ | DeployType | é¨ç½²ç±»åï¼static-hostingï¼éææç®¡ï¼/ http-functionï¼é¢çï¼ |
| serviceName | æ¯ | String | åºç¨æå¡åç§°ï¼å ¨å±å¯ä¸ |
| envId | å¦ | String | ç¯å¢ IDï¼é»è®¤ååå§åæ¶ç envId |
| buildType | å¦ | BuildType | æå»ºç±»åï¼GIT / ZIPï¼é»è®¤ï¼ / TEMPLATE |
| staticConfig | å¦ | IStaticConfig | éææç®¡é ç½®ï¼deployType 为 static-hosting æ¶ä½¿ç¨ï¼ |
IStaticConfigâ
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| cosTimestamp | æ¯ | String/Number | COS ä¸ä¼ æ¶é´æ³ï¼ç± uploadCode è¿åï¼ |
| framework | å¦ | String | æ¡æ¶ç±»åï¼vueãreactãnextãnuxtãviteãangularãstatic |
| nodeJsVersion | å¦ | String | Node.js çæ¬ï¼é»è®¤ 20 |
| appPath | å¦ | String | 访é®è·¯å¾ï¼hosting mount pathï¼ï¼é»è®¤ /serviceName |
| buildPath | å¦ | String | æå»ºäº§ç©ç®å½ |
| staticCmd | å¦ | IStaticCmd | æå»ºå½ä»¤é ç½® |
| staticEnv | å¦ | IStaticEnv | éæç¯å¢åé |
IStaticCmdâ
| åæ®µ | 说æ |
|---|---|
| buildCmd | æå»ºå½ä»¤ï¼å¦ npm run buildï¼ |
| installCmd | å®è£
å½ä»¤ï¼å¦ npm installï¼ |
| deployCmd | é¨ç½²å½ä»¤ï¼é常èªå¨çæï¼æ éæå¨æå®ï¼ |
3. è¿åç»æâ
| åæ®µ | ç±»å | 说æ |
|---|---|---|
| ServiceName | String | åºç¨æå¡åç§° |
| BuildId | String | æå»º IDï¼ç¨äºè½®è¯¢ç¶æ |
| RequestId | String | 请æ±å¯ä¸æ è¯ |
describeAppListâ
1. æ¥å£æè¿°â
æ¥å£åè½ï¼æ¥è¯¢ CloudApp åºç¨å表
æ¥å£å£°æï¼app.cloudAppService.describeAppList(params): Promise<IDescribeCloudAppListResult>
2. è¾å ¥åæ°â
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| deployType | æ¯ | DeployType | é¨ç½²ç±»åï¼static-hosting ç |
| envId | å¦ | String | ç¯å¢ ID |
| pageNo | å¦ | Number | 页ç ï¼ä» 1 å¼å§ï¼ |
| pageSize | å¦ | Number | æ¯é¡µå¤§å° |
| searchKey | å¦ | String | æåºç¨åæ¨¡ç³æç´¢ |
3. è¿åç»æâ
| åæ®µ | ç±»å | 说æ |
|---|---|---|
| Total | Number | åºç¨æ»æ° |
| ServiceList | CloudAppServiceItem[] | åºç¨å表 |
| RequestId | String | 请æ±å¯ä¸æ è¯ |
CloudAppServiceItemâ
| åæ®µ | ç±»å | 说æ |
|---|---|---|
| ServiceName | String | åºç¨æå¡åç§° |
| DeployType | String | é¨ç½²ç±»å |
| Framework | String | æ¡æ¶ç±»å |
| Domain | String | 访é®åå |
| AppPath | String | 访é®è·¯å¾ |
| CreateTime | String | å建æ¶é´ |
| LatestVersionName | String | ææ°çæ¬å |
| LatestStatus | String | ææ°çæ¬ç¶æï¼BUILDING / SUCCESS / FAILED |
| LatestBuildTime | String | ææ°æå»ºæ¶é´ |
describeAppInfoâ
1. æ¥å£æè¿°â
æ¥å£åè½ï¼æ¥è¯¢å个 CloudApp åºç¨è¯¦æ
æ¥å£å£°æï¼app.cloudAppService.describeAppInfo(params): Promise<IDescribeCloudAppInfoResult>
2. è¾å ¥åæ°â
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| deployType | æ¯ | DeployType | é¨ç½²ç±»å |
| serviceName | æ¯ | String | åºç¨æå¡åç§° |
| envId | å¦ | String | ç¯å¢ ID |
3. è¿åç»æâ
| åæ®µ | ç±»å | 说æ |
|---|---|---|
| ServiceName | String | åºç¨æå¡åç§° |
| DeployType | String | é¨ç½²ç±»å |
| Framework | String | æ¡æ¶ç±»å |
| Domain | String | 访é®åå |
| AppPath | String | 访é®è·¯å¾ |
| CreateTime | String | å建æ¶é´ |
| LatestVersionName | String | ææ°çæ¬å |
| LatestStatus | String | ææ°çæ¬ç¶æ |
| LatestBuildTime | String | ææ°æå»ºæ¶é´ |
deleteAppâ
1. æ¥å£æè¿°â
æ¥å£åè½ï¼å é¤ CloudApp åºç¨ï¼å æ¬å ¨é¨åå²çæ¬ï¼
æ¥å£å£°æï¼app.cloudAppService.deleteApp(params): Promise<IDeleteCloudAppResult>
2. è¾å ¥åæ°â
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| deployType | æ¯ | DeployType | é¨ç½²ç±»å |
| serviceName | æ¯ | String | åºç¨æå¡åç§° |
| envId | å¦ | String | ç¯å¢ ID |
3. è¿åç»æâ
| åæ®µ | ç±»å | 说æ |
|---|---|---|
| Result | Boolean | æ¯å¦å 餿å |
| RequestId | String | 请æ±å¯ä¸æ è¯ |
describeAppVersionâ
1. æ¥å£æè¿°â
æ¥å£åè½ï¼æ¥è¯¢åºç¨æå®çæ¬è¯¦æ ï¼å å«æå»ºç¶æï¼
æ¥å£å£°æï¼app.cloudAppService.describeAppVersion(params): Promise<IDescribeCloudAppVersionResult>
2. è¾å ¥åæ°â
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| deployType | æ¯ | DeployType | é¨ç½²ç±»å |
| serviceName | æ¯ | String | åºç¨æå¡åç§° |
| envId | å¦ | String | ç¯å¢ ID |
| versionName | å¦ | String | çæ¬åç§°ï¼ä¸ buildId äºéä¸ï¼ |
| buildId | å¦ | String | æå»º IDï¼ä¸ versionName äºéä¸ï¼ |
3. è¿åç»æâ
| åæ®µ | ç±»å | 说æ |
|---|---|---|
| BuildType | String | æå»ºç±»å |
| BuildId | String | æå»º ID |
| Status | String | æå»ºç¶æï¼BUILDING / SUCCESS / FAILED / PENDING |
| Domain | String | çæ¬è®¿é®ååï¼SUCCESS æ¶æå¼ï¼ |
| Url | String | çæ¬è®¿é® URLï¼SUCCESS æ¶æå¼ï¼ |
| BuildDuration | Number | æå»ºèæ¶ï¼ç§ï¼ |
| FailReason | String | 失败åå ï¼FAILED æ¶æå¼ï¼ |
describeAppVersionListâ
1. æ¥å£æè¿°â
æ¥å£åè½ï¼æ¥è¯¢åºç¨ççæ¬å表
æ¥å£å£°æï¼app.cloudAppService.describeAppVersionList(params): Promise<IDescribeCloudAppVersionListResult>
2. è¾å ¥åæ°â
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| deployType | æ¯ | DeployType | é¨ç½²ç±»å |
| serviceName | æ¯ | String | åºç¨æå¡åç§° |
| envId | å¦ | String | ç¯å¢ ID |
| pageNo | å¦ | Number | 页ç |
| pageSize | å¦ | Number | æ¯é¡µå¤§å° |
3. è¿åç»æâ
| åæ®µ | ç±»å | 说æ |
|---|---|---|
| Total | Number | çæ¬æ»æ° |
| VersionList | CloudAppVersion[] | çæ¬å表 |
| RequestId | String | 请æ±å¯ä¸æ è¯ |
deleteAppVersionâ
1. æ¥å£æè¿°â
æ¥å£åè½ï¼å é¤åºç¨çæå®åå²çæ¬
æ¥å£ 声æï¼app.cloudAppService.deleteAppVersion(params): Promise<Object>
2. è¾å ¥åæ°â
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| deployType | æ¯ | DeployType | é¨ç½²ç±»å |
| serviceName | æ¯ | String | åºç¨æå¡åç§° |
| versionName | æ¯ | String | è¦å é¤ççæ¬å |
| envId | å¦ | String | ç¯å¢ ID |
代ç ä¸ä¼ â
uploadCodeâ
1. æ¥å£æè¿°â
æ¥å£åè½ï¼å°æ¬å°ä»£ç å缩åä¸ä¼ å° COSï¼ç¨äºåç» createApp é¨ç½²ã
æ¥å£å£°æï¼app.cloudAppService.uploadCode(params): Promise<IUploadCloudAppCodeResult>
é常æ
åµä¸ï¼CLIï¼tcb app deployï¼ä¼èªå¨è°ç¨æ¤æ¥å£å®æä»£ç ä¸ä¼ ï¼æ éæå¨è°ç¨ãç´æ¥ä½¿ç¨ SDK è¿è¡èªå¨åé¨ç½²æ¶æéè¦æå¨è°ç¨ã
2. è¾å ¥åæ°â
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| envId | å¦ | String | ç¯å¢ ID |
| serviceName | æ¯ | String | åºç¨æå¡åç§° |
| filePath | æ¯ | String | è¦ä¸ä¼ çæä»¶æç®å½çæ¬å°ç»å¯¹è·¯å¾ |
| ignore | å¦ | string[] | ä¸ä¼ æ¶å¿½ç¥çæä»¶/ç®å½ glob æ¨¡å¼ |
| onProgress | å¦ | Function | ä¸ä¼ è¿åº¦åè° (data: IProgressData) => void |
3. è¿åç»æâ
| åæ®µ | ç±»å | 说æ |
|---|---|---|
| cosTimestamp | String | COS ä¸ä¼ æ¶é´æ³ï¼éä¼ å
¥ createApp ç staticConfig.cosTimestamp |
| RequestId | String | 请æ±å¯ä¸æ è¯ |
宿´ä½¿ç¨ç¤ºä¾â
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. ä¸ä¼ 代ç
console.log('ä¸ä¼ 代ç ...')
const { cosTimestamp } = await app.cloudAppService.uploadCode({
serviceName,
filePath: path.resolve('./my-react-app'),
ignore: ['**/node_modules/**', '**/.git/**']
})
// 2. å建/æ´æ°åºç¨
console.log('触åé¨ç½²...')
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. 轮询æå»ºç¶æ
console.log('çå¾
æå»ºå®æï¼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('æå»ºç¶æï¼', status)
}
if (status === 'SUCCESS') {
const info = await app.cloudAppService.describeAppInfo({
deployType: 'static-hosting',
serviceName
})
console.log('é¨ç½²æåï¼è®¿é®å°åï¼', info.Domain)
} else {
console.error('é¨ç½²å¤±è´¥')
}
}
deployApp()