你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

适用于:Azure 逻辑应用(消耗 + 标准)

本文介绍如何使用文件传输协议 (FTP) 连接器从 Azure 逻辑应用中的工作流访问 FTP 服务器。 可以创建由 FTP 服务器或其他系统中的事件触发时运行的自动化工作流,并运行作来管理 FTP 服务器上的文件。

例如,工作流可以使用监视和响应 FTP 服务器上的事件的 FTP 触发器启动。 触发器使输出可用于工作流中的动作。 工作流可以使用以下特定任务运行 FTP 操作,以通过 FTP 服务器帐户创建、发送、接收和管理文件:

  • 添加或更改文件时进行监视。
  • 创建、复制、删除、列出和更新文件。
  • 获取文件元数据和内容。
  • 管理文件夹。

如果不熟悉 Azure 逻辑应用,请参阅以下文档:

连接器技术参考

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

逻辑应用类型(计划) 环境 连接器版本
消耗 多租户 Azure 逻辑应用 托管连接器,该连接器显示在具有 共享 筛选器的连接器库中。 有关详细信息,请参阅:

- FTP 托管连接器参考
- Azure 逻辑应用中的托管连接器
标准 单租户 Azure 逻辑应用和应用服务环境 v3(仅限 Windows 计划) - 托管连接器,该连接器显示在具有 共享 筛选器的连接器库中。
- 内置连接器,与内置筛选器一起显示在连接器库中,基于服务提供商。 内置连接器可以使用连接字符串直接访问 Azure 虚拟网络。 有关详细信息,请参阅:

- FTP 托管连接器参考
- FTP 内置的连接器操作
- Azure 逻辑应用中的托管连接器
- Azure 逻辑应用中的内置连接器

限制

  • 容量和吞吐量

    • 适用于标准型工作流的内置连接器:

      默认情况下,FTP 操作可以读取或写入 200 MB 或更小的文件。 目前,FTP 内置连接器不支持区块。

    • 适用于消耗型和标准型工作流的托管连接器

      默认情况下,FTP 操作可以读取或写入 50 MB 或更小的文件。 若要处理大于 50 MB 的文件,FTP 操作支持消息分块。 “获取文件内容”操作会隐式使用分块处理

  • 在保留上次修改时间戳的情况下,FTP 被管理或 Azure 托管连接器的触发器可能会遇到结果缺失、不完整或延迟的情况。 另一方面,标准型逻辑应用工作流中的 FTP 内置连接器触发器没有此限制。 有关详细信息,请参阅 FTP 连接器 的限制

  • FTP 托管连接器可以创建与 FTP 服务器的有限数量的连接。 此限制基于逻辑应用资源所在的 Azure 区域中的连接容量。 如果此限制在消耗逻辑应用工作流中造成问题,请创建使用 FTP 内置连接器的标准逻辑应用工作流。

  • 内置和托管 FTP 连接器仅支持通过 FTPS 显式 FTP,这是 TLS 的扩展。 两个连接器版本都不支持隐式 FTPS。

Prerequisites

  • Azure 帐户和订阅。 如果没有 Azure 订阅,请注册一个免费 Azure 帐户

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

  • 有关适用于 FTP 托管连接器和内置连接器的更多要求,请参阅 FTP 托管连接器参考 - 要求

已知问题

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

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

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

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

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

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

添加 FTP 触发器

消耗型逻辑应用工作流只能使用 FTP 托管连接器。 但是,标准型逻辑应用工作流可以使用 FTP 托管连接器和 FTP 内置连接器

FTP 托管连接器和内置连接器各自只有一个触发器可用:

  • 托管连接器触发器:当在 FTP 服务器上的文件夹中添加或更改一个或多个文件时,名为“添加或修改文件时(仅属性)”的 FTP 触发器会运行消耗型或标准型逻辑应用工作流。 此触发器仅获取文件属性或元数据,而不获取文件内容。 若要获取文件内容,您的工作流可以使用此触发器并结合其他 FTP 操作。

    有关详细信息,请参阅添加或修改文件时(仅属性)。

  • 内置连接器触发器:当在 FTP 服务器上的文件夹中添加或更改一个或多个文件时,名为“添加或更新文件时”的 FTP 触发器会运行标准型逻辑应用工作流。 此触发器仅获取文件属性或元数据,而不获取文件内容。 若要获取内容,您的工作流可以配合其他 FTP 操作来跟随此触发器。 有关详细信息,请参阅 添加或更新文件时

以下过程使用 Azure 门户。 使用用于消耗或标准逻辑应用的相应 Azure 逻辑应用扩展,可以改用以下工具来创建和编辑逻辑应用工作流:

本部分演示适用于以下 FTP 连接器触发器的步骤:

添加内置连接器触发器

若要向标准工作流添加内置连接器触发器,请执行以下步骤:

  1. Azure 门户中,打开你的逻辑应用资源。

  2. 在资源边栏菜单中的“ 工作流”下,选择“ 工作流”,然后选择在设计器中打开的空工作流。

  3. 在设计器上,选择“添加触发器”

  4. 按照常规步骤添加 FTP 触发器 添加或更新文件时(预览)

  5. 提供连接信息。 完成后,选择“ 新建”。

    屏幕截图显示了工作流设计器中的“创建连接”页,其中包含 FTP 内置触发器信息。

    注意

    默认情况下,此连接器将以文本格式传输文件。 若要以二进制格式传输文件,例如,在使用了编码的情况下,请选择二进制传输选项。

  6. 触发器信息窗格出现后,在 “文件夹路径 ”框中,指定要监视的文件夹的路径。

    屏幕截图显示了包含 FTP 内置触发器的工作流设计器,以及包含要监视的特定文件夹路径的“文件夹路径”。

  7. 完成后,保存工作流。

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

添加托管连接器触发器

将托管连接器触发器添加到“消耗”或“标准”工作流:

  1. Azure 门户中,找到并打开逻辑应用资源。

  2. 根据您使用的是“消费型”还是“标准型”逻辑应用:

    • 消耗:在资源边栏菜单中,在 “开发工具”下,选择设计器以打开工作流。

    • 标准:在“资源边栏”菜单上的 “工作流”下,选择“ 工作流”。 选择空白工作流,将在设计器中打开。

  3. 在工作流设计器上,选择 “添加触发器”。

  4. 按照常规步骤添加 FTP 触发器 添加或修改文件时(仅限属性)

  5. 提供连接信息。 完成后,选择“ 新建”。

    屏幕截图显示了包含 FTP 托管连接器触发器信息的工作流设计器。

    注意

    默认情况下,此连接器将以文本格式传输文件。 若要以二进制格式传输文件,例如,在使用了编码的情况下,请选择二进制传输选项。

  6. 当触发器信息窗格打开时,找到要监视新文件或已编辑文件的文件夹。

    1. 在“文件夹”框中,选择文件夹图标以查看文件夹目录。

    2. 选择右箭头(>)。 浏览到所需文件夹,然后选择该文件夹。

    屏幕截图显示了具有 FTP 托管连接器触发器的工作流设计器,其中包含用于选择文件夹的选项。

    所选文件夹将出现在“文件夹”框中

    屏幕截图显示了包含 FTP 托管连接器触发器的工作流设计器,以及包含要监视的特定文件夹路径的“文件夹路径”。

  7. 完成后,保存工作流。

保存工作流时,Azure 会将更新发布到已部署的和实时逻辑应用。 如果只使用触发器,工作流将仅根据指定的计划检查 FTP 服务器。 您必须添加一个操作以响应触发器,并利用触发器的输出完成某项工作,如后面几部分所述。

添加 FTP 操作

消耗型逻辑应用工作流只能使用 FTP 托管连接器。 标准逻辑应用工作流可以使用 FTP 托管连接器和 FTP 内置连接器。 每个版本都有多个操作。 例如,托管连接器和内置连接器版本都有其自己的操作来获取文件元数据和获取文件内容。

  • 内置连接器操作:这些操作仅在标准型逻辑应用工作流中运行。
  • 托管连接器操作:这些操作在消耗型或标准型逻辑应用工作流中运行。

以下过程使用 Azure 门户。 使用相应的 Azure Logic Apps 扩展,在 Consumption 或 Standard 层级中,您可以改用以下工具来创建和编辑逻辑应用工作流:

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

根据工作流使用的是内置连接器还是托管连接器,添加和使用FTP操作的步骤有所不同。

  • 内置触发器工作流:描述将内置操作添加到以内置触发器开头的工作流的步骤。

    如果使用 FTP 内置触发器,并且希望新添加或更新文件中的内容,则可以使用 For each 循环循环访问触发器返回的数组。 然后只需使用“获取文件内容”操作即可,而无需执行任何其他中间操作。 有关 FTP 内置连接器操作的详细信息,请参阅 FTP 内置连接器操作

  • 托管触发器工作流:描述将托管操作添加到以托管触发器开头的工作流中的步骤。

    如果使用 FTP 托管连接器触发器,并且想要新添加或修改的文件中的内容,则可以使用 For each 循环循环访问触发器返回的数组。 然后,在使用“获取文件内容”操作之前,必须使用中间操作,例如名为“获取文件元数据”的 FTP 操作

具有内置触发器的工作流

若要将操作添加到由内置连接器触发器开始的标准工作流中,

  1. Azure 门户中,找到并打开逻辑应用资源。

  2. 在资源边栏菜单中的 “工作流”下,选择“ 工作流”。 使用 FTP 内置触发器选择工作流。

  3. 在设计器中,按照以下 常规步骤 将名为 “获取文件内容” 的 FTP作添加到工作流。

  4. 如果需要,提供连接信息。 完成后,选择“ 新建”。

    屏幕截图显示了工作流设计器,其中带有包含连接信息的 FTP 内置动作。

    注意

    默认情况下,此连接器将以文本格式传输文件。 若要以二进制格式传输文件,例如,在使用了编码的情况下,请选择二进制传输选项。

  5. 在打开的操作信息窗格中,选择“文件路径”以显示输入选项。 选择闪电图标以打开动态内容列表。

    现在可以选择来自前面触发器的输出。

  6. 在动态内容列表中的“添加或更新文件时”下,选择“文件路径”

    屏幕截图显示了工作流设计器和“获取文件内容”操作,并且打开了动态内容列表,突出显示了“文件路径”。

    “文件路径”属性现在引用“文件路径”触发器输出

    屏幕截图显示了工作流设计器中已完成的“获取文件内容”动作。

  7. 添加工作流需要的任何其他操作。

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

具有托管触发器的工作流

在以托管连接器触发器开头的“消耗”或“标准”工作流中添加操作:

  1. Azure 门户中,找到并打开逻辑应用资源。

  2. 根据你的逻辑应用类型是“消耗”还是“标准”:

    • 消耗:在资源边栏菜单中,在 “开发工具”下,选择设计器以打开工作流。

    • 标准:在“资源边栏”菜单上的 “工作流”下,选择“ 工作流”。 选择以 FTP 托管连接器触发器开头的工作流。 在工作流边栏菜单中,选择设计器以打开工作流。

  3. 在设计器中,按照以下 常规步骤,将名为 获取文件元数据 的 FTP操作添加到您的工作流中。

  4. 如果需要,提供连接信息。 完成后,选择“ 新建”。

    屏幕截图显示了具有 FTP 托管连接器动作的工作流设计器以及连接信息。

    注意

    默认情况下,此连接器将以文本格式传输文件。 若要以二进制格式传输文件,例如,在使用了编码的情况下,请选择二进制传输选项。

  5. 在打开的操作信息窗格中,选择 文件 以显示输入选项。 选择闪电图标以打开动态内容列表。

    现在可以选择来自前面触发器的输出。

  6. 在动态内容列表中,在“添加或修改文件时(仅属性)”下,选择“文件 Id 列表”

    屏幕截图显示了工作流设计器,其中“获取文件元数据”动作动态内容列表已打开,并突出显示了文件 ID 列表。

    “文件”属性现在引用“文件 Id 列表”触发器输出

    屏幕截图显示了工作流设计器,其中包含“获取文件元数据”操作和设置为“文件 ID 列表”的“文件”。

  7. 在设计器中,按照以下 常规步骤 将名为 “获取文件内容” 的 FTP作添加到工作流。

  8. 在出现的操作信息窗格中,选择 文件 以显示输入选项。 选择闪电图标以打开动态内容列表。

    现在可以选择来自前面触发器或操作的输出。

  9. 在动态内容列表中的“获取文件元数据”下,选择“Id”

    屏幕截图显示了工作流设计器和“获取文件内容”操作,动态内容列表已打开,“ID”已突出显示。

    “文件”属性现在引用“Id”操作输出

    屏幕截图显示工作流设计器和“获取文件内容”操作,“文件”设置为“ID”。

  10. 添加工作流需要的任何其他操作。

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

测试工作流

若要检查工作流是否返回了所需的内容,请添加另一个操作,该操作会向你发送添加的或更新的文件内容。 此示例使用名为“发送电子邮件”的 Office 365 Outlook 操作。

具有内置触发器和操作的工作流

若要将 Office 365 Outlook 操作添加到标准工作流,请执行以下步骤:

  1. 在设计器的 “获取文件内容”操作下,按照以下 常规步骤将名为“发送电子邮件”的操作添加到工作流中。

    如果你有 Outlook.com 帐户,请添加 Outlook.com 发送电子邮件 动作。

  2. 如果需要,登录电子邮件帐户。

  3. 在操作信息窗格中,提供所需的值,以及您希望测试的任何其他参数或属性。

    例如,可以包含来自“获取文件内容”操作的“文件内容”输出。 若要查找此输出,请执行以下步骤:

    1. “获取文件内容 ”作中,在 正文 中选择以显示输入选项。 选择闪电图标以打开动态内容列表。 在此列表中,在 “获取文件内容”下,选择“ 文件内容”。

      屏幕截图显示了工作流设计器,其中“发送电子邮件”操作的动态内容列表已打开,并选择了“获取文件内容”。

    2. 在动态内容列表中的“获取文件内容”下,选择“文件内容”

      Body 属性现在包含文件内容操作的输出。

      屏幕截图显示了工作流设计器,其中包含“发送电子邮件”动作和“文件内容”动作输出。

  4. 保存工作流。

若要测试和触发工作流,请执行以下步骤:

  1. 在设计器工具栏上,选择“ 运行>运行”。

  2. 将文件添加到工作流监视的 FTP 文件夹中。

具有托管触发器和操作的工作流

若要将 Office 365 Outlook操作添加到“Consumption”或“Standard”工作流,请执行以下操作:

  1. 在设计器的 “获取文件内容” 操作下,按照以下 常规步骤 将名为 “发送电子邮件” 的操作添加到工作流中。

    如果你有 Outlook.com 帐户,请添加 Outlook.com 发送电子邮件 操作。

  2. 如果需要,登录电子邮件帐户。

  3. 在操作信息框中,提供所需值,并包含要测试的任何其他参数或属性。

    例如,可以包含来自“获取文件内容”操作的“文件内容”输出。 若要查找此输出,请执行以下步骤:

    1. “获取文件内容 ”作中,在 “正文 ”框中选择以显示输入选项。 选择闪电图标以打开动态内容列表。 在此列表中,在 “获取文件内容”下,选择“ 文件内容”。

      屏幕截图显示工作流设计器和“发送电子邮件”操作,动态内容列表已打开,“文件内容”已突出显示。

    2. 在动态内容列表中的“获取文件内容”下,选择“文件内容”

      Body 属性现在包含文件内容操作输出。

      屏幕截图显示工作流设计器,并发送电子邮件操作,使用文件内容作为托管操作输出。

  4. 保存逻辑应用工作流。

若要测试和触发工作流,请执行以下步骤:

  1. 在设计器工具栏上,选择“ 运行>运行”。

  2. 将文件添加到工作流监视的 FTP 文件夹中。