快速入門:使用 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 "<AppConfigurationEndpoint>"
    

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

    $Env:AZURE_APPCONFIG_ENDPOINT = "<AppConfigurationEndpoint>"
    

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

    export AZURE_APPCONFIG_ENDPOINT='<AppConfigurationEndpoint>'
    
  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 <StorageQueueName>
  2. 在你的函式應用程式中,選擇 Azure 入口網站中的設定>環境變數>應用程式設定,並建立一個參考應用程式配置鍵的應用程式設定:

    名稱 值
    MyQueueName @Microsoft.AppConfiguration(Endpoint=<AppConfigurationEndpoint>; 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 受控識別來簡化應用程式設定的存取,請繼續進行下列教學課程。