Share via


啟用異地複寫

本文涵蓋 Azure 應用程式組態存放區的複寫。 您將了解如何在設定存放區中建立、使用及刪除複本。

若要深入瞭解異地複寫的概念,請參閱 Azure 應用程式組態中的異地複寫

必要條件

建立和列出複本

若要在入口網站中建立組態存放區的複本,請遵循下列步驟。

注意

不支援私人端點設定靜態 IP 的應用程式組態存放區複本。 如果您想要私人端點使用靜態 IP 設定,必須先建立複本,才能將私人端點新增至存放區。

  1. 在您的應用程式組態存放區中,選取 [設定] 底下的 [異地複寫]

  2. 在 [複本] 下,選取 [建立]。 在下拉式清單中選擇新複本的位置,然後指派複本名稱。 這個複本名稱必須是唯一的。

    [異地復寫] 按鈕醒目提示的螢幕快照,以及複本的 [建立] 按鈕。

  3. 選取 建立

  4. 您現在應該會看到新的複本列在 [複本] 底下。 檢查複本的狀態是否為「成功」,這表示已成功建立複本。

    已為組態存放區建立之復本清單的螢幕快照。

刪除複本

若要刪除入口網站中的複本,請遵循下列步驟。

  1. 在您的應用程式組態存放區中,選取 [設定] 底下的 [異地複寫]

  2. 在 [複本] 底下,選取您要刪除的複本右邊的 ...。 從下拉式功能表中選取 [刪除]

     顯示所選取複本右側三個點的螢幕快照,其中顯示刪除選項。

  3. 確認要刪除的複本名稱,然後選取 [確定] 以確認動作。

  4. 流程完成後,請檢查已刪除正確複本的複本清單。

使用複本調整規模和容錯移轉

您建立的每個複本都有自己的專用端點。 如果您的應用程式位於多個地理位置,您可以更新某個位置的應用程式各部署,連線到較接近此位置的複本,這有助於將應用程式與應用程式設定之間的網路延遲降到最低。 因為每個複本各有各的要求配額,所以此設定也有助於在應用程式成長為多區域分散式服務時,提升其可擴縮性。

啟用異地複寫時,如果一個複本無法存取,您可以讓應用程式容錯移轉到另一個複本,改善復原能力。 應用程式設定提供者程式庫藉由接受多個複本端點,以提供內建容錯移轉支援。 您可以按由高到低的慣用端點順序,提供複本端點的清單。 無法存取目前端點時,提供者程式庫會容錯移轉到較不常使用的慣用端點,但會不時嘗試連線到較常使用的慣用端點。 當有較常使用的慣用端點可用時,就會切換到此端點以提出未來的要求。

假設您有使用 Azure 應用程式設定的應用程式,您可以將它更新為下列範例程式碼,以利用容錯移轉功能。 您可以提供進行 Microsoft Entra 驗證的端點清單,或存取金鑰型驗證的連接字串清單。

編輯對 AddAzureAppConfiguration 方法的呼叫,這通常位於應用程式的 program.cs 檔案中。

使用 Microsoft Entra ID 進行連線

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Provide an ordered list of replica endpoints
    var endpoints = new Uri[] {
        new Uri("<first-replica-endpoint>"),
        new Uri("<second-replica-endpoint>") };
    
    // Connect to replica endpoints using Microsoft Entra authentication
    options.Connect(endpoints, new DefaultAzureCredential());

    // Other changes to options
});

使用連接字串來連線

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Provide an ordered list of replica connection strings
    var connectionStrings = new string[] {
        Environment.GetEnvironmentVariable("FIRST_REPLICA_CONNECTION_STRING"),
        Environment.GetEnvironmentVariable("SECOND_REPLICA_CONNECTION_STRING") };
    
    // Connect to replica endpoints using connection strings
    options.Connect(connectionStrings);

    // Other changes to options
});

注意

如果使用下列任何套件的 6.0.0 版或更新版本,即可使用容錯移轉支援。

  • Microsoft.Extensions.Configuration.AzureAppConfiguration
  • Microsoft.Azure.AppConfiguration.AspNetCore
  • Microsoft.Azure.AppConfiguration.Functions.Worker

如果應用程式設定提供者觀察到下列情況,就可能發生容錯移轉。

  • 接收服務無法使用狀態的回應 (HTTP 狀態碼 500 或更後面的代碼)。
  • 網路連線問題的經驗。
  • 節流要求 (HTTP 狀態碼 429)。

驗證失敗等用戶端錯誤不會發生容錯移轉。

自動探索複本

您可以指定一或多個已啟用異地複寫的應用程式組態存放區端點,讓應用程式連線或容錯移轉至該端點。 不過,如果無法存取這些端點,應用程式組態提供者程式庫會自動探索是否有任何其他複本,並嘗試連線到複本。 這項功能可讓您因異地複寫而獲得好處,不需要變更程式碼或重新部署應用程式。 這表示即使在部署應用程式之後,您也可以啟用異地複寫或新增額外的複本。

系統會自動選取並隨機使用自動探索到的複本。 如果您有偏好使用的特定複本,可以明確指定其端點。 此功能預設為啟用,但您可以參考下列範例程式碼來停用此功能。

編輯對 AddAzureAppConfiguration 方法的呼叫,這通常位於應用程式的 program.cs 檔案中。

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Disable automatic replica discovery
    options.ReplicaDiscoveryEnabled = false;

    // Other changes to options
});

注意

如果您使用下列任何套件 7.1.0 版或更新版本,則可以使用自動復本探索支援。

  • Microsoft.Extensions.Configuration.AzureAppConfiguration
  • Microsoft.Azure.AppConfiguration.AspNetCore
  • Microsoft.Azure.AppConfiguration.Functions.Worker

下一步