共用方式為


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

本快速入門說明如何使用 Azure 應用程式組態,集中和管理程式碼外部的 Azure Functions 應用程式設定。 透過 .NET 組態提供者整合,您只要變更幾個簡單的程式代碼,即可將應用程式組態新增為額外的組態來源。

先決條件

新增索引鍵-值

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

Key
TestApp:Settings:Message Azure 應用程式組態的值

建立函式應用程式

選取 Azure Functions (C#) 範本,以使用 Visual Studio 建立 Azure Functions 應用程式。 此範本會引導您設定專案的基本設定。 如需詳細指示,請參閱 使用Visual Studio開發 Azure Functions

建立函式應用程式時,請使用下表作為重要參數的參考。

設定
Functions 背景工作角色 .NET 8.0 隔離式
功能 HTTP 觸發器
授權層級 匿名

附註

Azure 應用程式組態可以與 隔離工作者模型同進程模型中的 Azure Functions 搭配使用。 本快速入門使用獨立工作者模型作為範例。 您可以在 Azure 應用程式組態 GitHub 存放庫中找到這兩個模型的完整程式碼範例。

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

您可以使用 Microsoft Entra ID (建議) 或連接字串連線到您的應用程式組態存放區。

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

    • Microsoft.Azure.AppConfiguration.Functions.Worker
    • Azure.Identity
  2. 開啟 Program.cs 並更新程序代碼,如下所示。 您可以藉由呼叫 AddAzureAppConfiguration 方法,將 Azure 應用程式組態新增為其他組態來源。

    您可以使用 DefaultAzureCredential 來向 應用程式組態 存放區進行驗證。 請依照 指示 將您的憑證指派為 應用程式設定數據讀取者 角色。 在執行應用程式之前,請務必預留足夠的時間讓許可權生效。

    using Azure.Identity;
    using Microsoft.Azure.Functions.Worker.Builder;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Hosting;
    
    var builder = FunctionsApplication.CreateBuilder(args);
    
    // Connect to Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        Uri endpoint = new(Environment.GetEnvironmentVariable("AZURE_APPCONFIG_ENDPOINT") ?? 
            throw new InvalidOperationException("The environment variable 'AZURE_APPCONFIG_ENDPOINT' is not set or is empty."));
        options.Connect(endpoint, new DefaultAzureCredential())
               // Load all keys that start with `TestApp:` and have no label
               .Select("TestApp:*");
    });
    
  3. 開啟 Function1.cs,然後新增下列命名空間。

    using Microsoft.Extensions.Configuration;
    

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

    private readonly IConfiguration _configuration;
    private readonly ILogger<Function1> _logger;
    
    public Function1(IConfiguration configuration, ILogger<Function1> logger)
    {
        _configuration = configuration;
        _logger = logger;
    }
    
  4. 更新 Run 方法,以讀取組態中的值。

    [Function("Function1")]
    public IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req)
    {
        _logger.LogInformation("C# HTTP trigger function processed a request.");
    
        // Read configuration data
        string key = "TestApp:Settings:Message";
        string? message = _configuration[key];
    
        return new OkObjectResult(message ?? $"Please create a key-value with the key '{key}' in Azure App Configuration.");
    }
    

在本機測試函式

  1. 設定環境變數。

    將名為 AZURE_APPCONFIG_ENDPOINT 的環境變數設定為在 Azure 入口網站中,於市集的 總覽 底下找到的應用程式組態存放區端點。

    如果您使用 Windows 命令提示字元,請執行下列命令,然後重新啟動命令提示字元以讓變更生效:

    setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
    

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

    $Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
    

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

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

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

    VS 中的函式偵錯快速入門

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

    快速入門函式啟動本機

使用應用程式組態參考管理觸發程序參數

Azure Functions 觸發程式會定義如何叫用函式。 觸發程式屬性,例如佇列名稱或資料庫名稱,會在主機啟動時間載入,而且無法直接從 Azure 應用程式組態擷取值。 若要管理這些參數,您可以使用 Azure Functions 和 App Service 可用的應用程式組態參考功能。

應用程式組態參考功能可讓您直接從應用程式設定參考儲存在 Azure 應用程式組態中的索引鍵/值。 Azure Functions 會在啟動時解析這些參考,讓您集中且安全地管理觸發程序參數。

例如,請考慮佇列觸發的函式應用程式。 相較於直接在觸發屬性中指定佇列名稱,您可以改參考儲存在 Azure 應用程式設定中的鍵值。

  1. 在您的 Azure 應用程式組態存放區中,為您的佇列名稱新增鍵-值:

    Key
    TestApp:Storage:QueueName <記憶體帳戶中的佇列名稱>
  2. 在函式應用程式中,選取 Azure 入口網站中的 [設定 ->環境變數 ->應用程式設定],然後建立參考應用程式組態密鑰的應用程式設定:

    名稱
    MyQueueName @Microsoft.AppConfiguration(Endpoint=<your-store-endpoint>; Key=TestApp:Storage:QueueName)

    小提示

    如果您在 Azure 應用程式組態中有多個索引鍵/值,您可以使用 Azure 入口網站或 CLI ,以批次方式將其匯出為 Azure Functions 的應用程式組態參考

  3. 為您的 Azure Functions 應用程式啟用受控識別,並為應用程式組態存放區指派 應用程式設定數據讀取器 角色。 如需設定應用程式組態參考的詳細指示,請參閱 在App Service和 Azure Functions 中使用應用程式組態參考

  4. 更新佇列觸發的函式以使用應用程式設定:

    [Function("QueueTriggeredFunction")]
    public void Run([QueueTrigger(queueName: "%MyQueueName%")] QueueMessage message)
    {
        _logger.LogInformation($"C# Queue trigger function processed: {message.MessageText}");
    }
    

    在運行時間,Azure Functions 會將 %MyQueueName% 佔位符解析為儲存在 Azure 應用程式組態中的值,讓您集中管理觸發程式參數,而不需要將參數硬式編碼到函式程式代碼中。

清除資源

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

重要事項

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

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

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

後續步驟

在本快速入門中,您已整合 Azure 應用程式組態與 Azure Functions 應用程式。 若要瞭解如何讓函式應用程式動態重新整理組態設定,請繼續進行下一個教學課程。

若要瞭解如何從 Azure Functions 應用程式內的 Azure 應用程式組態使用功能旗標,請繼續進行下列教學課程。

若要瞭解如何使用 Azure 受控識別來簡化應用程式設定的存取,請繼續進行下列教學課程。