1. 程式人生 > >使用Azure Functions 在web 應用中啟用自動更新(一)分析基於輪詢的 Web 應用的限制

使用Azure Functions 在web 應用中啟用自動更新(一)分析基於輪詢的 Web 應用的限制

1,引言

上一篇介紹了使用使用 Visual Studio 開發 "Azure Functions" 函式,此篇介紹 “Azure Functions” 的測試以及直接從 Vistual Studio 在 Azure 上的部署 ”Azure Functions“應用。

接著上一篇,本篇介紹在 “Azure Functions” 中實現一個函式,該函式僅在 Azure Cosmos DB 中的資料發生變化時執行。

在基於計時器的輪詢原型中,無論底層資料是否發生了更改,客戶端應用程式都會聯絡伺服器。 從伺服器返回資料後,無論資料是否發生了任何更改。

輪詢機制是一種低效的解決方案

 2.1,分析基於輪詢的 Web 應用的限制

  開發軟體:

  (1)Node.js

  (2)Vs Code

  (3)Azure Functions Tools:是微軟提供的一個用於建立開發,測試,除錯Azure Functions的本地的工具,可以參考下面的github地址進行檢視

    github地址:https://github.com/Azure/azure-functions-core-tools

  (4)Azure Functions,Azure Storage的兩個外掛

  

  注意  安裝 “Azure Functions Core Tools” 的時候 ,筆者使用npm進行安裝的時候,一直無法安裝,所有我這裡推薦使用  “chocolatey” windows的一個包管理器

  (1)chocolatey 安裝說明地址:https://chocolatey.org/install

  (2)azure-functions-core-tools 安裝命令:

choco install azure-functions-core-tools --params "'/x64'"

  下載示例應用程式碼:這裡使用的是微軟提供的demo

git clone https://github.com/MicrosoftDocs/mslearn-advocates.azure-functions-and-signalr.git serverless-demo

3,建立儲存賬戶

  Azure Functions 需要一個儲存帳戶,在Azure的門戶的“Cloud Shell” 中執行:

az storage account create \
  --name storage-web-test \
  --resource-group xxxxxx-xxxxx-xxxxx-xxxx-xxx-xxxxxxxxxxxv \ 
--kind StorageV2 \ --sku Standard_LRS

 

注意  --resource-group 這裡填寫自己對應的 "資源組的 id",而且 --name 引數我這裡使用了變數來代替,這裡不要去糾結。

4,建立Azure Cosmos DB 賬戶

  將資料儲存在Azure Cosmos DB 資料庫中,繼續在門戶的“Cloud Shell”中執行:

az cosmosdb create  \
  --name msl-sigr-cosmos-test \
  --resource-group xxxxxx-xxxxx-xxxxx-xxxx-xxx-xxxxxxxxxxx

5,更新本地設定:

5.1,Visual Studio Code 中開啟“start”資料夾。 在編輯器中開啟 local.settings.json 

 在 local.settings.json 中,在 “Azure” 門戶中找出對應的儲存賬戶的 AzureWebJobsStorage

 

 

 

在 “Azure” 門戶中找出對應的儲存賬戶的  AzureCosmosDBMasterKey,和 AzureCosmosDBConnectionString 

  修改對應的key,並且儲存檔案   

6,執行應用程式

  (1)安裝依賴項,並且設定資料的種子數。     

npm install

       (2)F5 開始除錯,終端視窗中將顯示函式應用啟動。

    開始啟用畫面:

               啟動完成畫面:  

 

    (3)啟動第二個例項,並且啟動web應用程式

npm start

     指令碼會自動開啟瀏覽器,並且導航到http://localhost:8080

   (4)最後使用cmd'開啟第三個例項,並且輸入更新資料命令  npm run update-data    來更新資料,觀察頁面資料在短時間內的變化。

     web頁面的資料變化

 ok,我們成功在本地使用輪詢的方式測試 “Azure Functions” 在web應用程式中啟動自動更新。

以上也是自己的學習的過程,謝謝各位指點。太晚了,先睡了

作者:Allen 

程式碼稍後也會傳到 github

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指