äºå½æ°
getFunctionListâ
1. æ¥å£æè¿°â
æ¥å£åè½ï¼è·åäºå½æ°å表
æ¥å£å£°æï¼getFunctionList(limit, offset): Promise<Object>
èª 3.7.0 çæ¬èµ·æ¯ææ¤æ¥å£
2. è¾å ¥åæ°â
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| limit | å¦ | Number | èå´ |
| offset | å¦ | Number | åç§» |
3. è¿åç»æâ
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| RequestID | æ¯ | String | 请æ±å¯ä¸æ è¯ |
| TotalCount | æ¯ | Number | æ»æ° |
| Functions | æ¯ | Array | 彿°å表 |
| Functions[].FunctionId | æ¯ | String | 彿° ID |
| Functions[].FunctionName | æ¯ | String | 彿°åç§° |
| Functions[].Namespace | æ¯ | String | å½åç©ºé´ |
| Functions[].Runtime | æ¯ | String | è¿è¡æ¶é´ |
| Functions[].AddTime | æ¯ | String | å建æ¶é´ |
| Functions[].ModTime | æ¯ | String | ä¿®æ¹æ¶é´ |
| Functions[].Status | æ¯ | String | 彿°ç¶æ |
| Functions[].StatusDesc | æ¯ | String | 彿°ç¶æè¯¦æ |
| Functions[].Description | æ¯ | String | 彿°æè¿° |
4. 示ä¾ä»£ç â
import CloudBase from '@cloudbase/manager-node'
const { functions } = new CloudBase({
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // äºå¼åç¯å¢IDï¼å¯å¨è
¾è®¯äºäºå¼åæ§å¶å°è·å
})
async function test() {
let res = await functions.getFunctionList(20, 0)
const { Functions } = res
for(let function in Functions) {
console.log(function)
}
}
test()
createFunctionâ
1. æ¥å£æè¿°â
æ¥å£åè½ï¼åå»ºå½æ°
æ¥å£å£°æï¼createFunction(funcParam: ICreateFunctionParam): Promise<Object>
â ï¸ æ¬æ¥å£ä» 2.0.0 çæ¬åï¼è¯·æ±åæ°ç±( func: ICloudFunction, functionRootPath: string, force: boolean, base64Code: string ) 转æ¢ä¸º (funcParam: ICreateFunctionParam)ï¼å±äºä¸å ¼å®¹åæ´
2. è¾å ¥åæ°â
ICreateFunctionParamâ
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| func | æ¯ | ICloudFunction | 彿°é ç½® |
| functionRootPath | å¦ | String | ç¨æ·æ¬å°å½æ°æä»¶ç®å½ |
| force | å¦ | Boolean | æ¯å¦è¦çåå彿°ï¼é»è®¤ä¸º false |
| base64Code | å¦ | String | 彿°æä»¶ç base64 ç¼ç |
| codeSecret | å¦ | String | 代ç ä¿æ¤å¯é¥ |
| functionPath | å¦ | String | 彿°æå¨æä»¶å¤¹è·¯å¾ |
| deployMode | å¦ | String | 代ç é¨ç½²æ¹å¼ï¼cosãzip æ imageï¼é»è®¤ cosï¼zip éå¶ 1.5MBï¼ |
| code | å¦ | IFunctionCode | ç´æ¥ä¼ å
¥ Codeï¼å¦ CosBucketNameï¼ä¸å
å« -appid åç¼ï¼/ CosObjectName / ZipFile / ImageConfigï¼ |
ð¡ ä¸ä¼ æ¹å¼è¯´æï¼é»è®¤ä½¿ç¨
cosï¼å¯æå®zipï¼éå¶ 1.5MBï¼æimageï¼éåé¨ç½²ï¼ã
ð¡ åæ°ä¼å 级说æï¼
deployMode=image> æ¾å¼code> æ¬å°æå åæ°ï¼base64Code/functionPath/functionRootPathï¼ã
ð¡ å²çªå¤ç说æï¼å½åæ¶ä¼ å ¥
code䏿¬å°æå åæ°æ¶ï¼å°ä¼å 使ç¨codeã
ð¡ éåé¨ç½²è¯´æï¼ä½¿ç¨
deployMode=imageæcode.ImageConfigæ¶ï¼éæä¾ImageUriã
注ï¼å¦æåªæ´æ°å½æ°ä»£ç ï¼è¯·ä½¿ç¨ updateFunctionCode æ¥å£ã
注ï¼å¦æåå¨ååäºå½æ°ï¼å¹¶è®¾ç½®äº force é项为 trueï¼SDK å°ä¼èªå¨æ´æ°å½æ°ä»£ç ï¼æ´æ°å½æ°é 置并å建触åå¨ã
注ï¼createFunction æ¯æå¤ç§æ¹å¼åå»ºå½æ°ï¼
- ç¨æ·ç´æ¥æå®å½æ°æä»¶å¤¹çè·¯å¾
- ç¨æ·æå®æ¬å°ç忾彿°æä»¶å¤¹çæ ¹ç®å½
functionRootPathï¼æ ¹æ®functionRootPath + nameç¡®å®å½æ°æä»¶è·¯å¾ - ç¨æ·å°å½æ°ä»£ç å å缩为 zip æä»¶åè¿è¡ base64 转ç ï¼ä¼ å ¥ base64Code åæ°
- ç¨æ·ç´æ¥ä¼ å
¥
codeè¿è¡å建
IFunctionCodeâ
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| CosBucketName | å¦ | String | COS å卿¡¶åç§°ï¼ä¸å
å« -appid åç¼ï¼ |
| CosObjectName | å¦ | String | COS å¯¹è±¡è·¯å¾ |
| CosBucketRegion | å¦ | String | COS å卿¡¶å°å |
| TempCosObjectName | å¦ | String | ä¸´æ¶ COS 对象路å¾ï¼TempCosï¼ |
| ZipFile | å¦ | String | ZIP å ç base64 ç¼ç å 容 |
| CosTimestamp | å¦ | String | ä¸ä¼ å°äºå¼å COS åè¿åçæ¶é´æ³ |
| ImageConfig | å¦ | IFunctionImageConfig | éåé ç½®ï¼éåé¨ç½²æ¶ä½¿ç¨ï¼ |
IFunctionImageConfigâ
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| ImageType | æ¯ | String | éåä»åºç±»åï¼personal æ enterprise |
| ImageUri | æ¯ | String | éåå°åï¼æ ¼å¼ï¼{domain}/{namespace}/{imageName}:{tag}@{digest}ï¼æ¯æä¸å¸¦ digestï¼ |
| RegistryId | å¦ | String | ä¼ä¸ç TCR å®ä¾ IDï¼å½ ImageType=enterprise æ¶å¿
å¡« |
| Command | å¦ | String | 容å¨å¯å¨å½ä»¤ï¼ä¸å¡«æ¶é»è®¤ä½¿ç¨ Dockerfile ä¸ç Entrypoint |
| Args | å¦ | String | 容å¨å¯å¨åæ°ï¼ä¸å¡«æ¶é»è®¤ä½¿ç¨ Dockerfile ä¸ç CMDï¼å¤ä¸ªåæ°ç¨ç©ºæ ¼åé |
| ImagePort | å¦ | Integer | éå彿°ç«¯å£ï¼Web Server éå为 9000ï¼Job éå为 -1ï¼é»è®¤ 9000 |
注ï¼ICloudFunctionConfig 为æ§åæ°ç»æä½
ICloudFunctionConfigâ
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| timeout | å¦ | Number | 彿°è¶ æ¶æ¶é´ï¼åä½ç§ï¼é»è®¤ 10 ç§ |
| envVariables | å¦ | Record<string, string | number | boolean> | å å«ç¯å¢åéçé®å¼å¯¹å¯¹è±¡ |
| vpc | å¦ | IFunctionVPC | ç§æç½ç»é ç½® |
| runtime | å¦ | String | è¿è¡æ¶ç¯å¢é ç½®ï¼å¯éå¼è§è¿è¡ç¯å¢æ¯æ |
| installDependency | å¦ | Boolean | æ¯å¦å®è£ ä¾èµï¼ä» Node.js ææ |
| memorySize | å¦ | Number | 彿°è¿è¡æ¶å å大å°ï¼åä½ MBï¼é»è®¤ 256 |
| l5 | å¦ | Boolean | æ¯å¦å¯ç¨ L5 è®¿é® |
| role | å¦ | String | 彿°ç»å®çè§è² |
ICloudFunctionâ
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| name | æ¯ | String | 彿°åç§° |
| description | å¦ | String | 彿°æè¿° |
| type | å¦ | String | 彿°ç±»åï¼å¯éå¼ï¼Eventï¼é»è®¤ï¼æ HTTP |
| timeout | å¦ | Number | 彿°è¶ æ¶æ¶é´ï¼åä½ç§ï¼é»è®¤ 10 ç§ |
| envVariables | å¦ | Record<string, string | number | boolean> | å å«ç¯å¢åéçé®å¼å¯¹å¯¹è±¡ |
| vpc | å¦ | IFunctionVPC | ç§æç½ç»é ç½® |
| runtime | å¦ | String | è¿è¡æ¶ç¯å¢é ç½®ï¼å¯éå¼è§è¿è¡ç¯å¢æ¯æ |
| installDependency | å¦ | Boolean | æ¯å¦å®è£ ä¾èµï¼ä» Node.js ææ |
| memorySize | å¦ | Number | 彿°è¿è¡æ¶å å大å°ï¼åä½ MBï¼é»è®¤ 256 |
| l5 | å¦ | Boolean | æ¯å¦å¯ç¨ L5 è®¿é® |
| role | å¦ | String | 彿°ç»å®çè§è² |
| triggers | å¦ | Array of ICloudFunctionTrigger | 触åå¨é ç½®å表 |
| handler | å¦ | String | 彿°å ¥å£ |
| ignore | å¦ | String æ Array<String> | ä¸ä¼ 彿°ä»£ç æ¶å¿½ç¥çæä»¶ï¼ä»¥ Glob 模å¼å¹é |
| isWaitInstall | å¦ | Boolean | æ¯å¦çå¾ ä¾èµå®è£ 宿 |
| codeSecret | å¦ | String | 代 ç ä¿æ¤å¯é¥ |
| layers | å¦ | Array<ILayerItem> | 彿°è¦å ³èç Layer çæ¬å表ï¼Layer ä¼æç §å¨å表ä¸é¡ºåºä¾æ¬¡è¦ç |
ILayerItemâ
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| name | æ¯ | String | layer åç§° |
| version | æ¯ | Number | çæ¬å· |
注ï¼handler 彿°å¤çå
¥å£ï¼Node.js 项ç®é»è®¤å¼ä¸º index.mainï¼å
¥å£æä»¶åªè½å¨æ ¹ç®å½ï¼å¦ Node.js 项ç®ç index.mainï¼æåçæ¯ index.js æä»¶ç main æ¹æ³
注ï¼å¦æä½¿ç¨å¨çº¿å®è£
ä¾èµï¼Node.js è¿è¡æ¶é设置为 Nodejs20.19 çæ¯æççæ¬ï¼ä¸å¿
é¡»å¨å
¥å£æä»¶å级ç®å½è®¾ç½® package.jsonï¼å¨çº¿å®è£
ä¾èµæä¸æ¯æå
¶ä»è¿è¡æ¶
妿ä¸ä½¿ç¨å¨çº¿å®è£
ä¾èµï¼Node.js è¿è¡æ¶æ éå¡« runtime ï¼é»è®¤Nodejs20.19ï¼ï¼ä½ä½¿ç¨ Php å Java åå¿
å¡«runtime ã
ICloudFunctionTriggerâ
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| name | æ¯ | String | 触åå¨åç§° |
| type | æ¯ | String | 触åå¨ç±»åï¼å¯éå¼ï¼timer |
| config | æ¯ | String | 触åå¨é ç½®ï¼å¨å®æ¶è§¦åå¨ä¸ï¼config æ ¼å¼ä¸º cron è¡¨è¾¾å¼ |
IFunctionVPCâ
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| vpcId | æ¯ | String | VPC Id |
| subnetId | æ¯ | String | VPC åç½ Id |
â ï¸ è¯·å¨æµè¯æ¶å¨äºå¼åæ§å¶å°ç¡®è®¤å½æ°å建并é¨ç½²æåï¼æå¯è½å建æåï¼
createFunctionæåè¿åï¼ä½æ¯é¨ç½²å¤±è´¥ï¼é¨ç½²å¤±è´¥çåå é常为handler忰䏿ºç å ä¸å¯¹åºã
3. è¿åç»æâ
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| RequestId | æ¯ | String | è¯·æ± ID |
4. 示ä¾ä»£ç â
import CloudBase from "@cloudbase/manager-node";
const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // äºå¼åç¯å¢IDï¼å¯å¨è
¾è®¯äºäºå¼åæ§å¶å°è·å
});
async function test() {
await functions.createFunction({
func: {
// functions æä»¶å¤¹ä¸å½æ°æä»¶å¤¹çåç§°ï¼å³å½æ°å
name: "app",
// è¶
æ¶æ¶é´
timeout: 5,
// ç¯å¢åé
envVariables: {
key: "value",
akey: "c",
},
runtime: "Nodejs20.19",
// 彿°è§¦åå¨ï¼è¯´æè§ææ¡£: https://cloud.tencent.com/document/product/876/32314
triggers: [
{
// name: 触åå¨çåå
name: "myTrigger",
// type: 触åå¨ç±»åï¼ç®åä»
æ¯æ timer ï¼å³å®æ¶è§¦åå¨ï¼
type: "timer",
// config: 触åå¨é
ç½®ï¼å¨å®æ¶è§¦åå¨ä¸ï¼config æ ¼å¼ä¸º cron 表达å¼
config: "0 0 2 1 * * *",
},
],
layers: [
{
version: 1,
name: "layerName",
},
],
},
functionRootPath: "",
force: true,
base64Code:
"UEsDBAoAAAAAAOdCBU8AAAAAAAAAAAAAAAAFAAAAZGlzdC9QSwMEFAAIAAgAkhkBTwAAAAAAAAAAAAAAAAgAAABpbmRleC5qc2WNMQrDMBRDd59Cmx0IuUEy9wadXfdTQlT/Yv+UQMndmxZv0ST0kOTXKqhW5mTeOdleWqwOzzhnjAjylmw9kmaT7WcieYtp6TBO+DgcOlhVykB9BH8RUnHVwrvvTvi/do7begPtIeSV7NEqu/sCUEsHCLKdLCxuAAAAqAAAAFBLAwQUAAgACADnQgVPAAAAAAAAAAAAAAAADQAAAGRpc3QvZGlzdC56aXAL8GZm4WIAgedOrP5gBpRgBdIpmcUl+gFAJSIMHEA4SZIRRQkHUElmXkpqhV5WcWqvIddhAxHn8vlOs2U5djoafWebG/s92Cnkf9L/KQ4n784Wy7+o8mXCk+taK8KepdyzvBkXtYbvvEV6D8enaTm2k9Imv01XquzOfGng98NCxioi9JRDLUu9YFDh1UO73/v92F/Wd7uK+a3ik6lvLmrt/s0U4M3OsWmujk4e0AUrgBjhRnRv8MK8AfKLXlVmAQBQSwcITXynOsAAAADyAAAAUEsBAi0DCgAAAAAA50IFTwAAAAAAAAAAAAAAAAUAAAAAAAAAAAAQAO1BAAAAAGRpc3QvUEsBAi0DFAAIAAgAkhkBT7KdLCxuAAAAqAAAAAgAAAAAAAAAAAAgAKSBIwAAAGluZGV4LmpzUEsBAi0DFAAIAAgA50IFT018pzrAAAAA8gAAAA0AAAAAAAAAAAAgAKSBxwAAAGRpc3QvZGlzdC56aXBQSwUGAAAAAAMAAwCkAAAAwgEAAAAA",
});
}
test();
ä½¿ç¨ codeï¼COSï¼åå»ºå½æ°ç¤ºä¾ï¼
async function testCreateByCosCode() {
await functions.createFunction({
func: {
name: "app-cos-code",
timeout: 5,
runtime: 'Nodejs18.15',
installDependency: false,
envVariables: {}
},
code: {
CosBucketName: "my-bucket",
CosObjectName: "functions/app-cos-code.zip",
CosBucketRegion: "ap-shanghai",
},
});
}
testCreateByCosCode();
ð¡
CosBucketNameä» å¡«åå卿¡¶åç§°æ¬ä½ï¼ä¸å å«-appidåç¼ï¼ä¾å¦å¡«åmy-bucketï¼ä¸æ¯my-bucket-1250000000ï¼ã
updateFunctionCodeâ
1. æ¥å£æè¿°â
æ¥å£åè½ï¼æ´æ°äºå½æ°ä»£ç
æ¥å£å£°æï¼updateFunctionCode(funcParam: IUpdateFunctionCodeParam): Promise<Object>
â ï¸ æ¬æ¥å£ä» 2.0.0 çæ¬åï¼è¯·æ±åæ°ç±( func: ICloudFunction, functionRootPath: string, base64Code: string ) 转æ¢ä¸º (funcParam: IUpdateFunctionCodeParam)ï¼å±äºä¸å ¼å®¹åæ´
2. è¾å ¥åæ°â
IUpdateFunctionCodeParamâ
| åæ®µ | å¿ å¡« | ç±»å | 说æ |
|---|---|---|---|
| func | æ¯ | ICloudFunction | 彿°é ç½® |
| functionPath | å¦ | String |