透過 Azure Logic Apps 的工作流程,透過 Secure Shell (SSH) 連接 SFTP 伺服器上的檔案

適用於:Azure Logic Apps (使用量 + 標準)

當您的工作流程需要對使用 Secure Shell(SSH)檔案傳輸協定(SFTP)的伺服器執行自動化且安全的檔案管理時,請在Azure Logic Apps您建立的工作流程中使用 SFTP-SSH 或 SFTP 連接器操作。

SFTP 是一種網路協定,提供檔案存取、檔案傳輸及檔案管理,可透過任何可靠的資料流進行。 這樣你就能在 SFTP 伺服器上監控、傳輸和管理檔案,無需撰寫自訂程式碼或管理基礎設施。 否則,手動管理這些檔案操作會耗時、容易出錯且難以擴展。

例如,您的工作流程可以完成以下任務:

  • 監控並處理進來的資料檔案。
  • 建立並管理資料夾與檔案。
  • 取得檔案內容與中繼資料。 解壓檔案。
  • 分發報告。
  • 同步各環境的內容。

本指南說明如何從 Azure Logic Apps 的工作流程存取你的 SFTP 伺服器。

欲了解更多資訊,請參閱:

連接器技術參考

SFTP-SSH 連接器有不同版本,依據邏輯應用程式類型與主機環境而定。

消費工作流程與標準工作流程可使用 SFTP-SSH 受管理的連接器,該連接器與其他資源共享 Azure 多租戶環境中的運算資源。 標準工作流程也可使用執行時原生或 內建的 SFTP 連接器。 兩種連接器版本皆使用 SSH 協定。

邏輯應用程式類型 (計劃) 環境 連接器版本
使用量 多租用戶 Azure Logic Apps 受控連接器 (顯示於 [共用] 篩選下的連接器資源庫中)。

欲了解更多資訊,請參閱 SFTP-SSH 管理連接器參考資料。
Standard 單一租用戶 Azure Logic Apps、App Service 環境 v3 (僅限 Windows 方案) 與混合式 - 管理連接器,顯示在連接器圖庫中的共享篩選器下。

- 內建連接器,其會出現在連接器資源庫中的內建篩選條件下,並且是以服務提供者為基礎。 - 內建連接器可以使用連接字串直接連線至 SFTP 伺服器並存取 Azure 虛擬網路,而無需內部部署資料閘道。

如需詳細資訊,請參閱:

- SFTP-SSH 受控連接器參考
- SFTP 內建連接器參考

不同的SFTP接頭版本提供不同的預設操作。 你可以用 SFTP 專屬的觸發器開始空白工作流程,或根據你的情境選擇不同的觸發器。 例如,你可以用一個 SFTP 觸發器啟動工作流程,該觸發器會監控並回應 SFTP 伺服器上的事件。 觸發器提供輸出,供你在工作流程中後續動作中使用。 各種 SFTP 動作執行不同任務,例如取得、建立及管理您的 SFTP 伺服器上的檔案。

先決條件

  • Azure 帳戶和訂用帳戶。 申請一個免費的 Azure 帳號。

  • 關於您的 SFTP 伺服器連線與認證資訊:

    • 伺服器位址
    • 帳號憑證
    • 存取 SSH 私鑰
    • SSH 私鑰密碼

    重要事項

    當你建立連線並在 SSH 私鑰 參數中輸入你的 SSH 私鑰時,務必遵循 提供完整且正確參數值的步驟。 否則,無效的金鑰會導致連線失敗。

    如需詳細資訊,請參閱 SFTP-SSH 受控連接器參考 - 驗證和權限。

  • 你想存取 SFTP 伺服器的工作流程。

    要用 SFTP 觸發器啟動工作流程,你需要一個空白工作流程。 要使用 SFTP 動作,請使用任何最適合您情境的觸發條件。 本指南中的範例使用了Recurrence觸發器。

一般限制

已知問題

根據預設,接受和傳回陣列的觸發程式通常具有已啟用的 Split on 設定。 觸發程序會透過在內部建立個別的工作流程執行個體來處理每個陣列項目,以自動對陣列進行拆批處理。 所有工作流程執行個體都會平行執行,以便同時處理陣列項目。

啟用 分割開啟 設定後,管理型 連接器觸發程式會將所有陣列項目的輸出傳回為列表。 任何參照這些輸出的後續動作都必須先將這些輸出處理為清單。 若要個別處理每個陣列項目,您可以新增額外的動作。 例如,若要逐一查看這些陣列項目,您可以使用 For each 迴圈。 針對只會傳回中繼資料或屬性的觸發程序,請先使用取得陣列項目中繼資料的動作,然後使用動作來取得項目內容。

您必須只針對受控連接器觸發程序套用此方法,而不是針對內建連接器觸發程序,這些觸發程序會在啟用 Split on 設定的情況下,每次傳回一個陣列項目的輸出。

例如,假設您有名為 [新增或修改檔案時 (僅限屬性)] 的受控連接器觸發程序,會以陣列形式傳回新的或更新檔案的中繼資料或屬性。 若要個別取得每個檔案的中繼資料,您可以使用逐一查看陣列的 For each 迴圈。 在此迴圈中,以指定的順序使用下列受控連接器動作:

  1. 取得檔案中繼資料以取得每個檔案的中繼資料。

  2. 取得檔案內容動作以取得每個檔案的內容。

區塊化

分塊讓操作能處理超出預設大小限制的大型檔案。 欲了解更多關於 SFTP-SSH 管理連接器與分區支援的資訊,請參見 SFTP-SSH 管理連接器參考資料 - 分區。

新增 SFTP 觸發程序

要將 SFTP 觸發器加入你的空白工作流程,請依照相應步驟操作:

新增一個受管理的 SFTP-SSH 觸發器(消耗、標準)

要新增並設定受管理或共享 的 SFTP-SSH 連接器觸發器,請依照以下步驟操作:

  1. 在 Azure 入口網站中,開啟 Logic App 資源。 在設計器中打開空白工作流程。

  2. 在設計器中,依 照一般步驟 加入你想要的 共享SFTP-SSH 觸發器。

    例如,名為 「當檔案被新增或修改 時」的 SFTP-SSH 觸發器,當你的 SFTP 伺服器上新增或變更檔案時,工作流程就會啟動。 你可以新增一個條件動作,檢查檔案內容是否符合指定條件。 如果內容符合條件,使用名為 「取得檔案內容」的 SFTP 動作,然後再用另一個動作將內容儲存到另一個 SFTP 資料夾。

  3. 出現提示時,請提供必要的連線資訊。 當您完成時,請選取 [新建]。

  4. 在設計器中選取觸發程序 (若尚未選取)。 在觸發資訊欄中,提供必要的細節。

    如需詳細資訊,請參閱 SFTP-SSH 受控連接器觸發程序參考。

  5. 當您完成時,請儲存您的工作流程。 在設計工具的工具列上,選取 [儲存]。

  6. 持續透過新增動作來建立你的工作流程。

新增內建 SFTP 觸發器(僅限標準版)

要新增並設定內建 的 SFTP 連接器觸發器,請依照以下步驟操作:

  1. 在 Azure 入口網站中,開啟 Logic App 資源。 在設計器中打開空白工作流程。

  2. 在設計器中,遵循一般步驟,加入所需的內建SFTP觸發器。

    例如,名為 When a File is added or modified 的 SFTP 觸發器會啟動工作流程,當你的 SFTP 伺服器上的檔案被新增或變更時。 你可以新增一個條件動作,檢查檔案內容是否符合指定條件。 如果內容符合條件,使用名為 「取得檔案內容」的 SFTP 動作,然後再用另一個動作將內容儲存到另一個 SFTP 資料夾。

  3. 出現提示時,請提供必要的連線資訊。 當您完成時,請選取 [新建]。

  4. 在設計器中選取觸發程序 (若尚未選取)。 在觸發資訊欄中,提供必要的細節。

    欲了解更多資訊,請參閱 SFTP 內建連接器觸發參考資料。

  5. 當您完成時,請儲存您的工作流程。 在設計工具的工具列上,選取 [儲存]。

  6. 持續透過新增動作來建立你的工作流程。

新增 SFTP 動作

在你加入 SFTP 動作之前,你的工作流程需要一個觸發器,可以是最適合你情境的觸發器。

這個範例使用了通用的 Recurrence 內建觸發器,根據指定的排程執行你的工作流程。 你可以新增一個 SFTP 帳戶

新增一個管理 SFTP-SSH 動作(消耗、標準)

要新增並設定受管理 的SFTP-SSH 連接器動作,請依照以下步驟操作:

  1. 在 Azure 入口網站中,開啟您的邏輯應用程式資源。 在設計工具中,開啟您的工作流程。

  2. 在設計器中,依 照一般步驟 加入你想要的 共享 SFTP-SSH 動作。

    例如,SFTP-SSH 動作「 利用路徑取得檔案內容 」,是透過指定檔案路徑,從 SFTP 伺服器取得檔案內容。 你可以使用 SFTP-SSH 觸發器檢查是否有新檔案或更新檔案,並使用條件動作指定內容必須符合的條件。 如果內容符合條件,請使用 使用路徑取得檔案內容 的操作,然後執行下一步將內容儲存到不同的 SFTP 資料夾。

  3. 出現提示時,請提供必要的連線資訊。 當您完成時,請選取 [新建]。

  4. 在設計器中選取動作 (若尚未選取)。 在行動資訊欄中,提供必要的細節。

    如需詳細資訊,請參閱 SFTP-SSH 受控連接器動作參考。

  5. 當您完成時,請儲存您的工作流程。 在設計工具的工具列上,選取 [儲存]。

新增內建 SFTP 動作(僅限標準版)

要新增並設定內建 的 SFTP 動作,請依照以下步驟操作:

  1. 在 Azure 入口網站中,開啟您的邏輯應用程式資源。 在設計工具中,開啟您的工作流程。

  2. 在設計器中,依 照一般步驟 加入你想要的 內建 SFTP-SSH 動作。

    例如,名為 Get file content 的 SFTP 動作會取得 SFTP 伺服器上的檔案內容。 你可以使用 SFTP 觸發器來檢查是否有新檔案或更新檔案,以及一個條件動作來指定檔案內容必須符合的條件。 如果內容符合條件,請使用 「取得檔案內容 」動作,並執行後續動作將內容儲存到不同的 SFTP 資料夾。

  3. 出現提示時,請提供必要的連線資訊。 當您完成時,請選取 [新建]。

  4. 在設計器中選取動作 (若尚未選取)。 在行動資訊欄中,提供必要的細節。

    如需詳細資訊,請參閱 SFTP 內建連接器動作參考。

  5. 當您完成時,請儲存您的工作流程。 在設計工具的工具列上,選取 [儲存]。

故障排除

欲了解更多資訊,請參閱: