从 Azure 逻辑应用中的工作流连接到 SFTP 文件服务器

适用范围:Azure 逻辑应用(消耗型 + 标准型)

本操作指南介绍了如何从 Azure 逻辑应用中的工作流访问 SSH 文件传输协议 (SFTP) 服务器。 SFTP 是一种网络协议,可通过任何可靠的数据流提供文件访问、文件传输和文件管理,并使用安全外壳 (SSH) 协议。

在消耗逻辑应用工作流中,可以使用 SFTP-SSH 托管连接器,而在标准逻辑应用工作流中,则可以使用 SFTP 内置连接器或 SFTP-SSH 托管连接器。 你可以使用这些连接器操作来创建自动化工作流,这些工作流在被 SFTP 服务器或其他系统中的事件触发后运行,通过运行操作来管理 SFTP 服务器上的文件。 托管连接器和内置连接器都使用 SSH 协议。

备注

SFTP 托管连接器已被弃用,所以此连接器的操作不再显示在工作流设计器中。

例如,工作流可以通过一个监视和响应 SFTP 服务器上的事件的 SFTP 触发器来启动。 触发器使输出可用于工作流中的后续操作。 工作流可以运行 SFTP 操作,这些操作通过 SFTP 服务器帐户获取、创建和管理文件。 以下列表包含更多示例任务:

  • 添加或更改文件时进行监视。
  • 获取、创建、复制、重命名、更新、列出和删除文件。
  • 创建文件夹。
  • 获取文件内容和元数据。
  • 将存档提取到文件夹。

以下步骤使用 Azure 门户,但利用适当的 Azure 逻辑应用扩展,也可以使用以下工具来创建和编辑逻辑应用工作流:

连接器技术参考

SFTP 连接器具有不同的版本,具体取决于逻辑应用类型和主机环境

逻辑应用类型(计划) 环境 连接器版本
消耗 多租户 Azure 逻辑应用 托管连接器,该连接器显示在连接器库中“运行时”>“共享”下。 有关详细信息,请查看以下文档:

- SFTP-SSH 托管连接器参考
- Azure 逻辑应用中的托管连接器
标准 单租户 Azure 逻辑应用和应用服务环境 v3(仅限 Windows 计划) 托管连接器显示在连接器库中的“运行时”>“共享”下,而内置连接器显示在连接器库中的“运行时”>“应用内”下,并且是基于服务提供商的。 内置连接器可以直接连接到 SFTP 服务器,并通过使用连接字符串访问 Azure 虚拟网络,而无需本地数据网关。 有关详细信息,请查看以下文档:

- SFTP-SSH 托管连接器参考
- SFTP 内置连接器参考

- Azure 逻辑应用中的托管连接器
- Azure 逻辑应用中的内置连接器

一般限制

已知问题

默认情况下,返回数组的触发器具有已启用的“拆分”设置。 启用此设置后,触发器会在内部创建单独的工作流实例以处理每个数组项,从而自动对数组解除批处理。 所有工作流实例都并行运行,以便同时处理数组项。

但是,启用“拆分”设置后,托管连接器触发器会以列表形式返回所有数组项的输出。 引用这些输出的任何后续操作必须首先将这些输出作为列表进行处理。 若要单独处理每个数组项,可以添加额外操作。 例如,若要循环访问这些数组项,可以使用 For each 循环。 对于仅返回元数据或属性的触发器,请先使用获取数组项元数据的操作,然后使用操作获取项内容。

必须仅对托管连接器触发器应用此方法,而不对内置连接器触发器应用,这些触发器在启用“拆分”设置后会逐个返回数组项的输出。

例如,假设你具有名为“添加或修改文件时(仅属性)”的托管连接器触发器,它以数组形式返回新文件或更新的文件的元数据或属性。 若要单独获取每个文件的元数据,可以使用循环访问数组 For each 循环。 在此循环中,按指定顺序使用以下托管连接器操作:

  1. “获取文件元数据”,用于获取每个文件的元数据。

  2. “获取文件内容”操作,用于获取每个文件的内容。

分块

若要详细了解 SFTP-SSH 托管连接器如何处理超过默认大小限制的大文件,请参阅 SFTP-SSH 托管连接器参考 - 分块

先决条件

  • Azure 帐户和订阅。 如果没有 Azure 订阅,请注册试用版 Azure 订阅

  • 用于访问 SFTP 服务器的连接和身份验证信息,例如服务器地址、帐户凭据、对 SSH 私钥的访问以及 SSH 私钥密码。 有关详细信息,请参阅 SFTP-SSH 托管连接器参考 - 身份验证和权限

    重要

    创建连接并在“SSH 私钥”属性中输入 SSH 私钥时,请务必按照步骤为该属性提供完整且正确的值。 否则,无效的密钥会导致连接失败。

  • 要在其中访问 SFTP 帐户的逻辑应用工作流。 若要从 SFTP-SSH 触发器开始操作,必须从空白工作流开始。 若要使用 SFTP-SSH 操作,请使用另一个触发器(例如“定期”触发器)启动工作流。

添加 SFTP 触发器

  1. Azure 门户中,在设计器中打开使用空白工作流的消耗型逻辑应用。

  2. 在设计器中,按照这些常规步骤添加所需的 SFTP-SSH 触发器

  3. 如果出现提示,请提供必要的连接信息。 完成操作后,选择“创建”。

  4. 触发器信息框出现后,请为所选触发器提供必要的详细信息。 有关详细信息,请参阅 SFTP-SSH 托管连接器触发器参考

  5. 完成后,保存工作流。 在设计器工具栏上选择“保存”。

保存工作流时,此步骤会自动将更新发布到 Azure 中实时部署的逻辑应用。 如果只使用触发器,工作流将仅根据指定的计划检查 FTP 服务器。 必须添加操作以响应触发器并对触发器输出执行某些操作。

例如,名为“添加或修改文件时”的触发器会在 SFTP 服务器上添加或更改了文件时启动工作流。 执行后续操作时,你可以添加一个条件来检查文件内容是否满足指定的标准。 如果内容满足条件,则使用名为“获取文件内容”的操作获取文件内容,然后使用另一操作将该文件内容放入 SFTP 服务器上的另一文件夹中。

添加 SFTP 操作

使用 SFTP 操作之前,工作流必须已使用触发器启动,该触发器可以是所选的任何类型。 例如,可以使用通用“定期”内置触发器按特定计划启动工作流。

  1. Azure 门户中,在设计器中打开使用工作流的消耗型逻辑应用。

  2. 在设计器中,按照这些常规步骤添加所需的 SFTP-SSH 操作

  3. 如果出现提示,请提供必要的连接信息。 完成操作后,选择“创建”。

  4. 操作信息框出现后,请为所选操作提供必要的详细信息。 有关详细信息,请参阅 SFTP-SSH 托管连接器操作参考

  5. 完成后,保存工作流。 在设计器工具栏上选择“保存”。

例如,名为“使用路径获取文件内容”的操作通过指定文件路径从 SFTP 服务器上的文件中获取内容。 你可以使用上一示例中的触发器,以及使用文件内容必须满足的条件。 如果条件为 true,则后续操作可以获取内容。


疑难解答

有关详细信息,请参阅以下文档:

后续步骤