邊緣節點提供了Key-Value型邊緣存儲服務。將數據寫在邊緣存儲后,邊緣存儲的數據會快速自動同步到全球的邊緣節點,邊緣函數ER可快速讀取使用同節點的邊緣存儲數據。結合邊緣存儲和邊緣函數ER,您可以部署輕量型的BaaS服務、API網關服務。
工作原理
當您在控制臺或通過OpenAPI寫入KV數據時,數據并未直接寫入邊緣節點,而是先寫入中心節點的KV存儲中,在數據存儲到中心后的短時間內,我們將清除邊緣節點KV中與之對應的“臟數據”,以保證存儲數據的讀取準確性。
客戶端發起請求時,將讀取離客戶端最近的邊緣節點上存儲的KV數據,從而提升訪問速度。但寫入中心的數據并不會立即全量推送至邊緣節點進行存儲,所以對于新寫入的數據的訪問,可能無法在邊緣節點直接命中,此時我們將主動從中心節點讀取數據,并緩存至邊緣節點,后續對這份數據的查詢請求將直接從邊緣節點命中返回。該機制使得對新寫入數據的首次訪問速度較慢,但后續請求速度會加快。
基于上述工作原理,邊緣存儲更適合低頻寫高頻讀、且要求存儲數據全局一致性的業務場景。
基本概念
存儲空間、命名空間(NameSpace)
存儲空間是用于管理鍵值對的數據庫,擁有賬號下全局唯一的名稱,創建成功后,您可以在存儲空間中添加KV數據。
KV(Key-Value)
即鍵值對(Key-Value),每個鍵值對都歸屬于某個存儲空間(NameSpace),讀取鍵值對時,需先指定存儲空間后進行調用。
使用限制
限制項 | 說明 |
存儲容量 |
|
Key-Value |
|
同步時間 | 保證最終一致性,一般在幾秒~十幾秒時間同步到全球節點,最遲在300秒內完成同步。 |
訪問限制 | ER只能讀寫同阿里云賬號下的邊緣存儲數據,不支持跨賬號讀寫。例如,A賬號下的ER不能讀寫B賬號的邊緣存儲數據。 |
使用邊緣存儲
開通邊緣存儲服務后,您可以通過邊緣安全加速 ESA控制臺或邊緣函數ER內置API來使用邊緣存儲。
創建存儲空間
各個存儲空間相互獨立,最多可創建10個存儲空間。
登錄ESA控制臺。
在左側導航欄選擇
,單擊創建存儲空間,按照界面提示輸入空間名稱和描述。說明空間名稱對應ER內置API中的參數NameSpace。
單擊確定。
通過控制臺管理存儲數據
控制臺目前最大支持100KB的value添加,如果您有更大規格Value需求,請使用OpenAPI操作。
您可以通過控制臺來添加、修改或刪除邊緣存儲數據。
登錄ESA控制臺。
在存儲空間列表中找到目標存儲空間,單擊操作列的管理。
單擊添加KV數據,按照界面提示填寫鍵(Key)和值(Value)。
單擊確定。
可選:添加存儲數據后,您可以單擊修改、查看或刪除來管理存儲數據。
通過API管理存儲數據
您可以通過邊緣函數(ER)內置的API來添加、修改、查詢或刪除邊緣存儲數據。
通過API管理前,請確保您已經在控制臺創建存儲空間。
API詳細使用說明,請參見邊緣存儲API。
調用Constructor傳入NameSpace創建一個邊緣KV實例對象。
NameSpace是您在控制臺創建的存儲空間名稱,可在存儲空間列表查看。
const edgeKv = new EdgeKV({ namespace: "ns"});
成功創建實例對象后,您可根據需求調用以下內置API來實現相關功能。
API
功能
從存儲空間(NameSpace)中讀取數據。
刪除存儲空間(NameSpace)中指定的Key及其對應的Value數據。