新聞中心
CloudBase CLI 是一個(gè)開(kāi)源的命令行界面交互工具,用于幫助用戶快速、方便的部署項(xiàng)目,管理云開(kāi)發(fā)資源。有了這個(gè)工具,我們就能在電腦本地管理小程序云開(kāi)發(fā)、Web端云開(kāi)發(fā)創(chuàng)建的環(huán)境,對(duì)環(huán)境里的云函數(shù)、云存儲(chǔ)、云數(shù)據(jù)庫(kù)進(jìn)行增刪改查等操作。

一CLI工具安裝與登錄
1、安裝Cloudbase CLI工具
在本地電腦安裝好了Node環(huán)境之后,我們可以打開(kāi)電腦終端(Windows電腦為cmd命令提示符,Mac電腦為終端Terminal),然后逐行輸入并按Enter執(zhí)行下面的代碼就可在電腦里安裝CloudBase Cli工具:
npm install -g @cloudbase/cli
cloudbase -v
-g是全局安裝的意思,可能會(huì)出現(xiàn)權(quán)限不夠的提示,如果是Mac電腦可以在前面加一個(gè)sudo,而Windows可以通過(guò)管理員的方式打開(kāi)cmd命令提示符。
安裝完成后,你可以使用 cloudbase -v驗(yàn)證是否安裝成功,如果輸出了版本號(hào),則表明 CloudBase CLI 被成功安裝到您的計(jì)算機(jī)中。
2、CLI工具登錄與登出
要讓Cloudbase Cli工具登錄,首先我們打開(kāi)騰訊云云開(kāi)發(fā)控制臺(tái),選擇微信公眾號(hào)的方式來(lái)登錄,掃描選擇你的小程序賬號(hào),這樣就可以進(jìn)入管理控制臺(tái)查看到你在開(kāi)發(fā)者工具創(chuàng)建的云開(kāi)發(fā)環(huán)境了。
在終端中輸入下面的命令,CLI 工具會(huì)自動(dòng)打開(kāi)云開(kāi)發(fā)控制臺(tái)獲取授權(quán),在控制臺(tái)的網(wǎng)頁(yè)上點(diǎn)擊同意授權(quán)按鈕允許 CloudBase CLI 獲取授權(quán)。登錄成功后,在終端就會(huì)有登錄成功的提示,并附帶一些操作的tips,這些操作的tips我們以后會(huì)用到。
cloudbase login
而要登出命令行工具CloudBase CLI的賬號(hào)則可以使用 cloudbase logout。
Cloudbase CLI 還有一種獲取授權(quán)并登陸的方式,就是使用騰訊云的API 密鑰授權(quán)。首先到騰訊云官網(wǎng)獲取云 API 密鑰新建密鑰,然后輸入以下命令并按提示輸入密鑰的 SecretId 和 SecretKey 就可以完成登錄:
cloudbase login --key
通過(guò)這種方式可以操作名下的所有騰訊云資源,因此注意要妥善保存和定期更換密鑰,舊秘鑰要及時(shí)刪除。這種方式主要用于環(huán)境的批量管理。
3、了解CloudBase Cli命令
幾乎所有的命令行工具,都支持--help的方式輸出幫助信息來(lái)查看命令行主要支持哪些命令,這樣我們就沒(méi)有必要死記硬背命令了,直接通過(guò)這種方式來(lái)查看即可。
cloudbase --help
打印之后我們就可以看到CloudBase Cli除了我們前面的查看版本、登錄騰訊云賬號(hào)、輸出幫助信息等命令外,還有很多命令并予以了一個(gè)簡(jiǎn)單的注解,有了這些命令我們就能對(duì)CloudBase Cli工具有了一些非常全面的了解了。比如我們想查看我們的賬號(hào)下的環(huán)境信息,通過(guò)幫助信息了解到可以在終端輸入以下命令即可:
cloudbase env:list
二、創(chuàng)建云開(kāi)發(fā)項(xiàng)目
1、初始化環(huán)境
要如何在本地電腦與云開(kāi)發(fā)的環(huán)境建立聯(lián)系呢?就需要我們?cè)陔娔X本地初始化環(huán)境。在電腦的C盤(Windows)或電腦的下載文件夾(Mac)里新建一個(gè)文件夾比如tcbweb,然后在終端里輸入以下命令進(jìn)入到該目錄,
#Windows 電腦
cd /d C:\download\tcbweb
## Mac電腦
cd downloads/tcbweb然后再在終端輸入以下命令來(lái)創(chuàng)建項(xiàng)目:
cloudbase init
這時(shí)會(huì)需要選擇環(huán)境、輸入項(xiàng)目名稱、開(kāi)發(fā)語(yǔ)言、云開(kāi)發(fā)模板,我們可以通過(guò)鍵盤的上下鍵來(lái)選擇,開(kāi)發(fā)語(yǔ)言要選擇Nodejs(云開(kāi)發(fā)也支持PHP、Java),模板可以選擇Hello World(也可以視情需求選擇其他模板),確認(rèn)之后項(xiàng)目就可以創(chuàng)建好了。
2、云開(kāi)發(fā)項(xiàng)目
使用 cloudbase init 初始化項(xiàng)目時(shí), CloudBase CLI 根據(jù)你輸入的項(xiàng)目名稱創(chuàng)建一個(gè)文件夾,并寫入相關(guān)的配置和模板文件,創(chuàng)建的項(xiàng)目文件結(jié)構(gòu)如下所示:
.
├── _gitignore
├── functions // 云函數(shù)目錄
│ └── app
│ └── index.js
└── cloudbaserc.js // 項(xiàng)目配置文件
所有 CloudBase CLI 命令均在配置文件cloudbaserc.js所在目錄執(zhí)行,也就是說(shuō)要在終端運(yùn)行Cloudbase CLI命令,需要先進(jìn)入cloudbaserc.js所在的目錄,cloudbaserc.js在哪里,哪里就是這個(gè)項(xiàng)目的根目錄。建議編輯代碼時(shí)使用編輯器比如 Visual Studio Code或IDE工具Webstrom之類的,打開(kāi)創(chuàng)建好的項(xiàng)目文件夾tcbweb,這樣方便運(yùn)行、調(diào)試、編輯。
云開(kāi)發(fā)項(xiàng)目是和云開(kāi)發(fā)環(huán)境資源關(guān)聯(lián)的實(shí)體,云開(kāi)發(fā)項(xiàng)目聚合了云函數(shù)、數(shù)據(jù)庫(kù)、文件存儲(chǔ)等服務(wù),您可以在云開(kāi)發(fā)項(xiàng)目中編寫函數(shù),存儲(chǔ)文件,并通過(guò) CloudBase CLI 工具 快速的操作您的云函數(shù)、文件存儲(chǔ)、數(shù)據(jù)庫(kù)等資源。
3、CLI配置文件
配置文件可以簡(jiǎn)化 CloudBase CLI 使用,方便項(xiàng)目開(kāi)發(fā),當(dāng)使用命令參數(shù)缺省時(shí),CloudBase CLI 會(huì)從配置文件中解析相關(guān)參數(shù)并使用,方便開(kāi)發(fā)者以更簡(jiǎn)單的方式使用 CloudBase CLI。
默認(rèn)情況下,使用 cloudbase init 初始化項(xiàng)目時(shí),會(huì)生成 cloudbaserc.js 或 cloudbaserc.json 文件作為配置文件,你也可以使用 --config-file 指定其他文件作為配置文件,文件必須滿足格式要求。
{
"envId": "dev-xxxx", // 關(guān)聯(lián)環(huán)境 ID
"functionRoot": "functions", // 云函數(shù)文件夾名稱,相對(duì)路徑,可以省略 './
"functions": [ // 云函數(shù)配置
{
"name": "app", // functions 文件夾下函數(shù)文件夾的名稱,即函數(shù)名
"config": { // 云函數(shù)配置
"timeout": 5, // 超時(shí)時(shí)間,單位:秒 S
"envVariables": { // 環(huán)境變量
"key": "value"
}
}
}
]
}
在 CLI 配置文件cloudbaserc.js中,functions是一個(gè)數(shù)組,可以包含多個(gè)函數(shù)配置項(xiàng),函數(shù)配置項(xiàng)包含了函數(shù)名稱(name),函數(shù)運(yùn)行配置(config),函數(shù)調(diào)用傳入?yún)?shù)(params)等多項(xiàng)與函數(shù)相關(guān)的信息,影響著函數(shù)操作的行為表現(xiàn),更多具體的配置比如私有網(wǎng)絡(luò)、觸發(fā)器等可以去參考相關(guān)技術(shù)文檔。
{
envId: 'dev-xxxx', // 關(guān)聯(lián)環(huán)境 ID
functions: [ // 函數(shù)配置
{
name: 'app', // functions 文件夾下函數(shù)文件夾的名稱,即函數(shù)名
config: { // 函數(shù)配置
timeout: 5, // 超時(shí)時(shí)間,單位:秒 S
envVariables: {
key: 'value' // 環(huán)境變量
},
// 私有網(wǎng)絡(luò)配置,如果不使用私有網(wǎng)絡(luò),可不配置
vpc: {
// vpc id
vpcId: 'vpc-xxx',
// 子網(wǎng) id
subnetId: 'subnet-xxx'
},
runtime: 'Nodejs10.15',// 運(yùn)行時(shí),目前可選運(yùn)行包含:Nodejs8.9, Nodejs10.15,Php7, Java8等,默認(rèn)為Nodejs 10.15
installDependency: true // 是否云端安裝依賴,僅支持 Node.js 項(xiàng)目
},
triggers: [ // 函數(shù)觸發(fā)器
{
name: 'myTrigger', // name: 觸發(fā)器的名字
type: 'timer', // type: 觸發(fā)器類型,目前僅支持 timer (即定時(shí)觸發(fā)器)
config: '0 0 2 1 * * *' // config: 觸發(fā)器配置,在定時(shí)觸發(fā)器下,config 格式為 cron 表達(dá)式
}
],
handler: 'index.main',
params: {}, // functions:invoke 本地觸發(fā)云函數(shù)時(shí)的調(diào)用參數(shù)
ignore: [ // 部署/更新云函數(shù)時(shí)忽略的文件
'*.md', // 忽略 markdown 文件
'node_modules', // 忽略 node_modules 文件夾
'node_modules/**/*'
]
}
]
}
三、使用CLI工具操作云函數(shù)
1、查看云函數(shù)信息
我們可以在終端輸入以下命令列出所有云函數(shù)(一次只會(huì)列出前20條)并查看云函數(shù)的基本信息:
cloudbase functions:list
如果你的函數(shù)較多,需要列出其他的函數(shù),你可以通過(guò)下面的選項(xiàng)指定返回的數(shù)據(jù)長(zhǎng)度以及數(shù)據(jù)的偏移量,有點(diǎn)類似于通過(guò)skip來(lái)翻頁(yè)了。
-l, --limit 返回?cái)?shù)據(jù)長(zhǎng)度,默認(rèn)值為 20
-o, --offset 數(shù)據(jù)偏移量,默認(rèn)值為 0
#返回前 10 個(gè)函數(shù)的信息
cloudbase functions:list -l 10
#返回第 3 - 22 個(gè)函數(shù)的信息(包含 3 和 22)
cloudbase functions:list -l 20 -o 2
如果想查看所有云函數(shù)的詳情、某個(gè)云函數(shù)的詳情或某個(gè)云函數(shù)的調(diào)用日志,可以在終端輸入以下命令來(lái)獲取:
## 查看具體某個(gè)云函數(shù)的詳情,比如云函數(shù)名為login
cloudbase functions:detail login
## 查看配置文件中的所有云函數(shù)的詳情,注意是配置文件cloudbaserc.js 中的云函數(shù)
cloudbase functions:detail
#查看云函數(shù)的調(diào)用日志,比如云函數(shù)名為login
cloudbase functions:log login
我們可以通過(guò)查看云函數(shù)的詳情了解到云函數(shù)的運(yùn)行環(huán)境、網(wǎng)絡(luò)、觸發(fā)器、修改時(shí)間以及具體的代碼等等,這是讓我們可以在電腦本地了解一個(gè)云函數(shù)的部署情況的非常重要的命令了。
2、觸發(fā)云函數(shù)
你可以在本地通過(guò) Cloudbase CLI 直接觸發(fā)云函數(shù),也就是直接調(diào)用在服務(wù)端的云函數(shù),調(diào)用成功后,會(huì)直接返回和在云開(kāi)發(fā)控制臺(tái)一樣的云函數(shù)調(diào)用日志。
## 比如觸發(fā)login函數(shù)
cloudbase functions:invoke login
## 觸發(fā)配置文件中的全部函數(shù)
cloudbase functions:invoke
3、下載云函數(shù)代碼
如果我們想要修改我們?cè)谛〕绦蛟崎_(kāi)發(fā)里創(chuàng)建的云函數(shù),首先就需要下載云函數(shù)的代碼以及它的依賴,默認(rèn)情況下,函數(shù)代碼會(huì)下載到 functionRoot 下(也就是項(xiàng)目根目錄下的functions文件夾里),以函數(shù)名稱作為存儲(chǔ)文件夾。
cloudbase functions:download login
當(dāng)然,你也可以指定函數(shù)存放的文件夾地址,函數(shù)的所有代碼文件會(huì)直接下載到指定的文件夾中。這個(gè)就和微信開(kāi)發(fā)者工具下載云函數(shù)是一樣的。
cloudbase functions:download login ./subfile
這里的./subfile是指項(xiàng)目根目錄下的subfile文件夾,如果你要指定的時(shí)候,需要先創(chuàng)建這個(gè)文件夾,建議最好是直接默認(rèn)下載到functionRoot下。
4、更新與部署云函數(shù)
當(dāng)我們修改完本地云函數(shù)的代碼之后就需要把本地云函數(shù)的代碼更新或部署上傳到服務(wù)端,更新代碼update只會(huì)更新函數(shù)的代碼以及執(zhí)行入口,不會(huì)修改函數(shù)的其他配置,比如下面是更新login云函數(shù)
cloudbase functions:code:update login
而使用部署代碼命令deploy 時(shí),則會(huì)修改函數(shù)的代碼、配置以及觸發(fā)器等,比如下面命令部署上傳login云函數(shù),在部署上傳云函數(shù)前建議將login云函數(shù)的配置寫在cloudbaserc.js里:
cloudbase functions:deploy login
如果我們不指定函數(shù)的名稱,Cloudbase CLI 會(huì)會(huì)更新或部署配置文件中的全部函數(shù):
## 更新配置文件中所有函數(shù)的配置信息
cloudbase functions:config:update
## 部署配置文件中所有函數(shù)的配置信息
cloudbase functions:deploy
如果只是想更新配置文件中云函數(shù)的配置信息,可以使用以下命令,目前支持修改的函數(shù)配置包含超時(shí)時(shí)間 timeout、環(huán)境變量 envVariables、運(yùn)行時(shí) runtime,vpc網(wǎng)絡(luò)以及 installDependency 等選項(xiàng)。
## 更新 login 函數(shù)的配置
cloudbase functions:config:update login
## 更新配置文件中所有函數(shù)的配置信息
cloudbase functions:config:update
如果存在同名的云函數(shù)需要覆蓋,可以在命令后附加 --force 選項(xiàng)指定 Cloudbase CLI 覆蓋已存在的云函數(shù)。
cloudbase functions:deploy dev --force
5、運(yùn)行云函數(shù)
Cloudbase CLI 支持在本地運(yùn)行云函數(shù),這個(gè)有點(diǎn)類似于微信開(kāi)發(fā)者工具的本地調(diào)試云函數(shù),運(yùn)行云函數(shù)時(shí)默認(rèn)以 index.main 作為函數(shù)執(zhí)行入口。在本地運(yùn)行云函數(shù)既可以通過(guò)云函數(shù)的路徑運(yùn)行,也可以通過(guò)函數(shù)名來(lái)運(yùn)行。
注意,要運(yùn)行云函數(shù),Node的依賴wx-server-sdk(核心是服務(wù)端SDK @cloudbase/node-sdk)是必不可少的,本地運(yùn)行云函數(shù),就需要在本地安裝wx-server-sdk,在云端運(yùn)行就要在云端安裝這個(gè)依賴,由于我們的云函數(shù)是從云端下載下來(lái)的,都已經(jīng)帶有wx-server-sdk依賴了,所以不需要安裝,但是如果是自己創(chuàng)建的云函數(shù)就必須要了哦~
你可以使用 --path 選項(xiàng)指定函數(shù)入口文件的路徑,直接運(yùn)行云函數(shù),比如下面的命令是執(zhí)行l(wèi)ogin云函數(shù)
cloudbase functions:run --path ./functions/login
還可以使用 --name 選項(xiàng)指定需要運(yùn)行的云函數(shù),使用 --name 選項(xiàng)時(shí),可以通過(guò) cloudbaserc.js 配置文件執(zhí)行函數(shù)執(zhí)行入口
cloudbase functions:run --name login
6、刪除函數(shù)
您可以通過(guò)下面的命令來(lái)刪除指定云函數(shù)和配置文件中的所有云函數(shù)。
#刪除 login 函數(shù)
cloudbase functions:delete login
#刪除配置文件中的所有的函數(shù)
cloudbase functions:delete
14.2.4 使用CLI工具操作操作云存儲(chǔ)
云存儲(chǔ)是云開(kāi)發(fā)為用戶提供的文件存儲(chǔ)能力,用戶可以通過(guò)云開(kāi)發(fā)提供的 CLI 工具、SDK 對(duì)存儲(chǔ)進(jìn)行操作,如上傳、下載文件。這里需要先了解一下localPath和cloudPath的概念。
- localPath 為本地文件或文件夾的路徑,為 目錄/文件名 的形式,如 ./index.js(項(xiàng)目根目錄下的文件)、static/css(項(xiàng)目根目錄下的文件夾static文件夾里的css文件夾)。
- cloudPath 為云存儲(chǔ)文件或文件夾的相對(duì)根目錄的路徑,為 目錄/文件名 的形式,如cloudbase(云存儲(chǔ)根目錄下的cloudbase文件夾),cloudPath 不需要以 '/' 開(kāi)頭。
Windows 系統(tǒng)中l(wèi)ocalPath為本地路徑形式,是系統(tǒng)可以識(shí)別的路徑,通常使用\分隔符(Mac電腦用/分隔符)。cloudPath 是云端文件路徑,均需要使用 / 分隔符。
1、下載文件和文件夾
我們可以使用下面的命令來(lái)下載文件或文件夾,需要下載文件夾時(shí),需要指定 --dir 參數(shù)。
## 下載文件
cloudbase storage:download cloudPath localPath
## 下載文件夾
cloudbase storage:download cloudPath localPath --dir
比如下面這段命令會(huì)將云存儲(chǔ)根目錄下的cloudbase文件夾里的文件下載到本地項(xiàng)目根目錄下的download文件夾里(download文件夾需事先創(chuàng)建),只要我們弄清楚了cloudPath和localPath的寫法就能熟練使用這個(gè)命令了
cloudbase storage:download cloudbase ./download --dir
2、上傳或刪除文件/文件夾
我們可以使用下面的命令將本地電腦的文件或文件夾上傳到云存儲(chǔ),當(dāng) CLI 檢測(cè)到 localPath 為文件夾時(shí),會(huì)自動(dòng)上傳文件內(nèi)的所有文件,如果重復(fù)上傳會(huì)覆蓋。
cloudbase storage:upload localPath cloudPath
當(dāng)不傳入 cloudPath,文件會(huì)上傳到云端的根目錄下,同時(shí)文件夾的層次結(jié)構(gòu)會(huì)被保留,比如下面的命令會(huì)把項(xiàng)目根目錄的download文件夾里的內(nèi)容直接上傳到云存儲(chǔ)的根目錄里,download的子文件夾會(huì)成為云存儲(chǔ)的二級(jí)目錄。
cloudbase storage:upload ./download
與之相應(yīng)的,如果你想刪除云存儲(chǔ)里的文件或文件夾,可以使用下面的命令,需要?jiǎng)h除文件夾時(shí),需要指定 --dir 參數(shù)。
## 刪除文件
cloudbase storage:delete cloudPath
## 刪除文件夾
cloudbase storage:delete cloudPath --dir
3、了解云存儲(chǔ)里的文件或文件夾信息
在不打開(kāi)云開(kāi)發(fā)控制臺(tái)或網(wǎng)頁(yè)控制臺(tái),我們也可以通過(guò)Cloudbase Cli工具了解云存儲(chǔ)里的文件夾或文件的信息,比如在終端里輸入以下命令可以列出云存儲(chǔ)里的文件夾里的所有文件信息,比如大小、修改時(shí)間、key、Etag等信息。
cloudbase storage:list cloudPath
比如我們可以直接使用以下命令打印云存儲(chǔ)根目錄里的所有文件(平時(shí)不要這么做,打印二級(jí)目錄里的文件即可),其中二級(jí)目錄里的文件會(huì)用路徑的方式顯示,比如cloudbase/logo.png表示是cloudbase文件夾下的logo.png圖片。
cloudbase storage:list
如果我們想通過(guò)瀏覽器打開(kāi)云存儲(chǔ)里的文件,就需要獲取文件臨時(shí)訪問(wèn)鏈接。我們知道如果公有讀的文件獲取的鏈接不會(huì)過(guò)期,私有的文件獲取的鏈接只有十分鐘有效期。注意這里的cloudPath不能是文件夾,只能是文件哦
cloudbase storage:url cloudPath
比如我們想獲取云存儲(chǔ)cloudbase里的logo.png的臨時(shí)訪問(wèn)鏈接,只需要在終端里輸入以下命令:
cloudbase storage:url cloudbase/logo.png
我們還可以使用下面的命令獲取文件的簡(jiǎn)單信息:
cloudbase storage:detail cloudPath
文章名稱:創(chuàng)新互聯(lián)小程序云教程:云開(kāi)發(fā)CloudBaseCLI
文章網(wǎng)址:http://m.5511xx.com/article/djjscsj.html


咨詢
建站咨詢
