本快速入門說明如何使用 Azure 應用程式組態,集中和管理程式碼外部的 Azure Functions 應用程式設定。 透過 .NET 組態提供者整合,您只要變更幾個簡單的程式代碼,即可將應用程式組態新增為額外的組態來源。
先決條件
- 具有有效訂用帳戶的 Azure 帳戶。 建立免費帳戶。
- 應用程式組態存放區,如 建立存放區的教學課程所示。
- Visual Studio,其中包含 Azure 開發工作負載。
- Azure Functions 工具。
新增索引鍵-值
將下列索引鍵/值新增至應用程式組態存放區,並保留標籤和內容類型的預設值。 如需如何使用 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 (建議) 或連接字串連線到您的應用程式組態存放區。
以滑鼠右鍵按一下專案,然後選取 [管理 NuGet 套件]。 在 [ 流覽] 索引標籤上,搜尋並新增下列 NuGet 套件的最新穩定版本至您的專案。
- Microsoft.Azure.AppConfiguration.Functions.Worker
- Azure.Identity
開啟 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:*"); });開啟 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; }更新
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."); }
在本機測試函式
設定環境變數。
將名為 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>'按 F5 測試您的函式。 如果出現提示,請接受 Visual Studio 所發出要下載及安裝 Azure Functions Core (CLI) 工具的要求。 您可能也需要啟用防火牆例外狀況,工具才能處理 HTTP 要求。
從 Azure Functions 執行階段輸出複製函式的 URL。
將 HTTP 要求的 URL 貼到瀏覽器的網址列。 下圖顯示瀏覽器中對於函式傳回之本機 GET 要求所做出的回應。
使用應用程式組態參考管理觸發程序參數
Azure Functions 觸發程式會定義如何叫用函式。 觸發程式屬性,例如佇列名稱或資料庫名稱,會在主機啟動時間載入,而且無法直接從 Azure 應用程式組態擷取值。 若要管理這些參數,您可以使用 Azure Functions 和 App Service 可用的應用程式組態參考功能。
應用程式組態參考功能可讓您直接從應用程式設定參考儲存在 Azure 應用程式組態中的索引鍵/值。 Azure Functions 會在啟動時解析這些參考,讓您集中且安全地管理觸發程序參數。
例如,請考慮佇列觸發的函式應用程式。 相較於直接在觸發屬性中指定佇列名稱,您可以改參考儲存在 Azure 應用程式設定中的鍵值。
在您的 Azure 應用程式組態存放區中,為您的佇列名稱新增鍵-值:
Key 值 TestApp:Storage:QueueName <記憶體帳戶中的佇列名稱> 在函式應用程式中,選取 Azure 入口網站中的 [設定 ->環境變數 ->應用程式設定],然後建立參考應用程式組態密鑰的應用程式設定:
名稱 值 MyQueueName @Microsoft.AppConfiguration(Endpoint=<your-store-endpoint>; Key=TestApp:Storage:QueueName)小提示
如果您在 Azure 應用程式組態中有多個索引鍵/值,您可以使用 Azure 入口網站或 CLI ,以批次方式將其匯出為 Azure Functions 的應用程式組態參考 。
為您的 Azure Functions 應用程式啟用受控識別,並為應用程式組態存放區指派 應用程式設定數據讀取器 角色。 如需設定應用程式組態參考的詳細指示,請參閱 在App Service和 Azure Functions 中使用應用程式組態參考。
更新佇列觸發的函式以使用應用程式設定:
[Function("QueueTriggeredFunction")] public void Run([QueueTrigger(queueName: "%MyQueueName%")] QueueMessage message) { _logger.LogInformation($"C# Queue trigger function processed: {message.MessageText}"); }在運行時間,Azure Functions 會將
%MyQueueName%佔位符解析為儲存在 Azure 應用程式組態中的值,讓您集中管理觸發程式參數,而不需要將參數硬式編碼到函式程式代碼中。
清除資源
如果您不想繼續使用本文中建立的資源,請刪除在此處建立的資源群組,以避免產生費用。
重要事項
刪除資源群組是無法回復的動作。 資源群組和其中的所有資源都將被永久刪除。 請確定您不會誤刪錯誤的資源群組或資源。 如果您是在包含需保留其他資源的資源群組內部,建立本文的資源,則可以從每個資源各自的窗格中個別刪除每個資源,而不必刪除整個資源群組。
- 登入 Azure 入口網站,然後選取 [資源群組]。
- 在 [依名稱篩選] 方塊中,輸入您資源群組的名稱。
- 在結果清單中,選取資源群組名稱以查看概觀。
- 選取 [刪除資源群組]。
- 系統將會要求您確認是否刪除資源群組。 輸入您資源群組的名稱以進行確認,然後選取 [刪除]。
不久後,系統便會刪除該資源群組及其所有的資源。
後續步驟
在本快速入門中,您已整合 Azure 應用程式組態與 Azure Functions 應用程式。 若要瞭解如何讓函式應用程式動態重新整理組態設定,請繼續進行下一個教學課程。
若要瞭解如何從 Azure Functions 應用程式內的 Azure 應用程式組態使用功能旗標,請繼續進行下列教學課程。
若要瞭解如何使用 Azure 受控識別來簡化應用程式設定的存取,請繼續進行下列教學課程。