邊緣安全加速 ESA為您提供 CLI 工具,您可以通過 CLI 工具進行函數和Pages全生命週期管理、調試、多檔案功能部署等操作。
ESA CLI介紹
ESA CLI是ESA函數和Pages配套命令列工具,通過ESA CLI您可以完成如下任務。
在本地完成函數和Pages全生命週期管理,包括函數和Pages建立、版本發布與部署、自訂網域名或路由管理等。
在本地或內網環境完成函數調試。CLI支援啟動本地調試服務,類比線上環境進行功能測試。
支援多檔案工程的部署。CLI將自動完成npm等專案依賴檔案的打包構建,允許您將本地Node.js專案部署在雲上。
常用命令
ESA CLI提供眾多命令用來進行函數和Pages管理。全部指令詳情可參考:https://github.com/aliyun/alibabacloud-esa-cli
命令 | 說明 |
init | 選擇ESA提供的模板完成專案初始化 |
dev | 自動啟動本地調試服務 |
commit | 提交專案代碼至雲上,並將其儲存為一個版本 |
deploy | 將某個版本部署在所有線上邊緣節點 |
deployments | 查看當前的版本部署情況,或刪除某個版本 |
project | 查看所有函數和Pages,或刪除某個函數 |
site | 查看賬戶下所有網站資訊 |
domain | 管理綁定到函數和Pages的網域名稱 |
route | 管理綁定到函數和Pages的路由 |
login | 使用 AK/SK 完成帳號登入 |
logout | 登出登入 |
config | 管理ESA CLI 的設定檔 |
lang | 選擇ESA CLI 的語言 |
前提條件
在安裝ESA CLI之前,請確保您已安裝 Node.js 和 npm。建議優先使用 Volta 或 nvm 等 Node 版本管理器進行安裝。
使用ESA CLI
使用npm完成ESA CLI 的安裝,並查看 CLI 的版本和支援的命令。
npm install esa-cli -g # 全域安裝CLI esa-cli -v # 查看CLI版本 esa-cli --help # 查看CLI命令帳號登入:首先訪問阿里雲RAM控制台擷取您的
AccessKey ID和AccessKey Secret,再執行esa login完成帳號登入。如果您只是通過 CLI 在本地進行代碼調試,則不需要進行帳號登入。esa-cli login # 登入 esa-cli logout # 登出專案初始化:包括填寫專案名稱、選擇模板等,可根據初始化命令引導完成整個流程。
esa-cli init本地調試:完成代碼後,可以通過 CLI 進行代碼本地調試。執行
esa-cli dev指令後,會自動打包入口檔案,並啟動本地調試服務。基本使用方法:
在介面上按
b即可在瀏覽器中開啟調試頁面。在介面上按
d可以查看調試引導。注意:Chrome 不允許命令列開啟調試頁面。在 Chrome 瀏覽器中開啟Chrome://inspect#devices頁面,可以看到一個啟動並執行Remote Target,點擊下面的inspect即可查看 console 資訊。注意,EdgeRoutine 的代碼為服務端代碼,所以預覽頁面的控制台並不會輸出入口檔案中的console,只能通過inspect調試。在介面上按
c可以清空面板。在介面上按
x可以退出調試。可以用
esa-cli dev --port <port>臨時指定連接埠。
本地調試時,也可以運行代碼中的邊緣儲存API和Cache API。
說明為了線上資料安全,邊緣儲存服務在本地調試時不會擷取和設定線上資料。如果需要在本地進行資料類比,可以使用下面的方法:在函數專案根目錄(與設定檔
esa.jsonc同級),建立kv.json檔案,按照下面的格式寫入資料:{ "namespace": { "k1": "v1", "k2": "v2" } }此時下面的代碼可擷取到類比資料:
const edgeKv = new EdgeKV({ namespace: 'namespace' }); async function run() { const data = await edgeKv.get('k1', { type: 'text' }); console.log(data); // 'v1' }
版本產生:在本地調試完成後,需要產生一個代碼版本用於部署。
esa-cli commit # 產生版本線上部署:當版本產生後,需要使用部署相關的指令,將版本部署至公用雲端邊緣節點。
esa-cli deploy # 根據提示選擇版本、目標環境即可部署 esa-cli deployments list # 查看部署情況 esa-cli deployments delete <versionId> # 刪除指定版本管理自訂網域名或路由:
當被部署到節點後,您可以配置自訂網域名或路由,以訪問您的函數和Pages:
網域名稱:為您的函數和Pages綁定網域名稱,該網域名稱必須是您ESA網站的子網域名稱,您可以通過網域名稱直接存取到該函數,此時函數和Pages將作為該網域名稱的來源站點。
路由:為您的ESA網站綁定路由,訪問該路由可觸發函數和Pages執行,此時函數和Pages可以和網站的來源站點進行通訊。
# 網域名稱 esa-cli domain list esa-cli domain add <domainName> # 需要是您的已備案網域名稱 esa-cli domain delete <domainName> # 路由 esa-cli route list esa-cli route add [route] [site] esa-cli route delete <route>管理函數:可以通過 CLI 查看、刪除函數。
esa-cli project list # 查看函數 esa-cli project delete <PROJECT_NAME> # 刪除函數