共用方式為


使用 Azure Logic Apps 建立 Azure 資源的複寫工作 (預覽)

重要

此功能處於預覽狀態,且受限於 Microsoft Azure 預覽版的補充使用規定

雖然最大可用性和可靠性是 Azure 服務的最高作業優先順序,但仍有許多情況會因為網路或名稱解析問題、錯誤或暫時沒有回應,而導致通訊停止。 這種情況並不「慘重」,建議您完全放棄區域部署,就像在災害復原狀況下的作法一樣。 不過,持續不到幾分鐘或甚至幾秒的可用性事件可能影響某些應用程式的商務案例。

若要降低無法預期事件對 Azure 區域中的 Azure 資源造成的影響,您可以將這些資源中的內容複寫到另一個區域,以維持商務持續性。 在 Azure 中,您可以建立複寫工作,將資料、事件或訊息從一個區域中的來源移至另一個區域中的目標。 如此一來,如果來源離線且目標必須接管,您就有立即可用的目標。

注意

您也可以使用複寫工作在相同區域中的實體之間移動內容,但如果整個區域變得無法使用或遇到中斷,則來源和目標都受到影響。

本文概述由 Azure Logic Apps 提供的複寫工作,並示範如何為 Azure 服務匯流排佇列建立範例複寫工作。 如果您不熟悉邏輯應用程式和工作流程,請檢閱什麼是 Azure Logic AppsAzure Logic Apps 的單一租用戶與多租用戶及整合服務環境的比較

什麼是複寫工作?

一般而言,複寫工作會從來源接收資料、事件或訊息、將該內容移至目標,然後從來源刪除該內容,除非來源是事件中樞實體。 複寫工作通常原封不動移動內容,但由 Azure Logic Apps 提供的複寫工作還會新增複寫屬性。 如果來源和目標通訊協定不同,這些工作也會執行中繼資料結構之間的對應。 複寫工作無狀態,這表示在工作的連續或平行執行之間不會共用狀態或其他副作用。

當您使用可用的複寫工作範本時,您建立的每個複寫工作在邏輯應用程式 (標準) 資源中都有基礎無狀態工作流程,其中包含複寫工作的多個工作流程。 此資源裝載於單一租用戶 Azure Logic Apps 中,這是可調整又可靠的執行環境,用於設定和執行無伺服器應用程式,包括複寫和同盟工作。 單一租用戶 Azure Logic Apps 執行階段也使用 Azure Functions 擴充性模型,且裝載為 Azure Functions 執行階段的延伸模組。 此設計為邏輯應用程式工作流程提供可攜性、彈性和更高效能,還繼承 Azure Functions 平台和 Azure App Service 生態系統的其他功能和優點。

如需複寫和同盟的詳細資訊,請檢閱下列文件:

複寫工作範本

目前,複寫工作範本適用於 Azure 事件中樞Azure 服務匯流排。 下表列出此預覽版中目前可用的複寫工作範本:

資源類型 複寫來源和目標
Azure 事件中樞命名空間 - 事件中樞執行個體至事件中樞執行個體
- 事件中樞執行個體至服務匯流排佇列
- 事件中樞執行個體至服務匯流排主題
Azure 服務匯流排命名空間 - 服務匯流排佇列至服務匯流排佇列
- 服務匯流排佇列至服務匯流排主題
- 服務匯流排主題至服務匯流排主題
- 服務匯流排佇列至事件中樞執行個體
- 服務匯流排主題至服務匯流排佇列
- 服務匯流排主題至事件中樞執行個體

重要事項:當佇列是來源時,複寫工作不會複製訊息,而是將訊息從來源「移動」至目標,並從來源刪除訊息。

若要改為鏡像訊息,請使用主題作為來源,其中「主要」訂用帳戶就像佇列端點。 如此一來,目標就會從來源取得每個訊息的複本。

若要跨不同區域來路由傳送訊息,您可以建立從應用程式傳來訊息的佇列。 複寫工作會將訊息從該佇列傳輸到另一個區域的命名空間中的目標佇列。 您也可以使用主題訂用帳戶作為實體來充當傳輸佇列。 如需詳細資訊,請參閱 ServiceBusCopy 的複寫拓撲

複寫拓撲和工作流程

為了協助您理解 Azure Logic Apps (標準) 提供的複寫工作如何運作,下圖顯示事件中樞執行個體和服務匯流排佇列的複寫工作結構及工作流程。

事件中樞的複寫拓撲

下圖顯示事件中樞執行個體之間的拓撲和複寫工作的工作流程:

Conceptual diagram showing topology for replication task powered by a

關於 Azure 事件中樞的複寫和同盟,如需詳細資訊,請檢閱下列文件:

服務匯流排的複寫拓撲

下圖顯示服務匯流排佇列之間的拓撲和複寫工作的工作流程:

Conceptual diagram showing topology for replication task powered by

如需 Azure 服務匯流排中的複寫和同盟的詳細資訊,請檢閱下列文件:

中繼資料和屬性對應

針對事件中樞,從來源事件中樞命名空間取得的下列項目,在目標事件中樞命名空間中由服務指派的新值取代:服務指派給事件的中繼資料、原始加入佇列時間、序號和位移。 不過,在 Azure 提供的範例中,針對協助程式函式和複寫工作,使用者屬性中保留原始值:repl-enqueue-time (ISO8601 字串)、repl-sequencerepl-offset。 這些屬性為 string 類型,而且包含各自原始屬性的字串化值。 如果事件經多次轉送,則服務指派給直接來源的中繼資料會附加至任何現存的屬性,而且值以分號隔開。 如需詳細資訊,請檢閱服務指派的中繼資料 - 事件複寫工作模式

針對服務匯流排,從來源服務匯流排佇列或主題取得的下列項目,在目標服務匯流排佇列或主題中由服務指派的新值取代:服務指派給訊息的中繼資料、原始加入佇列時間和序號。 不過,在 Azure 提供的範例中,針對預設複寫工作,使用者屬性中保留原始值:repl-enqueue-time (ISO8601 字串) 和 repl-sequence。 這些屬性為 string 類型,而且包含各自原始屬性的字串化值。 如果訊息經多次轉送,則服務指派給直接來源的中繼資料會附加至任何現存的屬性,而且值以分號隔開。 如需詳細資訊,請檢閱服務指派的中繼資料 - 訊息複寫工作模式

當工作從服務匯流排複寫到事件中樞時,工作只會將 User Properties 屬性對應至 Properties 屬性。 不過,當工作從事件中樞複寫到服務匯流排時,工作會對應下列屬性:

從事件中樞 至服務匯流排
ContentType ContentType
CorrelationId CorrelationId
MessageId MessageId
PartitionKey PartitionKey SessionId
屬性 使用者內容
ReplyTo ReplyTo
ReplyToGroupName ReplyToSessionId
主旨 標籤

順序保留

針對事件中樞,在相同數目的分割區之間複寫會建立 1:1 複製品,事件完全不變,但也可能包含重複項目。 不過,在不同數目的分割區之間複寫會根據分割區索引鍵,只保留事件的相對順序,但也可能包含重複項目。 如需詳細資訊,請檢閱串流和順序保留

針對服務匯流排,您必須啟用工作階段,如此,從來源擷取的相同工作階段識別碼的訊息序列,才會以原始序列和相同工作階段識別碼整批提交至目標佇列或主題。 如需詳細資訊,請檢閱序列和順序保留

重要

當來源遇到干擾性事件時,複寫工作不會追蹤已處理哪些訊息。 為了避免重複處理已處理的訊息,您必須設法追蹤已處理的訊息,以便只繼續處理未處理的訊息。

例如,您可以設定資料庫來儲存每個訊息的處理狀態。 當訊息送達時,檢查訊息的狀態,只在訊息未處理時才處理。 這樣就不會處理已處理的訊息。

此模式示範「等冪」概念,這是指在輸入上重複動作會產生相同的結果,而不會產生其他副作用,也不會變更輸入的值。

關於可讓您建立複寫工作的 Azure 服務,若要深入了解多網站和多區域同盟,請檢閱下列文件:

定價

在下方,複寫工作由裝載於單一租用戶 Azure Logic Apps 中的邏輯應用程式 (標準)資源中的無狀態工作流程所提供。 建立此複寫工作時會立即開始產生費用。 使用量、計量、計費和定價模式遵循標準主控方案標準方案定價層

根據事件中樞接收的事件數目,或服務匯流排所處理的訊息數目,主控方案可能擴大或縮少,以便在作用中複寫期間維持最低 vCPU 使用量和低延遲。 此行為要求當您建立邏輯應用程式資源以用於複寫工作時,必須選擇適當的標準方案定價層,以免 Azure Logic Apps 節流或耗盡 CPU 使用量,而仍可保證快速複寫。

注意

如果應用程式從 WS1 方案的一個執行個體開始,然後擴增為兩個執行個體,假設方案整天執行,則成本是 WS1 成本的兩倍。 如果您將應用程式擴大至 WS2 方案並使用一個執行個體,則成本實際上與兩個 WS1 方案執行個體相同。 同樣地,如果您將應用程式擴大至 WS3 方案並使用一個執行個體,則成本實際上與兩個 WS2 方案執行個體或四個 WS1 方案執行個體相同。

以下針對特定複寫工作案例,根據案例是事件中樞或服務匯流排及各種組態值,舉例說明可提供最佳輸送量和成本的主控方案定價層和組態選項。

注意

下列各節的範例假設事件或訊息大小為 1 KB,使用 800 作為預先擷取計數的預設值、事件中樞的事件批次大小上限,以及服務匯流排的訊息計數上限。 建議您根據事件大小,調整預先擷取計數、事件批次大小上限或訊息計數上限。 例如,如果事件大小或訊息大小超過 1 KB,則建議從 800 開始降低預先擷取計數、事件批次大小上限或訊息計數的值。

事件中樞擴增

以下針對「相同區域中」兩個事件中樞命名空間之間的複寫工作,根據分割區數目、每秒的事件數目和其他組態值,舉例說明主控方案定價層和組態選項。

本節的範例假設事件大小為 1 KB,使用 800 作為預先擷取計數和事件批次大小上限的預設值。 建議您根據事件大小,調整預先擷取計數和事件批次大小上限。 例如,如果事件大小超過 1 KB,則建議從 800 開始降低預先擷取計數和事件批次大小上限的值。

定價層 分割區計數 每秒事件數 高載上限* 隨時待命執行個體* 預先擷取計數* 事件批次大小上限*
WS1 1 1000 1 1 800 800
WS1 2 2000 1 1 800 800
WS2 4 4000 2 1 800 800
WS2 8 8000 2 1 800 800
WS3 16 16000 2 1 800 800
WS3 32 32000 3 1 800 800

* 關於您在每個定價層可變更的值,如需詳細資訊,請檢閱下表:

Description
高載上限 在低負載下擴增的彈性背景工作角色數目「上限」。 如果基礎應用程式需要的執行個體超出表格下一列的「隨時待命執行個體」,則應用程式可以繼續擴增,直到執行個體數目達到高載上限為止。 若要變更此值,請檢閱本文稍後的編輯主控方案擴增設定

注意:超出方案大小的任何執行個體「只有」在執行中且配置給您時,才會按秒計費。 平台會竭盡所能將應用程式擴增至已定義的上限。

提示:因為未使用的執行個體不計費,建議選取高於您所需的最大值,讓平台可以視需要擴增來處理較大的負載。

如需詳細資訊,由於工作流程標準方案與 Azure Functions 進階方案有一些共同之處,請檢閱下列文件:

- 方案和 SKU 設定 - Azure Functions 進階方案
- 什麼是雲端高載

隨時待命執行個體 隨時待命準備裝載應用程式的執行個體數目下限。 數目下限一律為 1。 若要變更此值,請檢閱本文稍後的編輯主控方案擴增設定

注意:超出方案大小的任何執行個體配置給您時,「無論是否」在執行中都計費。

如需詳細資訊,由於工作流程標準方案與 Azure Functions 進階方案有一些共同之處,請檢閱下列文件:隨時待命執行個體 - Azure Functions 進階方案

預先擷取計數 邏輯應用程式資源中 AzureFunctionsJobHost__extensions__eventHubs__eventProcessorOptions__prefetchCount 應用程式設定的預設值,決定基礎 EventProcessorHost 類別使用的預先擷取計數。 若要為此應用程式設定新增或指定不同的值,請檢閱管理應用程式設定 - local.settings.json,例如:

- 名稱AzureFunctionsJobHost__extensions__eventHubs__eventProcessorOptions__prefetchCount
- 800 (無上限)

如需 prefetchCount 屬性的詳細資訊,請檢閱下列文件:

- host.json 設定 - 適用於 Azure Functions 的 Azure 事件中樞觸發程序和繫結
- EventProcessorOptions.PrefetchCount 屬性
- 在應用程式的多個執行個體之間平衡分割區負載
- 事件處理器主機
- EventProcessorHost 類別

事件批次大小上限 邏輯應用程式資源中 AzureFunctionsJobHost__extensions__eventHubs__eventProcessorOptions__maxBatchSize 應用程式設定的預設值,決定每個接收迴圈所收到的事件計數上限。 若要為此應用程式設定新增或指定不同的值,請檢閱管理應用程式設定 - local.settings.json,例如:

- 名稱AzureFunctionsJobHost__extensions__eventHubs__eventProcessorOptions__maxBatchSize
- 800 (無上限)

如需 maxBatchSize 屬性的詳細資訊,請檢閱下列文件:

- host.json 設定 - 適用於 Azure Functions 的 Azure 事件中樞觸發程序和繫結
- EventProcessorOptions.MaxBatchSize 屬性
- 事件處理器主機

服務匯流排擴增

以下針對「相同區域中」兩個服務匯流排命名空間之間的複寫工作,根據每秒的事件數目和其他組態值,舉例說明主控方案定價層和組態選項。

本節的範例假設訊息大小為 1 KB,使用 800 作為預先擷取計數和訊息計數上限的預設值。 建議您根據訊息大小,調整預先擷取計數和訊息計數上限。 例如,如果訊息大小超過 1 KB,則建議從 800 開始降低預先擷取計數和訊息計數上限的值。

定價層 每秒的訊息數 高載上限* 隨時待命執行個體* 預先擷取計數* 訊息計數上限*
WS1 2000 1 1 800 800
WS2 2500 1 1 800 800
WS3 3500 1 1 800 800

* 關於您在每個定價層可變更的值,如需詳細資訊,請檢閱下表:

Description
高載上限 在低負載下擴增的彈性背景工作角色數目「上限」。 如果基礎應用程式需要的執行個體超出表格下一列的「隨時待命執行個體」,則應用程式可以繼續擴增,直到執行個體數目達到高載上限為止。 若要變更此值,請檢閱本文稍後的編輯主控方案擴增設定

注意:超出方案大小的任何執行個體「只有」在執行中且配置給您時,才會按秒計費。 平台會竭盡所能將應用程式擴增至已定義的上限。

提示:因為未使用的執行個體不計費,建議選取高於您所需的最大值,讓平台可以視需要擴增來處理較大的負載。

如需詳細資訊,由於工作流程標準方案與 Azure Functions 進階方案有一些共同之處,請檢閱下列文件:

- 方案和 SKU 設定 - Azure Functions 進階方案
- 什麼是雲端高載

隨時待命執行個體 隨時待命準備裝載應用程式的執行個體數目下限。 數目下限一律為 1。 若要變更此值,請檢閱本文稍後的編輯主控方案擴增設定

注意:超出方案大小的任何執行個體配置給您時,「無論是否」在執行中都計費。

如需詳細資訊,由於工作流程標準方案與 Azure Functions 進階方案有一些共同之處,請檢閱下列文件:隨時待命執行個體 - Azure Functions 進階方案

預先擷取計數 邏輯應用程式資源中 AzureFunctionsJobHost__extensions__serviceBus__prefetchCount 應用程式設定的預設值,決定基礎 ServiceBusProcessor 類別使用的預先擷取計數。 若要為此應用程式設定新增或指定不同的值,請檢閱管理應用程式設定 - local.settings.json,例如:

- 名稱AzureFunctionsJobHost__extensions__eventHubs__eventProcessorOptions__prefetchCount
- 800 (無上限)

如需 prefetchCount 屬性的詳細資訊,請檢閱下列文件:

- host.json 設定 - 適用於 Azure Functions 的 Azure 服務匯流排繫結
- ServiceBusProcessor.PrefetchCount 屬性
- ServiceBusProcessor 類別

訊息計數上限 邏輯應用程式資源中 AzureFunctionsJobHost__extensions__serviceBus__batchOptions__maxMessageCount 應用程式設定的預設值,決定觸發時要傳送的訊息數目上限。 若要為此應用程式設定新增或指定不同的值,請檢閱管理應用程式設定 - local.settings.json,例如:

- 名稱AzureFunctionsJobHost__extensions__serviceBus__batchOptions__maxMessageCount
- 800 (無上限)

如需 maxMessageCount 屬性的詳細資訊,請檢閱下列文件:host.json 設定 - 適用於 Azure Functions 的 Azure 事件中樞繫結

必要條件

  • Azure 帳戶和訂用帳戶。 如果您沒有訂用帳戶,請註冊一個免費的 Azure 帳戶

  • 來源和目標資源或實體,應該存在於不同的 Azure 區域中,以方便您測試異地災害復原容錯移轉案例。 這些實體可能隨著您要使用的工作範本而有所不同。 本文中的範例使用兩個服務匯流排佇列,分別位於不同的命名空間和 Azure 區域。

  • 您在建立複寫工作時可重複使用的邏輯應用程式 (標準) 資源。 如此,您可以針對特定複寫工作來自訂此資源,例如根據複寫案例的需求 (例如容量、輸送量和調整),選擇主控方案和定價層。 雖然您可以在建立複寫工作時建立此資源,但無法變更區域、主控方案和定價層。 下列清單針對先前建立的邏輯應用程式資源,提供其他理由和最佳做法:

    • 您可以在與複寫工作中的來源和目標實體不同的區域中建立此邏輯應用程式資源。

      目前,提供本指導是由於複寫工作在 Azure 資源內的原生整合。 當您在實體之間建立複寫工作,並選擇建立新的邏輯應用程式資源,而不是使用現有的邏輯應用程式時,「將會在與來源實體相同的區域中建立新的邏輯應用程式」。 如果來源區域無法使用,複寫工作也無法運作。 在容錯移轉案例中,工作也無法開始從新來源讀取資料,即先前的目標實體,而這也是主動-被動複寫模式嘗試達到的目標。

    • 您可以選擇主控方案和定價層,而不是使用預設屬性,以預先自訂此邏輯應用程式資源。 如此,複寫工作每秒可以處理更多事件或訊息,複寫速度更快。 如果您在建立複寫工作時建立此資源,這些預設屬性會固定。

    • 您可以確定此邏輯應用程式資源「只包含複寫工作的工作流程」,特別是當您想要遵循主動-被動複寫模式時。 當您使用現有的邏輯應用程式來建立複寫工作時,此選項會將工作 (無狀態工作流程) 新增至該邏輯應用程式資源。

    如需詳細資訊,請檢閱在 Azure 入口網站中使用單一租用戶 Azure Logic Apps (標準) 建立整合工作流程

  • 選用:目標命名空間的連接字串。 此選項允許目標存在於不同的訂用帳戶中,可讓您設定跨訂用帳戶複寫。

    若要尋找目標實體的連接字串,請遵循下列步驟:

    1. Azure 入口網站中,移至您的目標命名空間。

    2. 在命名空間導覽功能表的 [設定] 下,選取 [共用存取原則]

    3. 在開啟的 [共用存取原則] 窗格的 [原則] 下,選取 [RootManageSharedAccessKey]

    4. 在開啟的 [SAS 原則:RootManageSharedAccessKey] 窗格上,複製 [主要連接字串] 值。

    5. 將連接字串儲存在某處,以便您稍後可以使用字串來連線到目標命名空間。

命名規範

如果您尚未建立複寫工作或實體,請仔細考慮命名策略。 請確保名稱易於識別和區分。 例如,如果您使用事件中樞命名空間,複寫工作會從來源命名空間中的每個事件中樞執行個體複寫。 如果您使用服務匯流排佇列,下表提供命名實體和複寫工作的範例:

來源名稱 範例 複寫應用程式 範例 目標名稱 範例
命名空間:<name>-sb-<region> fabrikam-sb-weu 邏輯應用程式:<name-source-region-target-region> fabrikam-rep-weu-wus 命名空間:<name>-sb-<region> fabrikam-sb-wus
佇列:<name> jobs-transfer 工作流程:<name> jobs-transfer-workflow 佇列:<name> jobs

建立複寫工作

此範例示範如何建立服務匯流排佇列的複寫工作。

  1. Azure 入口網站中,尋找要作為來源的服務匯流排命名空間。

  2. 在命名空間導覽功能表的 [自動化] 區段中,選取 [工作 (預覽)]

    Screenshot showing Azure portal and Azure Service Bus namespace menu with

  3. 在 [工作] 窗格上,選取 [新增工作] 以選取工作範本。

    Screenshot showing the

  4. 在 [新增工作] 窗格的 [選取範本] 下,於您想要用來建立複寫工作的範本中,選取 [選取]。 如果下一頁未出現,請選取 [下一步:驗證]

    此範例繼續選取 [從服務匯流排佇列複寫至佇列] 工作範本,以在服務匯流排佇列之間複寫內容。

    Screenshot showing the

  5. 在 [驗證] 索引標籤的 [連線] 區段中,針對工作中顯示的每個連線選取 [建立],以便為所有連線提供驗證認證。 每個工作中的連線類型根據工作而有所不同。

    此範例顯示提示對目標佇列所在的目標服務匯流排命名空間建立連線。 來源服務匯流排命名空間的連線存在。

    Screenshot showing selected

  6. 提供目標的必要資訊,然後選取 [建立]

    在此範例中,請提供連線的顯示名稱,然後選取目標佇列所在的服務匯流排命名空間。

    Screenshot showing

    提示

    您也可以改為使用連接字串來建立連線。 此選項允許目標位於不同的訂用帳戶中,可讓您設定跨訂用帳戶複寫。 根據您在何處開始建立複寫工作,目標或來源會動態設定,因此您只需要連接目標。 若要使用連接字串,請使用下列步驟:

    1. 在 [連線] 窗格上,選取 [透過連接字串連線]

    2. 在 [連接字串] 方塊中,輸入目標命名空間的連接字串。

    下列範例顯示成功建立的連線:

    Screenshot showing

  7. 完成所有連線之後,請選取 [下一步:設定]

  8. 在 [設定] 索引標籤上,提供工作的名稱,以及工作所需的任何其他資訊。

    注意

    工作名稱在建立之後就無法變更,因此,請考慮使用您在編輯基礎工作流程時仍然適用的名稱。 您對基礎工作流程所做的變更僅適用於您建立的工作,而不是工作範本。

    例如,如果您將工作命名為 fabrikam-rep-weu-wus,但後來編輯基礎工作流程作為不同用途,則無法變更為相配的工作名稱。

    1. 若要將工作的工作流程新增至現有的邏輯應用程式 (標準) 資源,請從 [邏輯應用程式] 清單中選取現有的邏輯應用程式。 若要改為建立新的邏輯應用程式 (標準) 資源,請在 [邏輯應用程式] 清單下選取 [新建],並提供要用於新邏輯應用程式的名稱。

      注意

      如果您在建立複寫工作期間建立新的邏輯應用程式資源,則會在「與來源實體相同的區域」中建立邏輯應用程式,一旦來源區域變成無法使用,而且無法在容錯移轉情況中運作,就出現問題。 最佳做法是在與來源不同的區域中,建立邏輯應用程式 (標準) 資源。 當您建立複寫工作時,請改為選取現有的邏輯應用程式,並將基礎無狀態工作流程新增至現有的邏輯應用程式。 如需詳細資訊,請檢閱必要條件

    2. 當您完成時,選取 [檢閱 + 建立]

    Screenshot showing

  9. 在 [檢閱 + 建立] 索引標籤上,確認複寫工作運作所需的 Azure 資源。

    • 如果您選擇為複寫工作建立新的邏輯應用程式資源,此窗格會顯示複寫工作為了運作所需而建立的 Azure 資源。 例如,這些資源包括 Azure 儲存體帳戶,其中包含邏輯應用程式資源、工作流程和其他執行階段作業的組態資訊。 以事件中樞為例,此儲存體帳戶包含檢查點資訊,以及來源區域中斷或變成無法使用時,來源實體在資料流中停止的位置或「位移」

      下列範例顯示您選擇建立新的邏輯應用程式時的 [檢閱 + 建立] 索引標籤:

      Screenshot showing

    • 如果您選擇對複寫工作重複使用現有的邏輯應用程式資源,此窗格會顯示複寫為了運作而重複使用的 Azure 資源。

      下列範例顯示您選擇重複使用現有的邏輯應用程式時的 [檢閱 + 建立] 索引標籤:

      Screenshot showing

    注意

    如果來源、目標或兩者都位於虛擬網路後方,您必須在建立工作之後設定權限和存取權。 在此情況下,需要權限和存取權,邏輯應用程式工作流程才能執行複寫工作。

  10. 當您準備好時,選取 [建立]

    您建立的工作 (會自動啟動並執行) 現在會出現在 [工作] 清單中。

    提示

    如果工作未立即出現,則請嘗試重新整理工作清單,或在重新整理之前稍候一下。 在工具列上,選取 [重新整理]

    Screenshot showing

  11. 如果資源位於虛擬網路後方,請記得設定邏輯應用程式資源和工作流程的權限,以存取這些資源。

設定重試原則

在複寫關聯性的任一端發生可用性事件期間,為了避免遺失資料,您必須設定重試原則以維持穩固性。 若要設定複寫工作的重試原則,請檢閱 Azure Logic Apps 中的重試原則相關文件,以及編輯基礎工作流程的步驟。

檢閱工作歷程記錄

此範例示範如何檢視工作的工作流程執行歷程記錄及其狀態、輸入、輸出和其他資訊,並繼續使用服務匯流排佇列複寫工作的範例。

  1. Azure 入口網站中,尋找 Azure 資源或實體,其中有您要檢閱的工作歷程記錄。

    在此範例中,此資源是服務匯流排命名空間。

  2. 在資源導覽功能表的 [設定] 下,在 [自動化] 區段中選取 [工作 (預覽)]

  3. 在 [工作] 窗格上,尋找您要檢閱的工作。 在該工作的 [執行] 資料行中,選取 [檢視]

    Screenshot showing the

    此步驟針對標準邏輯應用程式資源包含的基礎無狀態工作流程,開啟 [概觀] 窗格。

  4. 若要檢視無狀態工作流程的執行歷程記錄,請在 [概觀] 窗格工具列上選取 [啟用偵錯模式]

    [執行歷程記錄] 索引標籤顯示工作的任何先前、進行中及等候執行,以及其識別碼、狀態、開始時間和執行持續時間。

    Screenshot showing a task's runs, their statuses, and other information.

    下表說明執行的可能狀態:

    狀態標籤 描述
    已取消 工作已在執行時取消。
    失敗 工作至少有一個失敗的動作,但沒有後續動作可以處理失敗。
    執行中 工作目前執行中。
    已成功 所有動作都已成功。 如果動作失敗,則工作仍然可以順利完成,但有後續動作可以處理失敗。
    等待 執行尚未開始但已暫停,因為工作先前的執行個體仍在執行中。
  5. 若要檢視一個執行中每個步驟的狀態和其他資訊,請選取該執行。

    [執行詳細資料] 窗格隨即開啟,並顯示已執行的基礎工作流程。

    • 工作流程一律由觸發程序開始。 在此工作中,工作流程由服務匯流排觸發程序開始,以等候訊息抵達來源服務匯流排佇列。

    • 每個步驟都顯示其狀態和執行持續時間。 持續時間為 0 秒的步驟,表示其執行時間少於 1 秒。

    Screenshot showing each step in the run, status, and run duration in the workflow.

  6. 若要檢閱每個步驟的輸入和輸出,請選取步驟,以開啟窗格來顯示該步驟的輸入、輸出和屬性詳細資料。

    此範例顯示服務匯流排觸發程序的輸入。

    Screenshot showing the trigger inputs, outputs, and properties.

若要了解如何建立您自己的自動化工作流程,以便在 Azure 資源的複寫工作之外,整合應用程式、資料、服務和系統,請檢閱在 Azure 入口網站中使用單一租用戶 Azure Logic Apps (標準) 建立整合工作流程

監視複寫工作

若要檢查複寫工作或基礎邏輯應用程式工作流程的效能和健康情況,您可以使用 Application Insights,這是 Azure 監視器中的功能。 Application Insights 應用程式對應是很實用的視覺化工作,可用來監視複寫工作。 此對應從擷取的監視資訊自動產生,可讓您探索複寫工作來源和目標傳輸的效能和可靠性。 如需立即的診斷深入解析和記錄詳細資料的低延遲視覺效果,您可以使用即時計量入口網站工具,這也是 Azure 監視器中的功能。

編輯工作

若要變更工作,您有下列選項:

內嵌編輯工作

  1. Azure 入口網站中,尋找資源,而此資源具有您想要更新的工作。

  2. 在資源導覽功能表的 [自動化] 區段中,選取 [工作 (預覽)]

  3. 在工作清單中,尋找您要更新的工作。 開啟工作的省略符號 (...) 功能表,然後選取 [內嵌編輯]

    Screenshot showing the opened ellipses menu and the selected option,

    預設會出現 [驗證] 索引標籤,並顯示現有的連線。

  4. 若要為連線新增驗證認證或選取不同的現有驗證認證,請開啟連線的省略符號 (...) 功能表,然後選取 [新增連線],或不同的驗證認證 (如果有的話)。

    注意

    您只能編輯目標連線,而不能編輯來源連線。

    Screenshot showing the

  5. 若要更新其他工作屬性,請選取 [下一步: 設定]

    針對此範例中的工作,您可以指定不同的來源和目標佇列。 不過,工作名稱和基礎邏輯應用程式及工作流程保持不變。

    Screenshot showing the

  6. 完成時,選取儲存

編輯工作的基礎工作流程

您可以編輯複寫工作背後的基礎工作流程,這會變更您所建立工作的原始組態,而不是工作範本本身。 完成變更並儲存之後,編輯過的工作就不會再執行與原始工作相同的功能。 如果想要有工作執行原始功能,您可能必須以相同的範本建立新工作。 如果您不想重新建立原始工作,請避免使用設計工具來變更工作背後的工作流程。 相反地,請建立邏輯應用程式 (標準) 無狀態工作流程,以符合您的整合需求。 如需詳細資訊,請檢閱在 Azure 入口網站中使用單一租用戶 Azure Logic Apps (標準) 建立整合工作流程

  1. Azure 入口網站中,尋找資源,其中有您要更新的工作。

  2. 在資源導覽功能表的 [自動化] 區段中,選取 [工作]

  3. 在工作清單中,尋找您要更新的工作。 開啟工作的省略號 (...) 功能表,然後選取 [在 Logic Apps 中開啟]

    Screenshot showing the opened ellipses menu and the selected option,

    Azure 入口網站會將環境切換到設計工具,可讓您立即編輯工作流程。

    Screenshot showing designer and underlying workflow.

    您現在可以編輯工作流程的觸發程序和動作,以及觸發程序和動作的屬性。

  4. 若要檢視觸發程序或動作的屬性,請選取該觸發程序或動作。

    Screenshot showing the Service Bus trigger properties pane.

    在此範例中,觸發程序的 IsSessionsEnabled 屬性變更為 [是]

  5. 若要儲存變更,請在設計工具的工具列上選取 [儲存]

    Screenshot showing the designer toolbar and the selected

  6. 若要測試和執行已更新的工作流程,請開啟邏輯應用程式資源,其中包含已更新的工作流程。 在工作流程導覽功能表上,選取 [概觀]>[執行觸發程序]>[執行]

    執行完成之後,設計工具會顯示工作流程的執行詳細資料。 若要檢閱每個步驟的輸入和輸出,請選取步驟,以開啟窗格來顯示該步驟的輸入、輸出和屬性詳細資料。

    此範例顯示所選取服務匯流排觸發程序的輸入、輸出和屬性,以及更新的觸發程序屬性值。

    Screenshot showing the workflow's run details with the trigger's inputs, outputs, and properties.

  7. 若要停用工作流程,而不讓工作繼續執行,請在 [概觀] 工具列上選取 [停用]。 如需詳細資訊,請檢閱停用或啟用單一租用戶工作流程

設定 Azure 事件中樞的容錯移轉

針對相同實體類型之間的 Azure 事件中樞複寫,異地災害復原需要執行從來源實體到目標實體的容錯移轉,然後告知任何受影響的事件消費者和產生者使用目標實體的端點,這會成為新的來源。 因此,如果發生災害,而且來源實體容錯移轉,則取用者和產生者 (包括您的複寫工作) 會重新導向新的來源。 複寫工作建立的儲存體帳戶包含檢查點資訊,以及來源區域中斷或變成無法使用時,來源實體在資料流中停止的位置或位移。

為了確保儲存體帳戶不含來自原始來源的任何舊版資訊,而且複寫工作會從新來源資料流的開頭開始讀取和複寫事件,您必須手動清除原始來源中的任何舊版資訊,並重新設定複寫工作。

  1. Azure 入口網站中,開啟複寫工作背後的邏輯應用程式資源或基礎工作流程。

    注意

    邏輯應用程式資源應該只包含複寫工作的工作流程。

  2. 在資源或工作流程的導覽功能表上,選取 [概觀]。 在 [概觀] 工具列上,針對工作流程選取 [停用],或針對邏輯應用程式資源選取 [停止]

  3. 若要尋找儲存體帳戶,供複寫工作的基礎邏輯應用程式資源用以儲存來自來源實體的檢查點和資料流位移資訊,請遵循下列步驟:

    1. 在邏輯應用程式資源功能表的 [設定] 下,選取 [組態]

    2. 在 [組態] 窗格的 [應用程式設定] 索引標籤上,選取 [AzureWebJobsStorage] 應用程式設定。

      此設定指定邏輯應用程式資源使用的連接字串和儲存體帳戶。

      注意

      如果應用程式設定未出現在清單中,請選取 [顯示值]

    3. 選取 [AzureWebJobsStorage] 應用程式設定,以便檢視儲存體帳戶名稱。

    此範例示範如何尋找此儲存體帳戶的名稱,在此為 storagefabrikamreplb0c

    Screenshot showing the underlying logic app resource's

    1. 若要確認儲存體帳戶資源存在,請在 Azure 入口網站搜尋方塊中輸入名稱,然後選取儲存體帳戶,例如:

    Screenshot showing the Azure portal search box with the storage account name entered.

  4. 現在,使用下列步驟來刪除資料夾,其中包含來源實體的檢查點和位移資訊:

    1. 下載、安裝及開啟最新的 Azure 儲存體總管桌面用戶端 (如果您沒有最新版本)。

      注意

      針對刪除清除工作,您目前必須使用 Azure 儲存體總管用戶端,而「不是」Azure 入口網站中的儲存體總管、瀏覽器、編輯器或管理體驗。

      雖然您可以使用 PowerShell Remove-AzStorageDirectory 命令來刪除容器資料夾,但此命令只適用於「空的」資料夾。

    2. 如果您尚未登入,請使用您的 Azure 帳戶登入,並確定已選取儲存體帳戶資源的 Azure 訂用帳戶。 如需詳細資訊,請參閱開始使用儲存體總管

    3. 在 [總管] 視窗中,在您的 Azure 訂用帳戶名稱下,移至 [儲存體帳戶]>{your-storage-account-name}>[Blob 容器]>[azure-webjobs-eventhub]

      注意

      如果 azure-webjobs-eventhub 資料夾不存在,表示複寫工作尚未執行。 只有在複寫工作至少執行一次之後,此資料夾才會出現。

      Screenshot showing the Azure Storage Explorer with the storage account and blob container open to show the selected

    4. 在開啟的 [azure-webjobs-eventhub] 窗格中,選取事件中樞命名空間資料夾,其名稱具有下列格式:<source-Event-Hubs-namespace-name>.servicebus.windows.net

    5. 命名空間資料夾開啟之後,在 [azure-webjobs-eventhub] 窗格中選取 <former-source-entity-name> 資料夾。 從工具列或資料夾的捷徑功能表中,選取 [刪除],例如:

      Screenshot showing the former source Event Hubs entity folder selected with the

    6. 確認您要刪除資料夾。

  5. 返回複寫工作背後的邏輯應用程式資源或工作流程。 重新啟動邏輯應用程式,或再次啟用工作流程。

若要讓產生者和取用者使用新的來源端點,您需要在可輕鬆到達和更新的位置中提供新來源實體的相關資訊,以方便使用和尋找。 如果產生者或取用者遇到頻繁或持續性的錯誤,則應該檢查該位置並調整其設定。 該設定有許多種共用方式,例如 DNS 和檔案共用。

如需異地災害復原的詳細資訊,請檢閱下列文件:

編輯主控方案擴增設定

  1. Azure 入口網站中,開啟複寫工作的基礎邏輯應用程式資源。

  2. 在邏輯應用程式資源功能表上的 [設定] 下,選取 [擴增 (App Service方案)]

    Screenshot showing the hosting plan settings for maximum bursts, minimum instances, always ready instances, and scale out limit enforcement.

  3. 根據案例需求,在 [方案擴增] 和 [應用程式擴增] 下,分別變更高載上限和隨時待命執行個體的值。

  4. 完成時,在 [擴增 (App Service 方案]) 窗格工具列上,選取 [儲存]

如需詳細資訊,由於工作流程標準方案與 Azure Functions 進階方案有一些共同之處,請檢閱下列文件:

複寫問題和失敗

本節說明複寫失敗或停止運作的可能情況:

  • 訊息大小限制

    因為複寫工作會新增複寫屬性,請務必傳送小於 1 MB 的訊息。 否則,在工作新增複寫屬性之後,如果訊息大於可傳送至事件中樞實體的事件大小,複寫程序會失敗。

    例如,假設訊息大小為 1 MB。 工作新增複寫屬性之後,訊息大小會大於 1 MB。 嘗試傳送訊息的輸出呼叫會失敗。

  • 分割區索引鍵

    如果事件中有任何分割區索引鍵存在,當這些執行個體有相同數目的分割區時,事件中樞執行個體之間的複寫會失敗。

下一步