è°ç¨äºå¼åèµæº
å¨äºå½æ°ä¸å¯ä»¥ä¾¿æ·å°è°ç¨äºå¼åçåç§èµæºï¼å
æ¬æ°æ®åºãäºåå¨ãå
¶ä»äºå½æ°çãNode.js äºå½æ°ä½¿ç¨ @cloudbase/node-sdkï¼å
¶ä»è¯è¨ä½¿ç¨ HTTP APIã
Node.js äºå½æ°â
Node.js äºå½æ°ä½¿ç¨ @cloudbase/node-sdk è°ç¨äºå¼åèµæºãæ®éäºä»¶äºå½æ°ç¯å¢ä¸æ éé
ç½®é´æåæ°ï¼å¯ç´æ¥è°ç¨ã
Web äºå½æ°ï¼HTTP äºå½æ°ï¼çè¿è¡ç¯å¢ä¸ä¼æ³¨å
¥ TENCENTCLOUD_SECRETID / TENCENTCLOUD_SECRETKEY é´æç¯å¢åéï¼ä¸æ¾å¼é
ç½®é´æä¼å¯¼è´ getCredential failed / secretId or secretKey not found çéè¯¯ï¼æææ¥å£è°ç¨å¤±è´¥ãå¨ Web äºå½æ°ä¸åå§å SDK æ¶å¿
é¡»æ¾å¼æå®ä»¥ä¸ä»»ä¸é´ææ¹å¼ï¼
- API Keyï¼æ¨èï¼ï¼å¨å½æ°ç¯å¢åéä¸é
ç½®
CLOUDBASE_APIKEYï¼åå§åæ¶ä¼ å ¥accessKey - è
¾è®¯äºå¯é¥å¯¹ï¼åå§åæ¶æ¾å¼ä¼ å
¥
secretId+secretKey
const tcb = require("@cloudbase/node-sdk");
// æ¹å¼ä¸ï¼æ¨èï¼ï¼å¨å½æ°ç¯å¢åéä¸é
ç½® CLOUDBASE_APIKEY
const app = tcb.init({
env: tcb.SYMBOL_DEFAULT_ENV,
accessKey: process.env.CLOUDBASE_APIKEY,
});
// æ¹å¼äºï¼æ¾å¼ä¼ å
¥è
¾è®¯äºå¯é¥å¯¹
// const app = tcb.init({
// env: tcb.SYMBOL_DEFAULT_ENV,
// secretId: "xxx",
// secretKey: "xxx"
// })
å®è£ SDKâ
npm install @cloudbase/node-sdk --save
åå§åâ
卿®éäºä»¶äºå½æ°ä¸åå§å SDKï¼æ éé
ç½® secretIdãsecretKey çé´æåæ°:
const tcb = require("@cloudbase/node-sdk");
const app = tcb.init({
env: tcb.SYMBOL_DEFAULT_ENV, // 使ç¨å½åäºå½æ°é»è®¤ç¯å¢ ID
});
è°ç¨æ°æ®åºç¤ºä¾â
- æ¥è¯¢æ°æ®
- æ°å¢æ°æ®
- æ´æ°æ°æ®
- å 餿°æ®
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({
env: tcb.SYMBOL_DEFAULT_ENV
})
exports.main = async (eventï¼ context) => {
const db = app.database()
// æ¥è¯¢åæ¡è®°å½
const user = await db.collection('users')
.doc('user-id-123')
.get()
// æ¥è¯¢å¤æ¡è®°å½
const todos = await db.collection('todos')
.where({
completed: false
})
.orderBy('createdAt'ï¼ 'desc')
.limit(10)
.get()
return {
user: user.dataï¼
todos: todos.data
}
}
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({
env: tcb.SYMBOL_DEFAULT_ENV
})
exports.main = async (eventï¼ context) => {
const db = app.database()
const result = await db.collection('todos').add({
title: 'å¦ä¹ äºå¼å'ï¼
completed: falseï¼
createdAt: new Date()
})
return {
id: result.idï¼
message: 'æ°å¢æå'
}
}
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({
env: tcb.SYMBOL_DEFAULT_ENV
})
exports.main = async (eventï¼ context) => {
const db = app.database()
// æ´æ°åæ¡è®°å½
await db.collection('todos')
.doc('todo-id-123')
.update({
completed: trueï¼
updatedAt: new Date()
})
// æ¹éæ´æ°
await db.collection('todos')
.where({
completed: false
})
.update({
priority: 'high'
})
return { message: 'æ´æ°æå' }
}
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({
env: tcb.SYMBOL_DEFAULT_ENV
})
exports.main = async (eventï¼ context) => {
const db = app.database()
// å é¤åæ¡è®°å½
await db.collection('todos')
.doc('todo-id-123')
.remove()
// æ¹éå é¤
await db.collection('todos')
.where({
completed: true
})
.remove()
return { message: 'å 餿å' }
}
å ¶ä»è¯è¨äºå½æ°â
å ¶ä»è¯è¨(PythonãJavaãGoãPHP ç)çäºå½æ°éè¦ä½¿ç¨ãHTTP APIãè°ç¨äºå¼åèµæºã
HTTP API æä¾äºéè¿ HTTP å议访é®äºå¼åå¹³å°åè½çæ¥å£ï¼è¯¦ç»æ¥å£ææ¡£è¯·åè HTTP API ææ¡£
示ä¾:Python äºå½æ°è°ç¨ MySQL æ°æ®åºâ
è·å access_token 请åè è·åAccessToken
- æ¥è¯¢æ°æ®
- æ¡ä»¶æ¥è¯¢
- æåºä¸å页
import requests
import os
def main_handler(event, context):
# è·åç¯å¢åé
env_id = os.environ.get('TCB_ENV')
# æ¥è¯¢ film 表ä¸å¯¼æ¼ä¸º Christopher Nolan ççµå½±
url = f'https://{env_id}.api.tcloudbasegateway.com/v1/rdb/rest/film'
params = {
'director': 'eq.Christopher Nolan',
'select': 'title,director,release_year,duration'
}
headers = {
'Authorization': 'Bearer <access_token>',
'Content-Type': 'application/json'
}
response = requests.get(url, params=params, headers=headers)
if response.status_code == 200:
return {
'code': 0,
'data': response.json()
}
else:
return {
'code': -1,
'message': response.text
}
import requests
import os
def main_handler(event, context):
env_id = os.environ.get('TCB_ENV')
# æ¥è¯¢ 2000 å¹´å䏿 ççµå½±ï¼æ¶é¿ä¸è¶
è¿ 120 åé
url = f'https://{env_id}.api.tcloudbasegateway.com/v1/rdb/rest/film'
params = {
'release_year': 'gte.2000',
'duration': 'lt.120',
'select': 'title,director,release_year,duration'
}
headers = {
'Authorization': 'Bearer <access_token>'
}
response = requests.get(url, params=params, headers=headers)
return response.json()
import requests
import os
def main_handler(event, context):
env_id = os.environ.get('TCB_ENV')
# æ¥è¯¢ææ¾æ¶é¿æé¿çå 3 é¨çµå½±
url = f'https://{env_id}.api.tcloudbasegateway.com/v1/rdb/rest/film'
params = {
'order': 'duration.desc',
'limit': 3,
'select': 'title,director,duration,release_year'
}
headers = {
'Authorization': 'Bearer <access_token>',
'Prefer': 'count=exact' # è¿åæ» æ°
}
response = requests.get(url, params=params, headers=headers)
# ä»ååºå¤´è·åæ»æ°
content_range = response.headers.get('content-range', '')
total = content_range.split('/')[-1] if content_range else 0
return {
'data': response.json(),
'total': total
}
ð¡ æç¤º:
- å¨äºå½æ°ç¯å¢ä¸ï¼å¯éè¿ç¯å¢åé
TCB_ENVè·åç¯å¢ IDï¼TCB_CONTEXT_KEYSè·å访é®ä»¤ç- å¯¹äº PythonãJavaãGo çè¯è¨ï¼å»ºè®®ä½¿ç¨ HTTP API çæ¹å¼è°ç¨äºå¼åèµæº
- 详ç»çæä½ç¬¦ãæ¥è¯¢åæ°è¯·æ¥é MySQL æ°æ®åºæ¥è¯¢ææ¡£
- 宿´ç HTTP API æ¥å£è¯·åè HTTP API ææ¡£