與 CI/CD 管線整合
本文說明如何在持續整合和持續部署系統中使用來自 Azure 應用程式組態的資料。
在 Azure DevOps 管線中使用應用程式組態
如果您有 Azure DevOps 管線,則可以從應用程式組態中擷取索引鍵值,並將其設為工作變數。 Azure 應用程式組態 DevOps 擴充功能是可提供這項功能的附加元件模組。 取得此課程模組,並參閱使用 Azure Pipelines 從應用程式組態提取設定,以取得在 Azure Pipelines 中使用的指示。
請使用應用程式來部署應用程式組態資料
應用程式如果仰賴 Azure 應用程式組態卻又無法與其連線,就可能無法執行。 將組態資料封裝到與應用程式一起部署並在應用程式啟動期間載入本機的檔案中,以增強應用程式的復原能力。 此方法可確保應用程式在啟動時具有預設設定值。 當您有應用程式組態存放區時,這些值會被其中任何較新的變更覆寫。
透過 Azure 應用程式組態的匯出功能,您可以自動化將目前組態資料擷取為單一檔案的程序。 接著,您可以將此檔案內嵌至持續整合和持續部署 (CI/CD) 管線中的建置或部署步驟。
下列範例會示範如何在快速入門所介紹的 Web 應用程式中,將應用程式組態資料納入建置步驟。 繼續進行之前,請先完成使用應用程式設定建立 ASP.NET Core 應用程式。
您可以使用任何程式碼編輯器來進行本教學課程中的步驟。 Windows、macOS 及 Linux 平台上都有提供的 Visual Studio Code 是一個絕佳的選項。
必要條件
如果您在本機建置,請下載並安裝 Azure CLI (如果您還沒有這麼做)。
匯出應用程式組態存放區
開啟 .csproj 檔案,並新增下列指令碼:
<Target Name="Export file" AfterTargets="Build"> <Message Text="Export the configurations to a temp file. " /> <Exec WorkingDirectory="$(MSBuildProjectDirectory)" Condition="$(ConnectionString) != ''" Command="az appconfig kv export -d file --path $(OutDir)\azureappconfig.json --format json --separator : --connection-string $(ConnectionString)" /> </Target>
開啟 Program.cs,並藉由呼叫
config.AddJsonFile()
方法,將CreateWebHostBuilder
方法更新為使用匯出的 JSON 檔案。 也請新增System.Reflection
命名空間。public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .ConfigureAppConfiguration((hostingContext, config) => { var directory = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var settings = config.Build(); config.AddJsonFile(Path.Combine(directory, "azureappconfig.json")); config.AddAzureAppConfiguration(settings["ConnectionStrings:AppConfig"]); }) .UseStartup<Startup>();
於本機建置並執行應用程式
設定名為 ConnectionString 的環境變數,並將其設定為應用程式組態存放區的存取金鑰。
如果您使用 Windows 命令提示字元來組建和在本機執行應用程式,請執行下列命令,然後重新啟動命令提示字元以讓變更生效:
setx ConnectionString "connection-string-of-your-app-configuration-store"
若要使用 .NET CLI 建置應用程式,請在命令殼層中執行下列命令:
dotnet build
成功完成建置後,請執行下列命令以在本機執行 Web 應用程式:
dotnet run
開啟瀏覽器視窗,並前往
http://localhost:5000
(這是本機所裝載 Web 應用程式的預設 URL)。
下一步
在本教學課程中,您已匯出要在部署管線中使用的 Azure 應用程式組態資料。 若要深入了解「應用程式組態」的使用方式,請繼續進行 Azure CLI 範例。