邊緣安全加速 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 | 查看當前的版本部署情況,或刪除某個版本。 |
routine | 查看所有函數和Pages,或刪除某個函數。 |
site | 查看賬戶下所有網站資訊。 |
domain | 管理綁定到函數和Pages的網域名稱。 |
route | 管理綁定到函數和Pages的路由。 |
login | 使用 AK/SK 完成帳號登入。 |
logout | 登出登入。 |
config | 管理ESA CLI 的設定檔。 |
lang | 選擇ESA CLI 的語言。 |
安裝Node.js
您需要先安裝Node.js,以使用ESA CLI。
安裝命令:
yum install nodejs npm。查看安裝版本:
node -v。
使用ESA CLI
使用npm完成ESA CLI 的安裝,並查看 CLI 的版本和支援的命令。
npm install esa-cli -g # 全域安裝CLI esa -v # 查看CLI版本 esa --help # 查看CLI命令帳號登入。首先訪問阿里雲RAM控制台擷取您的
AccessKey ID和AccessKey Secret,再執行esa login完成帳號登入。如果您只是通過 CLI 在本地進行代碼調試,則不需要進行帳號登入。esa login # 登入 esa logout # 登出專案初始化。包括填寫專案名稱、選擇模板等,可根據初始化命令引導完成整個流程。
esa init本地調試。完成代碼後,可以通過 CLI 進行代碼本地調試。執行
esa dev指令後,會自動打包入口檔案,並啟動本地調試服務。
在介面上按
b即可在瀏覽器中開啟調試頁面。在介面上按
d可以查看調試引導。注意:Chrome 不允許命令列開啟調試頁面。在 Chrome 瀏覽器中開啟Chrome://inspect#devices頁面,可以看到一個啟動並執行Remote Target,點擊下面的inspect即可查看 console 資訊。注意,EdgeRoutine 的代碼為服務端代碼,所以預覽頁面的控制台並不會輸出入口檔案中的console,只能通過inspect調試。在介面上按
c可以清空面板。在介面上按
x可以退出調試。可以用
esa dev --port <port>臨時指定連接埠。
版本產生。在本地調試完成後,需要產生一個代碼版本用於部署。
esa commit # 產生版本線上部署。當版本產生後,需要使用部署相關的指令,將版本部署至公用雲端邊緣節點。
esa deploy # 根據提示選擇版本、目標環境即可部署 esa deployments list # 查看部署情況 esa deployments delete <versionId> # 刪除指定版本管理自訂網域名或路由。
當被部署到節點後,您可以配置自訂網域名或路由,以訪問您的函數和Pages:
網域名稱:為您的函數和Pages綁定網域名稱,該網域名稱必須是您ESA網站的子網域名稱,您可以通過網域名稱直接存取到該函數,此時函數和Pages將作為該網域名稱的來源站點。
路由:為您的ESA網站綁定路由,訪問該路由可觸發函數和Pages執行,此時函數和Pages可以和網站的來源站點進行通訊。
# 網域名稱 esa domain list esa domain add <domainName> # 需要是您的已備案網域名稱 esa domain delete <domainName> # 路由 esa route list esa route add [route] [site] esa route delete <route>管理函數。
可以通過 CLI 查看、刪除函數。
esa routine list # 查看函數 esa routine delete <routineName> # 刪除函數