å¿«éå¼å§
äºå½æ°æ¬è´¨ä¹æ¯ä¸ä»½ä»£ç ï¼è¿é以 Node.js ä½ä¸ºç¤ºä¾ï¼ä»ç»å¦ä½å建äºå½æ°ã
Node.js æå¡ä¸è¬é½éè¦ä¸ä¸ªå ¥å£æä»¶ index.jsï¼å¦ææ¨ç¨å°äº npm å ï¼è¿éè¦ä¸ä¸ª package.json æä»¶ï¼ç¨äºæè¿°ä¾èµå ³ç³»ã
å æ¤æåºæ¬ç Node.js æå¡ç®å½ç»æå¦ä¸ï¼
âââ helloWorld
âââ index.js
âââ package.json
å建äºå½æ°â
æ¨å¯ä»¥éè¿ä»¥ä¸ä¸ç§æ¹å¼å建äºå½æ°ï¼è¯·æ ¹æ®æ¨çå¼åç¯å¢éæ©åéçæ¹å¼ï¼
- äºå¼åæ§å¶å°
- å°ç¨åº IDE
- æ¬å°å建
è¿å ¥ äºå¼åå¹³å°/äºå½æ°ï¼ç¹å»ãæ°å»ºäºå½æ°ãæé®ã
- éæ©åéçæ¨¡çï¼æ²¡æåéçå¯ä»¥éæ©ä»ç©ºç½å建
- éæ©è¿è¡ç¯å¢ä¸º Nodejs 18.15ï¼ä¹å¯ä»¥éæ©å ¶ä»çæ¬ï¼
- å¡«å ¥å½æ°åç§°
- ç¹å»ãå¼å§å建ãæé®
åå»ºå®æåï¼è¿å ¥å°äºå½æ°ä¸ï¼å¯ä»¥çå°é»è®¤æä¸ª index.js æä»¶ã
- ç¹å»ä¸æ¹ãä¿åå¹¶å®è£ ä¾èµãï¼å³å¯å®æäºå½æ°çé¨ç½²
å¦ææ¨æ¯åºäº ã微信å¼åè å·¥å ·ãè¿è¡å¼åäºå½æ°ï¼é£ä¹å¯ä»¥ç´æ¥å¨å¾®ä¿¡å¼åè å·¥å ·ä¸å建äºå½æ°ï¼æ¥éª¤åè äºå½æ°å¿«éå¼å§ã
- å³é®äºå½æ°ç®å½ï¼éæ©ãæ°å»º Node.js äºå½æ°ãï¼å³å¯å建äºå½æ°

- ç¼å
index.jsæä»¶å 容å¦ä¸ï¼
exports.main = async function () {
return 'Hello World!';
};
- éæ©äºå½æ°ç®å½ï¼å³é®ç¹å»ï¼éæ©ãå建并é¨ç½²ï¼äºç«¯å®è£ ä¾èµãï¼å³å¯å®æäºå½æ°çé¨ç½²

- 卿¬å°å建ä¸ä¸ªç©ºçæä»¶å¤¹ï¼ä½ä¸ºé¡¹ç®çæ ¹ç®å½ï¼è¿éå½å为
cloud-demoï¼é¡¹ç®æ ¹ç®å½ï¼ - è¿å ¥æ ¹ç®å½ï¼å建 functions æä»¶å¤¹ï¼åæ¾äºå½æ°çç®å½ï¼
- å¨ functions ä¸å建 hello_world æä»¶å¤¹ï¼å ·ä½äºå½æ°ç®å½ï¼
- å¨äºå½æ° hello_world ä¸å建 index.jsï¼äºå½æ°å ¥å£æä»¶ï¼
æ¤æ¶ç®å½ç»æå¦ä¸ï¼
âââ cloud-demo # é¡¹ç®æ ¹ç®å½
âââ functions # äºå½æ°ç®å½
âââ hello_world # äºå½æ°å®ä¾æä»¶å¤¹
âââ index.js # äºå½æ°å
¥å£æä»¶
- ç¼å
index.jsæä»¶å 容å¦ä¸ï¼
exports.main = async function () {
return 'Hello World!';
};
- ç¶åæå¼ç»ç«¯å°å½å
hello_worldæä»¶å¤¹ä¸ï¼æ§è¡ä»¥ä¸å½ä»¤åå§å package.jsonï¼
npm init -y
- éè¿ CloudBase CLI å·¥å ·è¿è¡é¨ç½²äºå½æ°
å¨ç»ç«¯æ§è¡å¦ä¸å½ä»¤å ¨å±å®è£ CLIï¼
npm i -g @cloudbase/cli
å®è£ æååè¾å ¥å¦ä¸å½ä»¤æ£æ¥æ¯å¦å®è£ æåï¼
tcb -v
妿çå°è¾åºçæ¬å·ï¼è¯´æå·²ç»å®è£ æåã
- CLI ç»å½
éè¦è®© CLI ç»å½å°äºå½æ°éè¦åå¸çç¯å¢ä¸ï¼æ§è¡å¦ä¸å½ä»¤ï¼
tcb login
CloudBase CLI ä¼èªå¨æå¼äºå¼åæ§å¶å°è·åææï¼æ¨éè¦ç¹å»ãåæææãæé®å 许 CloudBase CLI è·åææã妿¨æ²¡æç»å½ï¼æ¨éè¦ç»å½åæè½è¿è¡æ¤æä½ã
- å¨é¡¹ç®æ ¹ç®å½è¿è¡ä»¥ä¸å½ä»¤ï¼å¹¶ä¸ä½¿ç¨é»è®¤é ç½®ï¼
â ï¸ æ³¨æï¼éè¦è·åäºå¼åç¯å¢çç¯å¢ ID
tcb fn deploy hello_world -e <env-id>

è°ç¨äºå½æ°â
è°ç¨äºå½æ°ä¸»è¦æä»¥ä¸å ç§æ¹æ³ï¼
- 使ç¨äºå¼å SDK
- ä½¿ç¨ HTTP è®¿é®æå¡
- ä½¿ç¨ HTTP API
- 使ç¨å®æ¶è§¦åå¨
ä½¿ç¨ SDK è°ç¨äºå½æ°â
- å°ç¨åº
- Web
- Node.js
wx.cloud
.callFunction({
// äºå½æ°åç§°
name: 'hello_world',
// ä¼ ç»äºå½æ°çåæ°
data: {
a: 1,
},
})
.then((res) => {
console.log(res); // Hello World!
})
.catch(console.error);
import cloudbase from '@cloudbase/js-sdk';
const app = cloudbase.init({
env: 'xxxx-yyy',
});
app.callFunction({
// äºå½æ°åç§°
name: 'hello_world',
// ä¼ ç»äºå½æ°çåæ°
data: {
a: 1,
},
})
.then((res) => {
console.log(res); // Hello World!
})
.catch(console.error);
const cloudbase = require('@cloudbase/node-sdk');
const app = cloudbase.init({
env: 'xxxx-yyy',
});
app.callFunction({
// äºå½æ°åç§°
name: 'hello_world',
// ä¼ ç»äºå½æ°çåæ°
data: {
a: 1,
},
})
.then((res) => {
console.log(res); // Hello World!
})
.catch(console.error);
ä½¿ç¨ HTTP è®¿é®æå¡è°ç¨äºå½æ°â
æ¨å¯ä»¥éæ©å建 HTTP æå¡ ç¨æ¥è®¿é®äºå½æ°ï¼ç¶åéè¿ HTTP è°ç¨äºå½æ°ã
æå¦ä¸ä¸¤ç§æä½æ¹å¼ï¼
äºå¼åæ§å¶å°â
-
æ°å»ºä¸ä¸ªãååå ³èèµæºãï¼
- å ³èèµæºéæ©äºå½æ°ï¼hello_world
- ååéæ©é»è®¤ååï¼ä¹å¯ä»¥éæ©æ¨èªå®ä¹åå
- å¡«å触åè·¯å¾ï¼è¿éå¡«å
/hello

- ç¹å»ç¡®å®ï¼çå¾ 3-5 åéåï¼å³å¯å®æ HTTP æå¡ å建

- HTTP æå¡å°å为
é»è®¤åå+触åè·¯å¾ï¼æ¨ä¹å¯ä»¥éæ©ç¨èªå®ä¹ååè¿è¡ç»å®èµæº
CLI å·¥å ·â
å ·ä½è¯·åè HTTP è®¿é®æå¡
æ§è¡ä»¥ä¸å½ä»¤åå»ºä¸æ¡ HTTP æå¡è·¯ç±ï¼è·¯å¾ä¸º /helloï¼æåçäºå½æ°ä¸º hello_worldï¼
tcb service create -p hello -f hello_world -e <env-id>
éå便å¯ä»¥éè¿è¿å ¥ äºå¼åå¹³å°/HTTP è®¿é®æå¡ æ¥çå建ç HTTP æå¡ã
ä½¿ç¨ HTTP API è°ç¨äºå½æ°â
å建好äºå½æ°åï¼å¯ä»¥éè¿ HTTP API å¨ä»»æå®¢æ·ç«¯è°ç¨äºå½æ°ï¼æ é SDKã
å ·ä½è¯·åè HTTP API è°ç¨äºå½æ°ï¼è®¿é® HTTP API éè¦ä¸ä¸ª ACCESS_TOKENã
curl -L 'https://your-envId.api.tcloudbasegateway.com/v1/functions/:name' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <ACCESS_TOKEN>' \
-d '{}'