Amazon Transfer Family 托管工作流程 - Amazon Transfer Family
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Transfer Family 托管工作流程

Amazon Transfer Family 支持文件处理的托管工作流程。借助托管工作流程,您可以在通过 SFTP、FTPS 或 FTP 传输文件后启动工作流程。使用此功能,您可以协调文件处理所需的所有必要步骤,从而安全且经济高效地满足 business-to-business (B2B) 文件交换的合规性要求。此外,您还可以从 end-to-end 审计和可见性中受益。

显示托管工作流如何协助文件处理的流程图。

通过协调文件处理任务,托管工作流可帮助您在下游应用程序使用数据之前对其进行预处理。此类文件处理任务可能包括:

  • 将文件移动到用户特定的文件夹。

  • 作为工作流的一部分对文件进行解密。

  • 标记文件

  • 通过创建 Amazon Lambda 函数并将其附加到工作流程来执行自定义处理。

  • 文件成功传输后发送通知。(有关详细介绍此用例的博客文章,请参阅使用 Amazon Transfer Family 托管工作流程自定义文件传送通知。)

要快速复制和标准化组织中多个业务部门的常见上传后文件处理任务,您可以使用基础设施即代码 (IaC) 来部署工作流程。您可以指定要在完整上传的文件上启动托管工作流程。对于因会话过早断开连接而仅部分上传的文件,您也可以指定不同的托管工作流程。内置的异常处理功能可帮助您对文件处理结果做出快速反应,同时让您能够控制如何处理故障。此外,每个工作流程步骤都会生成详细的日志,您可以对其进行审核以跟踪数据沿袭。

要开始使用 ,请执行以下步骤:

  1. 根据您的要求将工作流程设置为包含预处理操作,例如复制、标记和其他步骤。有关详细信息,请参阅 创建工作流

  2. 配置执行角色,Transfer Family 会使用该角色来运行工作流程。有关详细信息,请参阅 适用于工作流程的 IAM 策略

  3. 将工作流程映射到服务器,以便在文件到达时,实时评估和启动此工作流程中指定的操作。有关详细信息,请参阅 配置和运行工作流程

相关信息

有关托管工作流程入门的更多帮助,请参阅使用工作 Amazon Transfer Family 流程构建云原生文件传输平台博客文章

工作流程的异常处理

如果在工作流程执行过程中出现任何错误,则会执行您指定的异常处理步骤。为工作流指定错误处理步骤的方式与为工作流指定标称步骤的方式相同。例如,假设您已按名义步骤配置了自定义处理来验证传入的文件。如果文件验证失败,则异常处理步骤可以向管理员发送电子邮件。

以下示例工作流程包含两个步骤:

  • 检查上传文件是否为 CSV 格式的标称步骤

  • 一个异常处理步骤,用于在上传的文件不是 CSV 格式且标称步骤失败时发送电子邮件

要启动异常处理步骤,名义步骤中的 Amazon Lambda 函数必须使用响应。Status="FAILURE"有关工作流错误处理的更多信息,请参阅使用自定义文件处理步骤

Amazon Transfer Family 控制台,显示了一个包含一个标称步骤和一个异常处理步骤的工作流程示例。

从 Transfer Family 服务器中移除工作流

如果您已将工作流程与 Transfer Family 服务器关联,而现在想要移除该关联,则可以使用控制台或以编程方式执行此操作。

Console
若要从 Transfer Family 服务器中移除工作流
  1. 打开 Amazon Transfer Family 控制台,网址为 https://console.aws.amazon.com/transfer/

  2. 在左侧导航窗格中选择服务器

  3. 在“服务器 ID”列中选择服务器的标识符。

  4. 在服务器的详细信息页面上,向下滚动到其他详细信息部分,然后选择编辑

  5. 编辑其他详细信息页面中的托管工作流程部分,清除所有设置的信息:

    • 用于完整文件上载的工作流的工作流列表中选择短划线 (-)。

    • 如果尚未清除,从用于部分文件上载的工作流的工作流列表中选择短划线 (-)。

    • 托管工作流程执行角色的角色列表中选择短划线 (-)。

    如果看不到破折号,请向上滚动直到看到它,因为它是每个菜单中的第一个值。

    该部分应该类似以下内容。

    托管工作流程窗格显示所有已清除的参数。
  6. 要保存更改,请向下滚动并选择保存

CLI

您可以使用 update-server(或 UpdateServer for API)调用,并为 OnUploadOnPartialUpload 参数提供空参数。

从中 Amazon CLI,运行以下命令:

aws transfer update-server --server-id your-server-id --workflow-details '{"OnPartialUpload":[],"OnUpload":[]}'

your-server-id 替换为服务器的 ID。例如,如果您的服务器 ID 是 s-01234567890abcdef,则命令如下所示:

aws transfer update-server --server-id s-01234567890abcdef --workflow-details '{"OnPartialUpload":[],"OnUpload":[]}'

托管工作流限制和局限性

限制

以下限制目前适用于 Amazon Transfer Family的上传后处理工作流程。

  • 不支持跨账户和跨区域 Amazon Lambda 功能。但是,您可以跨账户复制,前提是您的 Amazon Identity and Access Management (IAM) 策略配置正确。

  • 对于所有工作流程步骤,工作流程访问的任何 Amazon S3 存储桶都必须与工作流程本身位于同一区域。

  • 对于解密步骤,解密目标必须与区域和后备存储的来源相匹配(例如,如果要解密的文件存储在 Amazon S3 中,则指定的目标也必须在 Amazon S3 中)。

  • 仅支持异步自定义步骤。

  • 自定义步骤超时值是近似值。也就是说,超时所需的时间可能比指定时间稍长。此外,工作流程依赖于 Lambda 函数。因此,如果函数在执行过程中出现延迟,则工作流程不会意识到延迟。

  • 如果您超过了限制限制,Transfer Family 不会将工作流程操作添加到队列中。

  • 不会为大小为 0 的文件启动工作流程。大小大于 0 的文件会启动关联的工作流程。

限制

此外,以下功能限制适用于 Transfer Family 的工作流程:

  • 每个区域、每个账户的工作流程数量限制为 10。

  • 自定义步骤的最大超时时间为 30 分钟。

  • 工作流中的最大步骤数为 8。

  • 每个工作组的最大标签数是 50。

  • 每个工作流程中包含解密步骤的最大并发执行数为 250 个。

  • 在每台 Transfer Family 服务器上,每位用户最多可存储 3 个 PGP 私钥。

  • 数据文件的最大大小为 10 GB。

  • 我们使用容量暴增为 100、再填充率为 1 的令牌桶系统来限制新的执行率。

  • 无论何时从服务器上移除工作流程并用新的工作流程替换它,或者更新服务器配置(这会影响工作流程的执行角色),都必须等待大约 10 分钟才能执行新的工作流程。Transfer Family 服务器会缓存工作流程细节,服务器需要 10 分钟才能刷新其缓存。

    此外,您必须注销所有活动的 SFTP 会话,然后等待 10 分钟重新登录才能看到更改。