【 Node.js 】透過 Azure Functions 探索 Azure Cosmos DB - 使用 Windows OS & Web UI
內容
- 學習目標
- 前置準備作業
- 程式與軟體
- 設定
Azure Cosmos DB - 設定
Azure Functions - 透過
Postman測試
學習目標
Integrating Serverless Architecture- 透過Azure Functions以Node.js操作Azure Cosmos DB- 示意圖
前置準備作業
程式與軟體
- Node.js
- Postman
設定 Azure Cosmos DB
Step 1. 登入到 Azure
- 網址為
https://portal.azure.com
Step 2. 建立 Azure Cosmos DB
-
點選左邊
Azure Cosmos DB -
點選下方
Create Azure Cosmos DB account -
設定
Account資訊-
Resource Group欄位請輸入唯一識別的名稱,可使用已存在的或新建一個資源群組 -
Account Name欄位請輸入唯一識別的名稱 -
API欄位請選擇Core(SQL) -
Location欄位請選擇所要使用服務的所在地 -
輸入完上方的資訊請點選下方的
Review + create -
點選下方的
Create -
建置過程
-
建置完成
-
點選下方
Go to resource
-
Step 3. 建立測試資料
-
點選左側
Data Explorer -
點選上方
New Container -
輸入
Container資訊-
Database id欄位請輸入Company -
Container id欄位請輸入Users -
Partition key欄位請輸入/id -
點選右下角
OK -
點選
Users➙Items➙New Item -
分別建立 3 筆紀錄於下圖紅色框
每輸入完 1 筆資訊後請點選上方的
Save儲存資料-
第 1 筆
{ "id": "1", "name": "Archer", "isEmployee": true } -
第 2 筆
{ "id": "2", "name": "Mosconi", "isEmployee": false } -
第 3 筆
{ "id": "3", "name": "Eason", "isEmployee": true }
-
-
建立完成後的畫面
-
3 筆資料會出現於紅色框
-
-
設定 Azure Functions
Step 1. 開啟 Azure Functions 服務
-
在上方輸入框輸入
function app -
點選
Function App
Step 2. 相關 Function 程式說明
- 所要建立的
Function說明
| Function Name | Method | Route | Comment |
|---|---|---|---|
| GetAllUser | Get | /users | 取得所有使用者 |
| PostUser | Post | /user | 新增 1 位使用者 |
| UpdateUser | Put | /user/{id} | 透過 id 來更新使用者 |
| GetOneUser | Get | /user/{id} | 透過 id 來取得使用者 |
Step 3. 建立 Function Apps 程式
-
點選下方
Create Function App -
輸入
Function App相關資訊-
App name欄位請輸入cosmosdb-operate -
Resource Group欄位可以一個新的資源群組或使用存在的 -
OS欄位請選擇Windows,以使用 Web UI 進行編輯動作 -
Location欄位請選擇所要使用何處的服務 -
Runtime Stack欄位請選擇Node.js -
當上方的資訊輸入完成後請點選下方的
Create -
建立完成畫面
-
點選
cosmosdb-operate
-
Step 4. 建立 GetAllUser Function 程式
-
說明
Function Name Method Route Comment GetAllUser Get /users 取得所有使用者 -
點選右方
New function -
點選
In-portal -
點選下方
Continue -
點選
More templates... -
點選
Finish and view templates -
點選
HTTP trigger -
輸入
Function資訊-
Name欄位請輸入GetAllUser -
Authorization level欄位選擇Anonymous -
點選
Create -
Create 完成畫面
-
修改設定
-
點選
Integrate -
Trigger部份- 選擇右上角
Advanced editor-
methods中只保留get -
新增
, "route": "users" -
點選
Save存檔完成後請再次確認上步驟中的修改有成功
-
- 選擇右上角
-
Inputs部份-
點選
New Input -
點選
Azure Cosmos DB➙ 點選Select -
安裝
Cosmos Extension
-
輸入
Cosmos相關資訊-
Database name欄位輸入Company -
Collection Name欄位輸入Users -
Azure Cosmos DB account connection欄位點選New➙ 點選Azure Cosmos DB account➙ 點選Select
-
-
點選
Save -
設定完成畫面
-
-
-
輸入
GetAllUser程式碼-
點選左側
GetAllUser -
在紅色框處輸入下方程式
-
點選
► Save and run -
點選
</> Get function URL取得連結 -
線上測試
-
點選右側
Test -
輸入相關資訊
-
HTTP method欄位選擇Get -
再點選
► Run -
取得所有使用者資訊
-
-
-
-
Step 5. 建立 PostUser Function 程式
-
說明
Function Name Method Route Comment PostUser Post /user 新增 1 位使用者 -
點選
Functions右方的+ -
點選
HTTP trigger -
輸入
Function資訊-
Name欄位請輸入PostUser -
Authorization level欄位選擇Anonymous -
點選
Create -
Create 完成畫面
-
修改設定
-
點選
Integrate -
Trigger部份- 選擇右上角
Advanced editor-
methods中只保留post -
新增
, "route": "user" -
點選
Save存檔完成後請再次確認上步驟中的修改有成功
-
- 選擇右上角
-
Outputs部份-
點選
+ New Output -
點選
Azure Cosmos DB➙ 點選Select -
輸入
Cosmos相關資訊-
Database name欄位輸入Company -
Collection Name欄位輸入Users -
If true, creates the Azure Cosmos DB database and collection欄位請勾選
-
-
點選
Save -
設定完成畫面
-
-
-
輸入
PostUser程式碼-
點選左側
PostUser -
在紅色框處輸入下方程式
-
點選
► Save and run -
點選
</> Get function URL取得連結 -
線上測試
-
點選右側
Test -
輸入相關資訊
-
HTTP method欄位選擇POST -
Request body欄位請輸入下方使用者資訊{ "id": "6", "name": "test", "isEmployee": false } -
再點選
► Run -
寫入使用者資訊
-
點選左側
Azure Cosmos DB -
點選所建立的名稱
-
點選
Data Explorer -
點選
Users➙ 點選Items➙6
-
-
-
-
-
Step 6. 建立 UpdateUser Function 程式
-
說明
Function Name Method Route Comment UpdateUser Put /user/{id} 透過 id 來更新使用者 -
點選
Functions右方的+ -
點選
HTTP trigger -
輸入
Function資訊-
Name欄位請輸入UpdateUser -
Authorization level欄位選擇Anonymous -
點選
Create -
Create 完成畫面
-
修改設定
-
點選
Integrate -
Trigger部份- 選擇右上角
Advanced editor-
methods中只保留put -
新增
, "route": "user/{id}" -
點選
Save存檔完成後請再次確認上步驟中的修改有成功
-
- 選擇右上角
-
Outputs部份-
點選
+ New Output -
點選
Azure Cosmos DB➙ 點選Select -
輸入
Cosmos DB相關資訊-
Database name欄位輸入Company -
Collection Name欄位輸入Users -
If true, creates the Azure Cosmos DB database and collection欄位請勾選
-
-
點選
Save存檔完成後請再次確認上步驟中的修改有成功
-
設定完成畫面
-
-
Inputs部份-
點選
+ New Input -
點選
Azure Cosmos DB➙ 點選Select -
輸入
Cosmos DB相關資訊-
Database name欄位輸入Company -
Collection Name欄位輸入Users
-
-
點選
Save存檔完成後請再次確認上步驟中的修改有成功
-
設定完成畫面
-
-
-
輸入
UpdateUser程式碼-
點選左側
UpdateUser -
在紅色框處輸入下方程式
-
點選
► Save and run -
點選
</> Get function URL取得連結 -
線上測試
-
點選右側
Test -
輸入相關資訊
-
HTTP method欄位選擇PUT -
id欄位輸入6 -
Request body欄位請輸入下方使用者資訊{ "name": "test-from-azure-ui", "isEmployee": true } -
再點選
► Run -
寫入使用者資訊
-
點選左側
Azure Cosmos DB -
點選所建立的名稱
-
點選
Data Explorer -
點選
Users➙ 點選Items➙6
-
-
-
-
-
Step 7. 建立 GetOneUser Function 程式
-
說明
Function Name Method Route Comment GetOneUser Get /user/{id} 透過 id 來取得使用者 -
點選
Functions右方的+ -
點選
HTTP trigger -
輸入
Function資訊-
Name欄位請輸入GetOneUser -
Authorization level欄位選擇Anonymous -
點選
Create -
Create 完成畫面
-
修改設定
-
點選
Integrate -
Trigger部份- 選擇右上角
Advanced editor-
methods中只保留get -
新增
, "route": "user/{id}" -
點選
Save存檔完成後請再次確認上步驟中的修改有成功
-
- 選擇右上角
-
Inputs部份-
點選
New Input -
點選
Azure Cosmos DB➙ 點選Select -
輸入
Cosmos DB相關資訊-
Database name欄位輸入Company -
Collection Name欄位輸入Users
-
-
點選
Save -
設定完成畫面
-
-
-
輸入
GetOneUser程式碼-
點選左側
GetOneUser
-
-