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

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

创建工作流

您可以使用创建托管工作流Amazon Web Services Management Console,如本主题中所述。为了使工作流创建过程尽可能简单,控制台中的大多数部分都提供了上下文帮助面板。

工作流程有两种步骤:

  • 标称步骤 — 标称步骤是您要应用于传入文件的文件处理步骤。如果您选择多个标称步骤,会按线性顺序处理每个步骤。

  • 异常处理步骤 — 异常处理程序是文件处理步骤,在任何名义步骤失败或导致验证错误时Amazon Transfer Family执行。

创建工作流
  1. 通过 https://console.aws.amazon.com/transfer/ 打开Amazon Transfer Family主机。

  2. 在左侧导航窗格中,选择工作流

  3. 在 “工作流” 页面上,选择 “创建工作流程”。

  4. 在 Cre ation 工作流页面,输入描述。此描述显示在 “工作” 页面上。

  5. 在 “标称步长” 部分中,选择 “添加步长”。添加一个或多个步骤。

    1. 从可用选项中选择步骤类型。有关各种步骤类型的更多信息,请参阅使用预定义的步骤

    2. 选择 “下一步”,然后为该步骤配置参数。

    3. 选择 “下一步”,然后查看该步骤的详细信息。

    4. 选择 “创建步骤” 以添加该步骤并继续。

    5. 根据需要继续添加步骤。工作流中的最大步骤数是 8。

    6. 添加所有必要的标称步骤后,向下滚动到 “异常处理程序 — 可选” 部分,然后选择 “添加步骤”。

      注意

      为了让您实时了解失败情况,我们建议您设置异常处理程序和步骤,以便在工作流程失败时执行。

  6. 要配置异常处理程序,请以与前面所述相同的方式添加步骤。如果文件导致任何步骤引发异常,则会逐一调用您的异常处理程序。

  7. (可选)向下滚动到 “标签” 部分,为您的工作流程添加标签。

  8. 查看配置,然后选择 “创建工作流程”。

    重要

    创建工作流程后,您将无法对其进行编辑,因此请务必仔细查看配置。

在工作流程中使用 PGP 解密

Transfer Family 内置支持 Pretty Good Privacy (PGP) 解密。您可以对通过 SFTP、FTPS 或 FTP 上传到亚马逊Simple Storage Service (Amazon S3) 或Amazon Elastic File System (Amazon EFS) 的文件使用 PGP 解密。

要使用 PGP 解密,必须创建和存储用于解密文件的 PGP 密钥对。然后,您的用户可以使用这些 PGP 密钥对文件进行加密,然后再将文件上传到您的 Transfer Family 服务器。收到加密文件后,您可以在工作流程中解密这些文件。

在工作流程中使用 PGP 解密
  1. 安装 PGP 密钥生成应用程序。有关更多信息,请参阅生成 PGP 密钥

  2. 生成 PGP key pair,并提供密码以保护您的私有密钥。

    重要

    创建用于存储 PGP 密钥的密钥时,必须为 PGP key pair 提供密码短语和私钥。Transfer Family 使用此密码和私钥来解密文件。有关管理 PGP 密钥的详细信息,请参阅管理 PGP 密钥

  3. 导出您的私钥并将其保存到文件中。

  4. 将您的 PGP 密钥存储在Amazon Secrets Manager。有关将 PGP 密钥存储在 Secrets Manager 中的详细信息,请参阅管理 PGP 密钥

  5. 使用您的 PGP key pair 加密文件。如果您使用命令行,请运行以下命令。要使用此命令,请username@example.com替换为用于创建 PGP key pair 的电子邮件地址。将testfile.txt换为要加密的文件的名称。

    gpg -e -r username@example.com --openpgp testfile.txt

    重要

    您必须在此命令中使用该--openpgp标志。默认情况下,gpg生成不符合 OpenPGP RFC4880 标准的加密文件。如果您不使用此标志,Transfer Family 将无法解密您的文件。

  6. 将加密文件上传到您的 Transfer Family 服务器。

  7. 在工作流程中配置解密步骤。有关更多信息,请参阅解密文件

配置和执行工作流程

将 Transfer Family 配置为对上传的文件运行工作流程
  1. 通过 https://console.aws.amazon.com/transfer/ 打开Amazon Transfer Family主机。

  2. 在左侧导航窗格中,选择 Servers (服务器)。

    • 要将工作流添加到现有服务器,请选择要用于工作流的服务器。

    • 或者,创建一个新服务器并将工作流程添加到其中。有关更多信息,请参阅创建服务器

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

    注意

    默认情况下,服务器没有任何关联的工作流程。您可以使用 “其他详细信息” 部分将工作流与所选服务器相关联。

  4. “编辑其他详细信息” 页面的 “托管工作流” 部分,选择要在所有上传时运行的工作流程。

    注意

    如果您没有工作流,请选择创建新的工作流来创建工作流

    1. 选择要使用的工作流程 ID。

    2. 选择执行角色。这是 Transfer Family 在执行工作流程步骤时所扮演的角色。有关更多信息,请参阅工作流的 IAM 策略。选择 Save(保存)。

执行工作流程

要执行工作流程,您可以将文件上传到配置了关联工作流的 Transfer Family 服务器。

注意

如果从服务器上移除工作流并将其替换为新的工作流,则必须等待大约 10 分钟才能执行新工作流。Transfer Family 服务器缓存工作流详细信息,服务器刷新其缓存需要 10 分钟。

# Execute a workflow > sftp bob@s-1234567890abcdef0.server.transfer.us-east-1.amazonaws.com Connected to s-1234567890abcdef0.server.transfer.us-east-1.amazonaws.com. sftp> put doc1.pdf Uploading doc1.pdf to /DOC-EXAMPLE-BUCKET/home/users/bob/doc1.pdf doc1.pdf 100% 5013KB 601.0KB/s 00:08 sftp> exit >

上传文件后,将对您的文件执行定义的操作。例如,如果您的工作流程包含复制步骤,则该文件将被复制到您在该步骤中定义的位置。您可以使用 Amaz CloudWatch on Logs 来跟踪已执行的步骤及其执行状态。

查看工作流详细信息

您可以查看有关先前创建的工作流或工作流程执行的详细信息。要查看这些详细信息,可以使用控制台或Amazon Command Line Interface (Amazon CLI)。

Console
查看工作流详细信息
  1. 通过 https://console.aws.amazon.com/transfer/ 打开Amazon Transfer Family主机。

  2. 在左侧导航窗格中,选择工作流

  3. 在 “工作流” 页面上,选择工作流程。

    将打开工作流详细信息(工作流详细信息)页面。

CLI

要查看工作流详细信息,请使用describe-workflow CLI 命令,如以下示例中所示。将工作流 ID 将工作流 IDw-1234567890abcdef0 替换为您自己的值。有关更多信息,请参阅《Amazon CLI命令参考》中的 d escribe-workflow

# View Workflow details > aws transfer describe-workflow --workflow-id w-1234567890abcdef0 { "Workflow": { "Arn": "arn:aws:transfer:us-east-1:111122223333:workflow/w-1234567890abcdef0", "WorkflowId": "w-1234567890abcdef0", "Name": "Copy file to shared_files", "Steps": [ { "Type": "COPY", "CopyStepDetails": { "Name": "Copy to shared", "FileLocation": { "S3FileLocation": { "Bucket": "DOC-EXAMPLE-BUCKET", "Key": "home/shared_files/" } } } } ], "OnException": {} } }

如果您的工作流程是作为Amazon CloudFormation堆栈的一部分创建的,则可以使用Amazon CloudFormation控制台 (https://console.aws.amazon.com/cloudformation) 管理工作流程。