在 Azure Logic Apps 中編碼和解碼一般檔案
適用於:Azure Logic Apps (使用量 + 標準)
將 XML 內容傳送至企業對企業 (B2B) 案例中的商務夥伴之前,建議您先編碼內容。 如果您收到編碼的 XML 內容,您必須先解碼該內容。 當您在 Azure Logic Apps 中建置邏輯應用程式工作流程時,您可以使用一般檔案內建連接器動作以及適用於編碼和解碼的一般檔案結構描述,來編碼和解碼一般檔案。 您可以在多租用戶取用邏輯應用程式工作流程和單一租用戶標準邏輯應用程式工作流程中使用一般檔案動作。
雖然沒有可用的一般檔案觸發程序,但您可以使用任何觸發程序或動作,將來源 XML 內容饋送至工作流程。 例如,您可以使用內建連接器觸發程序、適用於 Azure Logic Apps 的受控或 Azure 裝載連接器觸發程序,甚或是另一個應用程式。
本文說明如何將一般檔案編碼和解碼動作新增至您的工作流程中。
- 將一般檔案編碼或解碼動作新增至您的工作流程中。
- 選取您要使用的結構描述。
如需詳細資訊,請參閱下列文件:
必要條件
Azure 帳戶和訂用帳戶。 如果您還沒有訂閱,則請 註冊免費的 Azure 帳戶。
您想要在其中使用一般檔案動作的邏輯應用程式工作流程 (空白或存在)。
如果您有空白工作流程,請使用您想要啟動工作流程的任何觸發程式。 此範例使用要求觸發程序。
邏輯應用程式資源和工作流程。 一般檔案作業沒有任何可用的觸發程序,因此您的工作流程必須至少包含觸發程序。 如需詳細資訊,請參閱下列文件:
適用於編碼或解碼 XML 內容的一般檔案結構描述。 如需詳細資訊,請參閱在 Azure Logic Apps 中新增要搭配工作流程使用的結構描述。
無論您是使用取用或標準邏輯應用程式工作流程,都需要企業整合帳戶資源。 當您想要定義及儲存用於企業整合和 B2B 工作流程的成本時,通常需要此資源。
重要
若要共同作業,您的企業整合帳戶和邏輯應用程式資源必須存在於相同的 Azure 訂用帳戶和 Azure 區域中。
如果您正在處理取用邏輯應用程式工作流程,則邏輯應用程式資源需要企業整合帳戶的連結。
如果您正在處理標準邏輯應用程式工作流程,您可以根據下列情節,將邏輯應用程式資源連結至企業整合帳戶、將結構描述直接上傳至邏輯應用程式資源,或兩者:
如果您的企業整合帳戶已經含有需要或想要使用的成品,您可以將該企業整合帳戶連結至您想要在其中使用成品的多個標準邏輯應用程式資源。 如此一來,您就不需要將結構描述上傳至每一個個別邏輯應用程式。 如需詳細資訊,請參閱將邏輯應用程式資源連結至企業整合帳戶。
[一般檔案] 內建連接器可讓您選取您先前上傳至邏輯應用程式資源或連結整合帳戶的結構描述,但無法同時選取兩者。 然後,您可以在相同邏輯應用程式資源的所有子工作流程中使用此成品。
因此,如果您沒有或不需要企業整合帳戶,則可以使用上傳選項。 否則,您可以使用連結選項。 不管怎樣,您都可以在相同邏輯應用程式資源的所有子工作流程中使用這些成品。
安裝或使用可傳送 HTTP 要求以測試解決方案的工具,例如:
- Visual Studio Code 搭配 Visual Studio Marketplace 的延伸模組
- PowerShell Invoke-RestMethod
- Microsoft Edge - 網路主控台工具
- Bruno
- curl
警告
如果您有敏感資料,例如認證、秘密、存取權杖、API 金鑰和其他類似資訊,請務必使用一項工具,以必要的安全性功能保護資料、離線或本機運作、不將資料同步處理至雲端,而且不需要您登入線上帳戶。 如此一來,您就可以降低向公眾公開敏感資料的風險。
限制
您想要譯碼的 XML 內容必須以 UTF-8 格式編碼。
在您的一般檔案結構描述中,請確定所包含的 XML 群組未將
max count
屬性的過多數目設定為大於 1 的值。 避免在max count
屬性大於 1 的另一個 XML 群組內,將max count
屬性值大於 1 的 XML 群組巢狀化。當 Azure Logic Apps 剖析一般檔案結構描述時,且每當結構描述允許下一個片段的選擇時,Azure Logic Apps 會針對該片段產生符號和預測。 如果結構描述允許太多這類建構,例如超過 100,000 個,則結構描述擴充就會變得太大,並會耗用太多資源和時間。
上傳結構描述
建立結構描述之後,您現在必須根據下列案例上傳結構描述:
如果您正在處理取用邏輯應用程式工作流程,請將結構描述新增至您的企業整合帳戶。
如果您正在處理標準邏輯應用程式工作流程,可以將結構描述新增至企業整合帳戶,或將結構描述新增至邏輯應用程式資源。
新增一般檔案編碼動作
在 Azure 入口網站的設計工具中,開啟邏輯應用程式工作流程 (如果尚未開啟)。
如果工作流程沒有觸發程序或工作流程所需要的任何其他動作,請先新增這些作業。 一般檔案作業沒有任何可用的觸發程序。
此範例會繼續使用名為收到 HTTP 要求時的要求觸發程序。
在工作流程設計工具上,在您要新增一般檔案動作的步驟下,選取 [新增步驟]。
在 [選擇作業] 搜尋方塊底下,選取 [內建]。 在搜尋方塊中,輸入「一般檔案」。
從 [動作] 清單中,選取名為 [一般檔案編碼] 的動作。
在動作的 Content 屬性中,遵循下列步驟以提供觸發程序或先前要編碼動作的輸出:
在 [內容] 方塊內按一下,動態內容清單隨即顯示。
從動態內容清單中,選取您要編碼的一般檔案內容。
在此範例中,從動態內容清單的收到 HTTP 要求時下方,選取 [本文] 權杖,其代表觸發程序的本文內容輸出。
注意
如果本文屬性未出現在動態內容清單中,請選取 [收到 HTTP 要求時]區段標籤旁的 [查看更多]。 您也可以將要解碼的內容直接輸入在 [內容] 方塊中。
從 [結構描述名稱] 清單中,選取您的結構描述。
注意
如果結構描述清單是空的,您的邏輯應用程式資源不會連結至您的整合帳戶,或您的整合帳戶不包含任何結構描述檔案。
完成時,您的動作會如下所示:
若要將其他選擇性參數新增至動作,請從 [新增參數] 清單中選取這些參數。
參數 數值 Description 空白節點產生模式 ForcedDisabled 或 HonorSchemaNodeProperty 或 ForcedEnabled 用於透過一般檔案編碼產生空白節點的模式。
對於 BizTalk,一般檔案結構描述具有可控制空白節點產生的屬性。 您可以遵循一般檔案結構描述的空白節點產生屬性行為,也可以使用此設定來產生 Azure Logic Apps 或省略空白節點。 如需詳細資訊,請參閱空白元素的標記。XML 正規化 是 或 否 用於啟用或停用一般檔案編碼中 XML 正規化的設定。 如需詳細資訊,請參閱 XmlTextReader.Normalization。 儲存您的工作流程您 在設計師工具列上選取儲存。
新增一般檔案解碼動作
在 Azure 入口網站的設計工具中,開啟邏輯應用程式工作流程 (如果尚未開啟)。
如果工作流程沒有觸發程序或工作流程所需要的任何其他動作,請先新增這些作業。 一般檔案作業沒有任何可用的觸發程序。
此範例會繼續使用名為收到 HTTP 要求時的要求觸發程序。
在工作流程設計工具上,在您要新增一般檔案動作的步驟下,選取 [新增步驟]。
在 [選擇作業] 搜尋方塊底下,選取 [內建]。 在搜尋方塊中,輸入「一般檔案」。
從 [動作] 清單中,選取名為 [一般檔案解碼] 的動作。
在動作的 Content 屬性中,遵循下列步驟以提供觸發程序或先前要解碼動作的輸出:
在 [內容] 方塊內按一下,動態內容清單隨即顯示。
從動態內容清單中,選取您要編碼的一般檔案內容。
在此範例中,從動態內容清單的收到 HTTP 要求時下方,選取 [本文] 權杖,其代表觸發程序的本文內容輸出。
注意
如果本文屬性未出現在動態內容清單中,請選取 [收到 HTTP 要求時]區段標籤旁的 [查看更多]。 您也可以將要解碼的內容直接輸入在 [內容] 方塊中。
從 [結構描述名稱] 清單中,選取您的結構描述。
注意
如果結構描述清單是空的,您的邏輯應用程式資源不會連結至您的整合帳戶,或您的整合帳戶不包含任何結構描述檔案。
完成時,您的動作會如下所示:
儲存您的工作流程您 在設計師工具列上選取儲存。
您現在已完成設定一般檔案解碼動作。 在實際的應用程式中,建議您將解碼的資料儲存在 SalesForce 之類的企業營運 (LOB) 應用程式中。 或者,您也可以將該解碼資料傳送給合作對象。 若要將解碼動作的輸出傳送至 Salesforce 或您的合作對象,請使用 Azure Logic Apps 中提供的其他連接器:
測試工作流程
若要觸發工作流程,請遵循下列步驟:
在 [要求] 觸發程序中,尋找 HTTP POST URL 屬性,然後複製該 URL。
開啟 HTTP 要求工具並使用其指示,將 HTTP 要求傳送至複製的 URL,包括要求觸發程序預期的方法。
這個範例會使用
POST
方法搭配 URL。在要求本文中,包括您想要編碼或解碼的 XML 內容。
工作流程執行完成之後,請移至工作流程的執行歷程記錄,並檢查「一般檔案」動作的輸入和輸出。