在 Azure Logic Apps 中從工作流程連線至 SFTP 檔案伺服器
適用於:Azure Logic Apps (使用量 + 標準)
本操作指南說明如何在 Azure Logic Apps 中從工作流程存取 SSH 檔案傳輸通訊協定 (SFTP) 伺服器。 SFTP 是一個網路通訊協定,可透過任何可靠的資料流提供檔案存取、檔案傳輸和檔案管理,並使用安全殼層 (SSH) 通訊協定。
在使用量邏輯應用程式工作流程中,您可以使用 SFTP-SSH受控連接器,而在標準邏輯應用程式工作流程中,則可以使用 SFTP 內建連接器或 SFTP-SSH 受控連接器。 您可以使用這些連接器作業來建立由 SFTP 伺服器或其他系統中的事件觸發時所執行的自動化工作流程,並執行一些動作來管理 SFTP 伺服器上的檔案。 受控和內建連接器均使用 SSH 通訊協定。
注意
SFTP受控連接器已被取代,因此,此連接器的作業不會再出現於工作流程設計工具中。
例如,您的工作流程可以使用對 SFTP 伺服器上的事件進行監視和回應的 SFTP 觸發程序啟動。 觸發程序會讓輸出可供工作流程中的後續動作使用。 您的工作流程可以執行透過 SFTP 伺服器帳戶取得、建立及管理檔案的 SFTP 動作。 下列清單包含更多範例工作:
- 監視檔案何時新增或變更。
- 取得、建立、複製、重新命名、更新、列出及刪除檔案。
- 建立資料夾。
- 取得檔案內容與中繼資料。
- 將封存檔案解壓縮到資料夾。
下列步驟會使用 Azure 入口網站進行,但若搭配適當的 Azure Logic Apps 延伸模組,則也可以使用下列工具來建立及編輯邏輯應用程式工作流程:
使用量邏輯應用程式工作流程:Visual Studio 或 Visual Studio Code
標準邏輯應用程式工作流程:Visual Studio Code
連接器技術參考
根據邏輯應用程式類型和主機環境,SFTP 連接器有不同的版本。
邏輯應用程式類型 (計劃) | Environment | 連接器版本 |
---|---|---|
耗用 | 多租使用者 Azure Logic Apps | 受管理連接器,顯示在設計工具的 Standard 標籤下。 如需詳細資訊,請參閱下列文件: - SFTP-SSH 受控連接器參考 - Azure Logic Apps 的受控連接器 |
耗用 | 整合服務環境 (ISE) | 受控連接器 (顯示於設計工具中的標準標籤下) 和 ISE 版本 (在設計工具中附有 ISE 標籤,且具有與受控連接器不同的訊息限制)。 如需詳細資訊,請參閱下列文件: - SFTP-SSH 受控連接器參考 - ISE 訊息限制 - Azure Logic Apps 中的受控連接器 |
標準 | 單一租用戶 Azure Logic Apps 和 App Service 環境 v3 (僅限 Windows 方案) | 受控連接器 (顯示於連接器資源庫的 [執行階段]>[共用] 下) 和內建連接器 (顯示於連接器資源庫的 [執行階段]>[應用程式內] 下,並且以服務提供者為基礎)。 - 內建連接器可以使用連接字串直接連線至 SFTP 伺服器並存取 Azure 虛擬網路,而無需內部部署資料閘道。 如需詳細資訊,請參閱下列文件: - SFTP-SSH 受控連接器參考 - SFTP 內建連接器參考 - Azure Logic Apps 的受控連接器 - Azure Logic Apps 中的內建連接器 |
一般限制
使用 SFTP-SSH 受控連接器之前,請參閱 SFTP-SSH 受控連接器參考 - 已知問題和限制。
使用 SFTP 內建連接器之前,請參閱 SFTP 內建連接器參考 - 已知問題和限制。
已知問題
根據預設,傳回陣列的觸發程序已啟用 [分割開啟] 設定。 啟用此設定後,觸發程序會在內部建立個別的工作流程執行個體來處理每個陣列項目,以自動對陣列進行解除批次。 所有工作流程執行個體都會平行執行,以便同時處理陣列項目。
不過,啟用 [分割] 設定時,受控連接器觸發程序會以清單形式傳回所有陣列項目的輸出。 任何參考這些輸出的後續動作,都必須先將這些輸出當做清單來處理。 若要個別處理每個陣列項目,您可以新增額外的動作。 例如,若要逐一查看這些陣列項目,您可以使用 For each 迴圈。 針對只會傳回中繼資料或屬性的觸發程序,請先使用取得陣列項目中繼資料的動作,然後使用動作來取得項目內容。
您必須只針對受控連接器觸發程序套用此方法,而不是內建連接器觸發程序,這些觸發程序會在啟用 [分割] 設定時一次傳回一個陣列項目的輸出。
例如,假設您有名為 [新增或修改檔案時 (僅限屬性)] 的受控連接器觸發程序,會以陣列形式傳回新的或更新檔案的中繼資料或屬性。 若要個別取得每個檔案的中繼資料,您可以使用逐一查看陣列的 For each 迴圈。 在此迴圈中,以指定的順序使用下列受控連接器動作:
取得檔案中繼資料以取得每個檔案的中繼資料。
取得檔案內容動作以取得每個檔案的內容。
區塊化
若要深入了解 SFTP-SSH 受控連接器如何處理超過預設大小限制的大型檔案,請參閱 SFTP-SSH 受控連接器參考 - 區塊化。
必要條件
Azure 帳戶和訂用帳戶。 如果您沒有 Azure 訂用帳戶,請先註冊免費的 Azure 帳戶。
用來存取 SFTP 伺服器的連線和驗證資訊,例如伺服器位址、帳戶認證、SSH 私密金鑰的存取權,以及 SSH 私密金鑰密碼。 如需詳細資訊,請參閱 SFTP-SSH 受控連接器參考 - 驗證和權限。
重要
當您建立連線時,若在 [SSH 私密金鑰] 屬性中輸入了 SSH 私密金鑰,請務必依照相關步驟為此屬性提供完整且正確的值。 否則,無效的金鑰會導致連線失敗。
您要在其中存取 SFTP 帳戶的邏輯應用程式工作流程。 若要使用 SFTP-SSH 觸發程序啟動,必須從空白工作流程開始。 若要使用 SFTP-SSH 動作,請使用其他觸發程序來啟動工作流程,例如週期性觸發程序。
新增 SFTP 觸發程序
在 Azure 入口網站上,於設計工具中開啟您具有空白工作流程的使用量邏輯應用程式。
在設計工具中,依照這些一般步驟新增您想要的 SFTP-SSH 觸發程序。
出現提示時,請提供必要的連線資訊。 完成時,選取建立。
在觸發程序資訊方塊出現後,提供所選觸發程序的必要詳細資料。 如需詳細資訊,請參閱 SFTP-SSH 受控連接器觸發程序參考。
完成後,請儲存您的工作流程。 在設計師工具列上選取儲存。
當您儲存工作流程時,此步驟會自動將您的更新發佈至已部署的邏輯應用程式,在 Azure 中為即時。 只有觸發程序時,您的工作流程只會根據指定的排程檢查 FTP 伺服器。 您必須新增動作以回應觸發程序,並且使用觸發程序輸出執行某些作業。
例如,在 SFTP 伺服器上新增或變更檔案時,名為當新增或修改檔案時的觸發程序會啟動工作流程。 執行後續動作時,您可以新增一個條件來檢查檔案內容是否符合您指定的準則。 如果內容符合條件,請使用名為取得檔案內容的動作來取得檔案內容,然後使用另一個動作將該檔案內容放入 SFTP 伺服器上的不同資料夾中。
新增 SFTP 動作
工作流程必須已使用觸發程序啟動 (可以是您選擇的任何類型),您才能使用 SFTP 動作之前。 例如,您可以使用一般定期內建觸發程序,在特定排程啟動工作流程。
在 Azure 入口網站上,於設計工具中開啟您具有工作流程的使用量邏輯應用程式。
在設計工具中,依照這些一般步驟新增您想要的 SFTP-SSH 動作。
出現提示時,請提供必要的連線資訊。 完成時,選取建立。
在動作資訊方塊出現後,提供所選動作的必要詳細資料。 如需詳細資訊,請參閱 SFTP-SSH 受控連接器動作參考。
完成後,請儲存您的工作流程。 在設計師工具列上選取儲存。
例如,名為使用路徑取得檔案內容的動作會藉由指定檔案路徑,從 SFTP 伺服器上的檔案中取得內容。 您可以使用上一個範例中的觸發程序,以及新增檔案內容必須符合的條件。 如果條件符合,後續動作即可取得內容。
疑難排解
如需詳細資訊,請參閱下列文件: