快速入門:使用 Azure 應用程式組態 建立 Azure Functions 應用程式

在本快速入門中,您會將 Azure 應用程式組態 服務納入 Azure Functions 應用程式,以集中儲存和管理與程式代碼分開的所有應用程式設定。

必要條件

新增金鑰值

將下列金鑰值新增至應用程式組態存放區,並保留標籤內容類型的預設值。 如需如何使用 Azure 入口網站或 CLI 將金鑰值新增至存放區的詳細資訊,請移至建立金鑰值

機碼
TestApp:Settings:Message Azure 應用程式組態的資料

建立 Functions 應用程式

Visual Studio 中的 Azure Functions 專案範本會建立可發行至 Azure 中函數應用程式的 C# 類別庫專案。 您可以使用函式應用程式將多個函式群組為邏輯單位,以方便管理、部署、調整和共用資源。

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

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

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

  4. 針對 [建立新的 Azure Functions 應用程式] 設定,請使用下表中的值:

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

    Azure Functions 項目設定

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

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

連線至應用程式組態存放區

此專案會在 .NET Azure Functions 中使用相依性插入,並將 Azure 應用程式組態 新增為額外的組態來源。 Azure Functions 支援執行內含式隔離程序。 挑選符合您需求的 。

  1. 以滑鼠右鍵按一下專案,然後選取 [管理 NuGet 套件]。 在 [瀏覽] 索引標籤上,搜尋下列 NuGet 套件並新增至您的專案。

  2. 新增程式代碼以連線至 Azure 應用程式組態。

    使用下列程式碼,新增 Startup.cs 檔案。 其會定義名為 Startup 的類別,以實作 FunctionsStartup 抽象類別。 元件屬性用來指定 Azure Functions 啟動期間所使用的類型名稱。

    方法ConfigureAppConfiguration會覆寫,Azure 應用程式組態 提供者藉由呼叫 AddAzureAppConfiguration()新增為額外的組態來源。 方法 Configure 會保留空白,因為此時您不需要註冊任何服務。

    using System;
    using Microsoft.Azure.Functions.Extensions.DependencyInjection;
    using Microsoft.Extensions.Configuration;
    
    [assembly: FunctionsStartup(typeof(FunctionApp.Startup))]
    
    namespace FunctionApp
    {
        class Startup : FunctionsStartup
        {
            public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
            {
                string cs = Environment.GetEnvironmentVariable("ConnectionString");
                builder.ConfigurationBuilder.AddAzureAppConfiguration(cs);
            }
    
            public override void Configure(IFunctionsHostBuilder builder)
            {
            }
        }
    }
    
  3. 開啟 Function1.cs,如果尚未存在,請新增下列命名空間。

    using Microsoft.Extensions.Configuration;
    

    新增或更新建構函式,以透過相依性插入取得 的 IConfiguration 實例。

    private readonly IConfiguration _configuration;
    
    public Function1(IConfiguration configuration)
    {
        _configuration = configuration;
    }
    
  4. Run更新 方法以從組態讀取值。

    [FunctionName("Function1")]
    public async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");
    
        // Read configuration data
        string keyName = "TestApp:Settings:Message";
        string message = _configuration[keyName];
    
        return message != null
            ? (ActionResult)new OkObjectResult(message)
            : new BadRequestObjectResult($"Please create a key-value with the key '{keyName}' in App Configuration.");
    }
    

    注意

    類別 Function1Run 方法不應該是靜態的。 如果已自動產生修飾詞, static 請移除修飾詞。

在本機測試函式

  1. 設定名為 ConnectionString 的環境變數,並將其設定為應用程式組態存放區的存取金鑰。 如果您使用 Windows 命令提示字元,請執行下列命令,然後重新啟動命令提示字元以讓變更生效:

        setx ConnectionString "connection-string-of-your-app-configuration-store"
    

    如果您使用 Windows PowerShell,請執行下列命令:

        $Env:ConnectionString = "connection-string-of-your-app-configuration-store"
    

    如果您使用 macOS 或 Linux,請執行下列命令:

        export ConnectionString='connection-string-of-your-app-configuration-store'
    
  2. 按 F5 測試您的函式。 如果出現提示,請接受 Visual Studio 所發出要下載及安裝 Azure Functions Core (CLI) 工具的要求。 您可能也需要啟用防火牆例外狀況,工具才能處理 HTTP 要求。

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

    VS 中的快速入門函式偵錯

  4. 將 HTTP 要求的 URL 貼到您的瀏覽器位址列。 下圖顯示瀏覽器中對於函式傳回之本機 GET 要求所做出的回應。

    快速入門函式本機啟動

清除資源

如果您不想繼續使用本文中建立的資源,請刪除在此處建立的資源群組,以避免產生費用。

重要

刪除資源群組是無法回復的動作。 資源群組和其中的所有資源都將被永久刪除。 請確定您不會誤刪錯誤的資源群組或資源。 如果您是在包含需保留其他資源的資源群組內部,建立本文的資源,則可以從每個資源各自的窗格中個別刪除每個資源,而不必刪除整個資源群組。

  1. 登入 Azure 入口網站,然後選取 [資源群組]
  2. 在 [依名稱篩選] 方塊中,輸入您資源群組的名稱。
  3. 在結果清單中,選取資源群組名稱以查看概觀。
  4. 選取 [刪除資源群組]
  5. 系統將會要求您確認是否刪除資源群組。 輸入您資源群組的名稱以進行確認,然後選取 [刪除]

不久後,系統便會刪除該資源群組及其所有的資源。

下一步

在本快速入門中,您已建立新的 應用程式組態 存放區,並透過 應用程式組態 提供者與 Azure Functions 應用程式搭配使用。 若要瞭解如何更新 Azure Functions 應用程式以動態重新整理設定,請繼續進行下一個教學課程。

若要了解如何使用 Azure 受控服務識別來簡化對應用程式組態的存取,請繼續進行下一個教學課程。