從 BizTalk Server 2020 和更新版本開始,您可以在 BizTalk Server 與 Azure Blob 記憶體之間傳送和接收訊息。
Azure Blob 記憶體是雲端Microsoft物件記憶體解決方案,其已針對儲存大量非結構化數據進行優化。 如需詳細資訊,請參閱 什麼是 Azure Blob 記憶體?。
先決條件
使用容器建立 Azure Blob 記憶體帳戶 。
將訊息傳送至 Azure Blob 記憶體
在 BizTalk Server 管理控制台中,以滑鼠右鍵按兩下 [ 傳送埠>] [新增>靜態單向傳送埠]。
建立傳送埠 提供一些指引。
輸入名稱。 在 [傳輸] 中,將 [類型 ] 設定為 [AzureBlobStorage],然後選取 [ 設定]。
設定 Azure 帳戶 屬性。
小提示
在登入 Azure 訂用帳戶之後,配接器設定視窗可以自動填入您的 Azure 資源。 這可讓設定更容易。 登入 Azure 訂用帳戶是可選的。
- 登入:登入您的 Azure 帳戶。
- 訂閱:選取具有 Azure 儲存帳戶的訂閱。
- 資源群組:選取具有 Azure 記憶體帳戶的資源群組。
設定 一般 屬性:
儲存驗證:選取驗證方法:
- 默認會選取共用存取簽章。 您必須在 [ 連接字串 ] 字段中輸入共用存取簽章連接字串。
- 如果您使用 存取金鑰,則會在 [ 帳戶 ] 下拉式清單中填入記憶體帳戶的集合。 選取記憶體帳戶之後, [連接字串] 欄位會自動填入主要存取金鑰,也稱為 key1。
下列連結是很好的資源,可協助您決定哪一個驗證方法適合您的案例:
Blob 容器名稱:從下拉式清單中選取 Blob 容器的名稱。 輸入 連接字串 之後,會自動填入清單。
Blob 名稱:輸入配接器要使用的 Blob 名稱。 巨集可以在 Blob 名稱中使用。 如需可用的巨集,請參閱 在檔名中使用巨集。
Blob 元數據的命名空間:輸入命名空間作為篩選條件。 如果屬性的命名空間符合此字段,訊息的內容屬性就會寫入 Blob 元數據。
完成後,您的屬性看起來如下所示:
設定進階屬性:
- Blob 類型:輸入要使用的 Blob 類型 。 如需詳細資訊,請參閱 Blob 類型。
-
寫入模式:當指定的 Blob 名稱 已經存在時,請使用此設定來指定配接器行為。
- 新建:配接器一律會嘗試建立新的 Blob。 如果已有相同名稱的 Blob 存在,BizTalk 訊息就會暫停。
- 覆寫:如果 Blob 名稱已經存在,配接器就會覆寫。 也會覆寫元數據。
- 附加:如果 Blob 已經存在,配接器會將訊息本文附加至現有的 Blob。 元數據不會變更。
選取 [確定] 以儲存您的變更。
測試傳送埠
您可以使用簡單的檔案接收埠和位置,將訊息傳送至 Azure Blob 記憶體。
使用檔案配接器,建立名為 FileReceivePort 的接收埠。 在您的接收位置內,將 [接收] 資料夾 設定為
C:\Temp\In\\,並將檔案遮罩設定為\*.xml。在您的 Azure Blob 儲存端點屬性中,將【篩選】設定為
BTS.ReceivePortName == FileReceivePort。將下列內容貼到文字編輯器中,並將檔案儲存為 AzureBlobStorageMessage.xml。 此檔案是您範例訊息。
<Data> <DataID>DataID_0</DataID> <DataDetails>DataDetails_0</DataDetails> </Data>啟動檔案接收位置和 Azure Blob 儲存體傳送埠。
將 AzureBlobStorageMessage.xml 範例訊息複製到接收資料夾中,例如
C:\Temp\In\。 傳送埠會將 XML 檔案傳送至 Azure Blob 記憶體。 查看您的 Azure 記憶體容器,並檢視新建立或更新的檔案來確認。
從 Azure Blob 記憶體接收訊息
在 BizTalk Server 管理控制台中,以滑鼠右鍵按兩下 [ 接收埠>新增> ]One-Way 接收埠。
建立接收埠 提供一些指引。
輸入名稱,然後選取 [ 接收位置]。
選取 [ 新增],然後為接收位置 命名 。 在 [傳輸] 中,從 [類型] 下拉式清單中選取 [AzureBlobStorage]。 選取[],然後設定[]。
設定 Azure 帳戶 屬性:
小提示
類似於傳送適配器,這是可選的。
- 登入:登入您的 Azure 帳戶。
- 訂閱:選取具有 Azure 儲存體帳戶的訂閱。
- 資源群組:選取具有 Azure 記憶體帳戶的資源群組。
設定 一般 屬性:
儲存驗證:選取驗證方法:
- 默認會選取共用存取簽章。 您必須在 [ 連接字串 ] 字段中輸入共用存取簽章連接字串。
- 如果您使用 存取金鑰,則會在 [ 帳戶 ] 下拉式清單中填入記憶體帳戶的集合。 選取記憶體帳戶之後, [連接字串] 欄位會自動填入主要存取金鑰,也稱為 key1。
下列連結是很好的資源,可協助您決定適合您的案例:
Blob 容器名稱:從下拉式清單中選取 Blob 容器的名稱。 輸入 連接字串 之後,會自動填入清單。
Blob 名稱前置詞:輸入適用的前置詞。 例如,如果「order/」用於Blob 名稱前綴,則接收位置只會接收「order」資料夾中的檔案。
Blob 元數據的命名空間:輸入配接器的命名空間,以從自定義 Blob 元數據建立內容屬性。
提升元數據屬性:選擇是否提升自定義的 BLOB 元數據。
備註
根據預設,所有標準 Blob 屬性,例如 Blob Uri、Name 和 BlobType,都會設定為具有
http://schemas.microsoft.com/BizTalk/Adapter/AzureStorage-properties命名空間之 BizTalk 訊息的內容屬性。完成後,您的屬性看起來如下所示:
設定 進階 屬性:
- 輪詢間隔:輸入輪詢間隔。
- 每個批次的訊息上限:輸入提交至 BizTalk 時配接器批次的訊息數目。
- 平行下載:輸入允許平行下載的 Blob 數目上限。
- 錯誤臨界值:輸入錯誤臨界值。 當接收位置達到這個錯誤數目時,就會停用接收位置。
選取 [確定] 以儲存您的變更。
測試您的接收設定
您可以使用簡單的檔案傳送埠,從 Azure Blob 記憶體接收訊息。
- 使用檔案配接器建立傳送埠。 在傳送埠屬性中,將 [目的地] 資料夾 設定為
C:\Temp\Out\\,並將和 [檔案名] 設定為%MessageID%.xml。 - 在 [檔案] 傳送埠屬性中,將 [篩選 ] 設定為
BTS.ReceivePortName == BlobReceivePort。 - 建立名為 BlobReceivePort 的接收埠,並建立 Azure Blob 記憶體接收位置。 啟動它。
- 將檔案上傳至 Azure 入口網站中的 Blob 容器。 請注意您在配接器中設定的相符前置詞。 在目的地資料夾中尋找訊息 (c:\temp\out)。
這很重要
Azure Blob 儲存體接收配接器會在提交至 BizTalk MessageBox 資料庫後刪除該 Blob。
Azure Blob 記憶體配接器的高可用性
Azure Blob 記憶體接收配接器支援高可用性。 您可以在相同的 Azure Blob 記憶體配接器接收處理程式中新增多個主機實例,以同時從相同的 Blob 容器接收。 Blob 租用機制用於鎖定,以避免相同的 Blob 被多個主機實例接收。 因此:
- Azure Blob 儲存適配器不會接收其他程序租用的 Blob。
- Azure Blob 儲存配接器所接收的 Blob 在租用狀態時無法進行更新。
如需 Azure Blob 租賃的詳細資訊,請參閱 Blob 的悲觀並行控制。
Azure Blob 儲存體傳送適配器,就像大多數的傳送適配器一樣,透過在同一個傳送主機中擁有多個主機實例,提供傳送主機高可用性。