快速入門:使用 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 中的 Azure Functions 專案範本會建立可發行至 Azure 中函數應用程式的 C# 類別庫專案。 您可以使用函式應用程式將多個函式群組為邏輯單位,以方便管理、部署、調整和共用資源。

  1. 在 Visual Studio 功能表中,選取 [檔案]> [新增]> [專案]

  2. 在 [建立新專案] 的搜尋方塊中輸入函式,選擇 [Azure Functions] 範本,然後選取 [下一步]

  3. 在 [設定新專案] 中,輸入專案的專案名稱,然後選取 [下一步]。 函式應用程式名稱必須是有效的 C# 命名空間,因此不會使用底線、連字號或任何其他非英數字元。

  4. 如需其餘其他資訊設定,

    設定 Description
    函式背景工作 .NET 8.0 隔離式 (長期支援) 函式會在隔離式背景工作處理序中於 .NET 8 上執行。
    Function HTTP 觸發程序 此值會建立 HTTP 要求所觸發的函式。
    將 Azurite 用於執行階段儲存體帳戶 (AzureWebJobsStorage) 啟用 因為 Azure 中的函數應用程式需要儲存體帳戶,所以當您將專案發佈至 Azure 時,就會指派或建立一個儲存體帳戶。 HTTP 觸發程式不會使用 Azure 儲存體帳戶連接字串;所有其他觸發程式類型都需要有效的 Azure 儲存體帳戶連接字串。 選取此選項時會使用 Azurite 模擬器
    授權等級 匿名 建立的函式可以由任何用戶端觸發,而不需提供金鑰。 此授權設定可以讓測試新函式變得簡單。 如需金鑰和授權的詳細資訊,請參閱 授權金鑰HTTP 和 Webhook 繫結

    Screenshot of Azure Functions project settings.

    請確定您已將 [授權層級] 設定為 [匿名]。 如果您選擇函式的預設層級,則必須在要求中提供函式金鑰,以在 Azure 中存取函式端點。

  5. 選取 [建立] 以建立函式專案和 HTTP 觸發程序函數。

Visual Studio 會建立一個專案,其中的類別包含 HTTP 觸發程序函式類型的重複使用程式碼。 重複使用程式碼會傳送 HTTP 回應,其中包含要求內文或查詢字串中的值。 HttpTrigger 屬性指定此函式是由 HTTP 要求所觸發。

重新命名函式

Function 方法屬性會設定函式的名稱,其預設將產生為 Function1。 因為當您建立專案時,工具不會讓您覆寫預設函式名稱,所以請花幾分鐘為函式類別、檔案與中繼資料建立更好的名稱。

  1. 在 [檔案總管] 中,在 Function1.cs 檔案按一下滑鼠右鍵,並將其重新命名為 HttpExample.cs

  2. 在程式碼中,將 Function1 類別重新命名為 HttpExample

  3. 在名為 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 執行階段在本機測試函式。

  1. 若要執行您的函數,請在 Visual Studio 中按 F5。 您可能需要啟用防火牆例外狀況,工具才能處理 HTTP 要求。 在本機執行函式時,系統不會強制執行授權層級。

  2. 從 Azure Functions 執行階段輸出複製函式的 URL。

    Azure local runtime

  3. 將 HTTP 要求的 URL 貼到瀏覽器的網址列中,然後執行要求。 下圖顯示函式傳回瀏覽器中對本機 GET 要求的回應:

    Function localhost response in the browser

  4. 若要停止偵錯,請在 Visual Studio 中按下 Shift+F5 可。

確認函式在本機電腦上正確執行之後,就可以將專案發佈到 Azure。

將專案發佈至 Azure

Visual Studio 可以將本機專案發佈至 Azure。 您的 Azure 訂用帳戶中必須具有函式應用程式,才可以發佈您的專案。 如果您還沒有 Azure 中的函數應用程式,Visual Studio 發佈會在您第一次發佈專案時為您建立一個。 在本文中,您將建立函數應用程式與相關的 Azure 資源。

  1. 在 [方案總管] 中,以滑鼠右鍵按一下專案並選取 [發行]。 在 [目標] 中,選取 [Azure],然後選取 [下一步]

    Screenshot of publish window.

  2. 在 [特定目標],選取 [Azure 函數應用程式 (Windows)] (這會建立在 Windows 上執行的函數應用程式),然後選取 [下一步]

    Screenshot of publish window with specific target.

  3. 在 [函式執行個體] 中,選擇 [建立新的 Azure 函式...]

    Screenshot of create a new function app instance.

  4. 使用下表中的指定值建立新的執行個體:

    設定 描述
    名稱 全域唯一的名稱 用以唯一識別新函式應用程式的名稱。 接受此名稱或輸入新的名稱。 有效字元:a-z0-9-
    訂用帳戶 您的訂用帳戶 要使用的 Azure 訂用帳戶。 接受此訂用帳戶,或從下拉式清單中選取一個新的訂用帳戶。
    資源群組 資源群組的名稱 您要在其中建立函數應用程式的資源群組。 選取 [新建] 來建立新的資源群組。 您也可以從下拉式清單中選擇現有的資源群組。
    方案類型 耗用 當您將專案發佈至在取用方案中執行的函式應用程式時,您只需支付您的函式應用程式執行費用。 其他主控方案會產生較高的成本。
    地點 App Service 的位置 區域中選擇 位置,此位置應靠近您或靠近函式會存取的其他服務。
    Azure 儲存體 一般用途的儲存體帳戶 函數執行階段所需的 Azure 儲存體帳戶。 選取 [新增] 以設定一般用途的儲存體帳戶。 您也可以選擇符合儲存體帳戶需求的現有帳戶。
    Application Insights Application Insights 執行個體 您應為函數應用程式啟用 Application Insights 整合。 選取 [新增],以在新的或現有的 Log Analytics 工作區中建立新的執行個體。 您也可以選擇現有的執行個體。

    Screenshot of Create App Service dialog.

  5. 選取 [建立],以在 Azure 中建立函數應用程式及其相關資源。 資源的建立狀態會顯示在視窗左下方。

  6. 在 [函式執行個體] 中,請確定已核取 [從封裝檔案執行]。 您的函式應用程式會使用已啟用從套件執行模式的 Zip 部署來部署。 建議採用 Zip 部署來部署函式專案,可提高效能。

    Screenshot of Finish profile creation.

  7. 選取 [完成],然後在 [發佈] 頁面上選取 [發佈],將包含專案檔的套件部署到 Azure 中的新函數應用程式。

    部署完成之後,[發佈] 索引標籤中會顯示 Azure 中函式應用程式的根 URL。

  8. 在 [發佈] 索引標籤的 [裝載] 區段中,選擇 [在 Azure 入口網站中開啟]。 這會在 Azure 入口網站中開啟新的函數應用程式 Azure 資源。

    Screenshot of Publish success message.

在 Azure 中驗證您的函數

  1. 在 Azure 入口網站中,您應該位於新函數應用程式的 [概觀] 頁面中。

  2. 在 [函式] 下,選取名為 HttpExample 的新函式,然後在函式頁面中選取 [取得函式 URL],然後選取 [複製到剪貼簿] 圖示。

  3. 在瀏覽器的網址列中,貼上您剛才複製的 URL 並執行要求。

    呼叫 HTTP URL 觸發函式的 URL 會採用下列格式:

    https://<APP_NAME>.azurewebsites.net/api/HttpExample?name=Functions

  4. 前往此 URL,您會看到瀏覽器中對於函式所傳回遠端 GET 要求所做出的回應,其看起來像下列範例︰

    Function response in the browser

清除資源

在 Azure 中「資源」是指函式應用程式、函式、儲存體帳戶等等。 其會分組為「資源群組」,您可以藉由刪除群組來刪除群組中的所有項目。

您已完成本快速入門,建立了 Azure 資源。 您可能必須支付這些資源,取決於您的帳戶狀態服務定價。 此集合中的其他快速入門會以本快速入門為基礎。 如果您打算繼續進行後續的快速入門、教學課程或者您在本快速入門中建立的任何服務,請勿清除資源。

使用下列步驟可刪除函式應用程式及其相關資源,以避免產生任何額外費用。

  1. 在 Visual Studio [發佈] 對話方塊的 [裝載] 區段中,選取 [在 Azure 入口網站中開啟]

  2. 在函數應用程式頁面中,選取 [概觀] 索引標籤,然後選取 [資源群組] 底下的連結。

    Select the resource group to delete from the function app page

  3. 在 [資源群組] 分頁中,檢閱包含資源的清單,並確認這些是您想要刪除的項目。

  4. 選取 [刪除資源群組],並遵循指示。

    刪除需要幾分鐘的時間。 完成時,通知會出現幾秒鐘的時間。 您也可以選取分頁頂端的鈴鐺圖示以檢視通知。

下一步

在本快速入門中,您已透過 Visual Studio,使用簡單的 HTTP 觸發函式在 Azure 中建立及發佈 C# 函式應用程式。

若要深入了解如何使用在隔離式背景工作處理序中執行的 C# 函式,請參閱在隔離式背景工作處理序中執行 C# Azure Functions 的指南。 請查看 .NET 支援的版本,以查看隔離式背景工作處理序中其他支援的 .NET 版本。

請接著前往下一篇文章,了解如何將 Azure 儲存體的佇列繫結新增至您的函式: