快速入門:使用 Visual Studio 在 Azure 中建立第一個 C# 函數
Azure Functions 可讓您使用 Visual Studio 建立本機 C# 函式專案,然後輕鬆地發佈此專案,以在 Azure 的可調整無伺服器環境中執行。 如果您想使用 Visual Studio Code 在本機開發 C# 應用程式,您應該考慮改用這篇文章中以 Visual Studio Code 為基礎的版本。
依預設,本文將說明如何在隔離式背景工作處理序中建立在 .NET 8 上執行的 C# 函式。 在隔離式背景工作處理序中執行的函數應用程式,在 Functions 支援的所有 .NET 版本上都受到支援。 如需詳細資訊,請參閱支援的版本。
在本文中,您將學會如何:
- 使用 Visual Studio 建立 C# 類別庫專案。
- 建立可回應 HTTP 要求的函數。
- 在本機執行程式碼,以確認函數行為。
- 將您的程式碼專案部署至 Azure Functions。
完成本快速入門後,您的 Azure 帳戶中會產生幾美分或更少的少許費用。
這段影片示範如何在 Azure 中建立 C# 函式。
下列各節也會說明影片中的步驟。
必要條件
Visual Studio 2022。 安裝期間請務必選取 Azure 開發工作負載。
Azure 訂用帳戶。 如果您沒有帳戶,請在開始前建立免費帳戶。
建立函式應用程式專案
Visual Studio 中的 Azure Functions 專案範本會建立可發行至 Azure 中函數應用程式的 C# 類別庫專案。 您可以使用函式應用程式將多個函式群組為邏輯單位,以方便管理、部署、調整和共用資源。
在 Visual Studio 功能表中,選取 [檔案] > [新增] > [專案]。
在 [建立新專案] 的搜尋方塊中輸入函式,選擇 [Azure Functions] 範本,然後選取 [下一步]。
在 [設定新專案] 中,輸入專案的專案名稱,然後選取 [下一步]。 函式應用程式名稱必須是有效的 C# 命名空間,因此不會使用底線、連字號或任何其他非英數字元。
如需其餘其他資訊設定,
設定 值 Description 函式背景工作 .NET 8.0 隔離式 (長期支援) 函式會在隔離式背景工作處理序中於 .NET 8 上執行。 Function HTTP 觸發程序 此值會建立 HTTP 要求所觸發的函式。 將 Azurite 用於執行階段儲存體帳戶 (AzureWebJobsStorage) 啟用 因為 Azure 中的函數應用程式需要儲存體帳戶,所以當您將專案發佈至 Azure 時,就會指派或建立一個儲存體帳戶。 HTTP 觸發程式不會使用 Azure 儲存體帳戶連接字串;所有其他觸發程式類型都需要有效的 Azure 儲存體帳戶連接字串。 選取此選項時會使用 Azurite 模擬器。 授權等級 匿名 建立的函式可以由任何用戶端觸發,而不需提供金鑰。 此授權設定可以讓測試新函式變得簡單。 如需詳細資訊,請參閱授權層級。 請確定您已將 [授權層級] 設定為 [匿名]。 如果您選擇函式的預設層級,則必須在要求中提供函式金鑰,以在 Azure 中存取函式端點。
選取 [建立] 以建立函式專案和 HTTP 觸發程序函數。
Visual Studio 會建立一個專案,其中的類別包含 HTTP 觸發程序函式類型的重複使用程式碼。 重複使用程式碼會傳送 HTTP 回應,其中包含要求內文或查詢字串中的值。 HttpTrigger
屬性指定此函式是由 HTTP 要求所觸發。
重新命名函式
Function
方法屬性會設定函式的名稱,其預設將產生為 Function1
。 因為當您建立專案時,工具不會讓您覆寫預設函式名稱,所以請花幾分鐘為函式類別、檔案與中繼資料建立更好的名稱。
在 [檔案總管] 中,在 Function1.cs 檔案按一下滑鼠右鍵,並將其重新命名為
HttpExample.cs
。在程式碼中,將 Function1 類別重新命名為
HttpExample
。在名為
Run
的方法中,將Function
方法屬性重新命名為HttpExample
。
現在函數定義的外觀應如下列程式碼:
[Function("HttpExample")]
public IActionResult Run([HttpTrigger(AuthorizationLevel.AuthLevelValue, "get", "post")] HttpRequest req)
{
return new OkObjectResult("Welcome to Azure Functions!");
}
您現在已重新命名函式,可以在本機電腦上進行測試。
在本機執行函式
Visual Studio 與 Azure Functions Core Tools 整合,以便您使用完整 Azure Functions 執行階段在本機測試函式。
若要執行您的函數,請在 Visual Studio 中按 F5。 您可能需要啟用防火牆例外狀況,工具才能處理 HTTP 要求。 在本機執行函式時,系統不會強制執行授權層級。
從 Azure Functions 執行階段輸出複製函式的 URL。
將 HTTP 要求的 URL 貼到瀏覽器的網址列中,然後執行要求。 下圖顯示函式傳回瀏覽器中對本機 GET 要求的回應:
若要停止偵錯,請在 Visual Studio 中按下 Shift+F5 可。
確認函式在本機電腦上正確執行之後,就可以將專案發佈到 Azure。
將專案發佈至 Azure
Visual Studio 可以將本機專案發佈至 Azure。 您的 Azure 訂用帳戶中必須具有函式應用程式,才可以發佈您的專案。 如果您還沒有 Azure 中的函數應用程式,Visual Studio 發佈會在您第一次發佈專案時為您建立一個。 在本文中,您將建立函數應用程式與相關的 Azure 資源。
在 [方案總管] 中,以滑鼠右鍵按一下專案並選取 [發行]。 在 [目標] 中,選取 [Azure],然後選取 [下一步]。
在 [特定目標] 中,選取 [Azure 函式應用程式 (Windows)]。 已建立在 Windows 上執行的函式應用程式。 選取 [下一步]。
在 [Azure Functions 執行個體] 中,選取 [建立新的 Azure 函式]。
使用下表中的指定值建立新的執行個體:
設定 值 描述 名稱 全域唯一的名稱 用以唯一識別新函式應用程式的名稱。 接受此名稱或輸入新的名稱。 有效字元: a-z
、0-9
和-
。訂用帳戶 您的訂用帳戶 要使用的 Azure 訂用帳戶。 接受此訂用帳戶,或從下拉式清單中選取一個新的訂用帳戶。 資源群組 資源群組的名稱 您要在其中建立函數應用程式的資源群組。 選取 [新建] 來建立新的資源群組。 您也可以從下拉式清單中選擇現有的資源群組。 方案類型 耗用 當您將專案發佈至在取用方案中執行的函式應用程式時,您只需支付您的函式應用程式執行費用。 其他主控方案會產生較高的成本。 地點 App Service 的位置 在 Azure 區域中選取 [位置],此位置應靠近您或靠近函式會存取的其他服務。 Azure 儲存體 一般用途的儲存體帳戶 函數執行階段所需的 Azure 儲存體帳戶。 選取 [新增] 以設定一般用途的儲存體帳戶。 您也可以選擇使用符合儲存體帳戶需求的現有帳戶。 Application Insights Application Insights 執行個體 您應為函式應用程式啟用 Azure Application Insights 整合。 選取 [新增],以在新的或現有的 Log Analytics 工作區中建立新的執行個體。 您也可以選擇使用現有的執行個體。 選取 [建立],以在 Azure 中建立函數應用程式及其相關資源。 資源的建立狀態會顯示在視窗左下角。
在 [函式執行個體] 上,請確定已選取 [從封裝檔案執行] 核取方塊。 您的函式應用程式使用已啟用從套件執行模式的 Zip 部署來部署。 建議採用 Zip 部署來部署函式專案,以提高效能。
選取 [完成],然後在 [發佈] 窗格上選取 [發佈],將包含專案檔的套件部署到 Azure 中的新函式應用程式。
部署完成時,[發佈] 索引標籤中會顯示 Azure 中函式應用程式的根 URL。
在 [發佈] 索引標籤的 [裝載] 區段中,選取 [在 Azure 入口網站中開啟]。 新的函式應用程式 Azure 資源隨即在 Azure 入口網站中開啟。
在 Azure 中驗證您的函數
在 Azure 入口網站中,您應該位於新函數應用程式的 [概觀] 頁面中。
在 [函式] 下,選取名為 HttpExample 的新函式,然後在函式頁面中選取 [取得函式 URL],然後選取 [複製到剪貼簿] 圖示。
在瀏覽器的網址列中,貼上您剛才複製的 URL 並執行要求。
呼叫 HTTP URL 觸發函式的 URL 會採用下列格式:
https://<APP_NAME>.azurewebsites.net/api/HttpExample?name=Functions
前往此 URL,您會看到瀏覽器中對於函式所傳回遠端 GET 要求所做出的回應,其看起來像下列範例︰
清除資源
在 Azure 中「資源」是指函式應用程式、函式、儲存體帳戶等等。 其會分組為「資源群組」,您可以藉由刪除群組來刪除群組中的所有項目。
您已完成本快速入門,建立了 Azure 資源。 您可能必須支付這些資源,取決於您的帳戶狀態和服務定價。 此集合中的其他快速入門會以本快速入門為基礎。 如果您打算繼續進行後續的快速入門、教學課程或者您在本快速入門中建立的任何服務,請勿清除資源。
使用下列步驟可刪除函式應用程式及其相關資源,以避免產生任何額外費用。
在 Visual Studio [發佈] 對話方塊的 [裝載] 區段中,選取 [在 Azure 入口網站中開啟]。
在函數應用程式頁面中,選取 [概觀] 索引標籤,然後選取 [資源群組] 底下的連結。
在 [資源群組] 分頁中,檢閱包含資源的清單,並確認這些是您想要刪除的項目。
選取 [刪除資源群組],並遵循指示。
刪除需要幾分鐘的時間。 完成時,通知會出現幾秒鐘的時間。 您也可以選取分頁頂端的鈴鐺圖示以檢視通知。
下一步
在本快速入門中,您已透過 Visual Studio,使用簡單的 HTTP 觸發函式在 Azure 中建立及發佈 C# 函式應用程式。
若要深入了解如何使用在隔離式背景工作處理序中執行的 C# 函式,請參閱在隔離式背景工作處理序中執行 C# Azure Functions 的指南。 請查看 .NET 支援的版本,以查看隔離式背景工作處理序中其他支援的 .NET 版本。
請接著前往下一篇文章,了解如何將 Azure 儲存體的佇列繫結新增至您的函式: