使用 Visual Studio 開發、測試和部署 Azure Functions(一)開發


1,什么是Azure functions

       Azure Functions 是 Microsoft Azure 提供的完全托管的 PaaS 服務,用於實現無服務器體系結構。 Azure Functions 是一種完全可擴展、靈活、可靠且安全的服務。也稱為無服務器應用,Azure Functions

由事件觸發,而不是直接從應用程序調用。 可指定將觸發函數應用中函數的事件類型

       說白了可以使用 ”Azure Functions“ 來托管你的代碼,無需創建虛擬機,而 Azure Function 可以使用 C#、Java、JavaScript、PowerShell、Python 或 ”Azure Functions“ 支持的語言 中列出的任何一種語言來編寫 Function。而要創建 ”Azure Function“,Azure 提供給我們眾多模板。例如

  1,HTTPTrigger:當 Web 應用中發生 HTTP 請求時,HTTP 觸發器會運行該函數

  2,TimerTrigger: 使用此事件可以按照你定義的計划在常規域間運行 Azure Functions。

  3,BlobTrigger: 在 Azure Blob 存儲中上傳或修改文件時,會運行此函數類型

  4,CosmosDBTrigger: 當文檔添加到 Azure Cosmos DB 數據庫或在其中進行修改時,此觸發器會運行。

  .......

  這里不做過多介紹,今天重點演示 ”HttpTrigger“ 類型的 "Azure Functions "函數。

       Visual Studio 為創建和測試 Azure Functions 應用提供了一個絕佳環境。 在將 Azure Functions 部署到雲之前,可在本地開發 Azure Functions 並驗證其是否正常運行。今天我們創建的是 HTTPTrigger的Azure Functions 應用,顧名思義,HTTPTrigger就是當當Web 應用中發生 HTTP 請求時,HTTP 觸發器會運行該函數。 還可使用此觸發器響應Webhook。 Webhook 是在修改網站托管的項時發生的回叫。 例如,可創建一個 Azure Functions,當存儲庫中的項發生更改時,該函數將由 GitHub 存儲庫中的 Webhook 觸發。。

1,創建Azure Functions 應用(這里我使用的是VS2019)

(1)新建項目,在模板搜索框輸入“Azure”,選擇 “Azure Functions”用來創建Azure Functions 項目模板。

 注意:如果沒有Azure Functions 模板  請使用Visual Studio Installer去勾選對“Azure 開發的支持”

 

(2)新增Azure Functions 應該程序 ,此時可以看到 VS 提供了多種觸發器,這里我們選擇"Http trigger"
  (2.1)Authorization level,我們選擇“Anonymous”

       (2.2)AzureWebJobStorage ,選擇 ”存儲仿真器“

 創建完成后,我們將項目進行重新生成,

(3)在"Azure.Protal.Functions"項目上添加 “Azure 函數”,選擇“Http trigger” ,修改 Authorization level 為“Anonymous”命名為“WatchPortalFunction”函數

       在寫入跟蹤日志的語句后,將以下代碼添加到方法的主體。 此代碼從 HTTP 請求 URL 的查詢字符串中讀取 model 參數。 然后,此代碼檢索此監視模型的詳細信息;在此示例中,函數僅返回一些虛擬數據。 最后,此函數返回包含這些詳細信息的響應。 如果初始請求不包含具有 model 參數的查詢字符串,此函數會返回錯誤消息。

 

 1             string model = req.Query["model"];
 2 
 3             // If the user specified a model id, find the details of the model of watch
 4             if (model != null)
 5             {
 6                 // Use dummy data for this example
 7                 dynamic watchinfo = new 
 8                          { 
 9                                Manufacturer = "Abc", 
10                                CaseType = "Solid",     
11                                Bezel = "Titanium", 
12                                Dial = "Roman", 
13                                CaseFinish = "Silver", 
14                                Jewels = 15 
15                         };
16 
17                 return (ActionResult)new OkObjectResult($"Watch Details: {watchinfo.Manufacturer}, {watchinfo.CaseType}, {watchinfo.Bezel}, {watchinfo.Dial}, {watchinfo.CaseFinish}, {watchinfo.Jewels}");
18             }
19             return new BadRequestObjectResult("Please provide a watch model in the query string");       

 

 

在本地測試 Azure Functions

(1)單擊“開始調試”。此時 Visual Studio 生成 ”Azure Functions“ 應用並啟動 ”Azure Functions“ 運行時。

 

 

 

 當運行時准備就緒后,可用的 HTTP 函數列表,以及可用於觸發每個函數的 URL。

 

 

(2)在 瀏覽器里面進行測試

       打開 Web 瀏覽器並輸入 URL  "http://localhost:7071/api/WatchPortalFunction?model=abd"。

       此請求觸發 ”WatchPortalFunction“ 函數,並將模型 abc 作為查詢字符串參數傳遞。返回 ”Azure Functions“ 生成的虛擬詳細信息。

 

 

(3) 在Postman中進行測試

       此時使用 Postman 發出 Post 請求,通過 "QueryString" 的方式傳遞參數。

 此時,可以看到我的在本地開發的 “Azure Functions" 的 "Http Tirgger" 類型的函數成功的在本地運行起來了,完成了 ”Azure Functions“ 入門的第一步。

三、總結

這一章是針對我之前在工作中遇到的一個問題,趁着假期考慮的一個解決方法,雖然只是一個小問題,但是還是挺有借鑒意義的,如果能夠給你在日常的開發中提供些許的幫助,不勝榮幸。

出處:https://www.cnblogs.com/AllenMaster/articles/12633088.html

作者:Allen

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM