

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

# 创建工作流
<a name="create-workflow"></a>

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

工作流程有两种步骤：
+ **标称步骤** — 标称步骤是要应用于传入文件的文件处理步骤。如果您选择多个标称步骤，每个步骤将按线性序列处理。
+ **异常处理步骤** — 异常处理程序是文件处理步骤，可在任何标称步骤失败或导致验证错误时 AWS Transfer Family 执行。

**创建工作流**

1. 打开 AWS Transfer Family 控制台，网址为[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)。

1. 在左侧导航窗格中，选择**工作流**。

1. 在 **工作流**页面，选择 **创建工作流**。

1. 在**创建工作流**页面，输入描述。此描述显示在“**工作流程**”页面上。

1. 在**标称步骤**部分中，选择**添加步骤**。添加一个或多个步骤。

   1. 从可用选项中选择步骤类型。有关各种作业状态的更多信息，请参阅 [使用预定义的步骤](nominal-steps-workflow.md)。

   1. 选择“**下一步**”，然后为该步骤配置参数。

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

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

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

   1. 添加完所有必需的标称步骤后，向下滚动到“**异常处理程序 - *可选***”部分，然后选择“**添加步骤**”。
**注意**  
为便于您实时了解故障，我们建议您设置异常处理程序和步骤，以便在工作流程失败时执行。

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

1. （可选）向下滚动到“**标签**”部分，然后为您的工作流程添加标签。

1. 检查配置并选择**创建工作流**。
**重要**  
创建工作流程后，您将无法对其进行编辑，因此请务必仔细查看配置。

## 配置和运行工作流程
<a name="configure-workflow"></a>

在运行工作流程之前，您需要将其与 Transfer Family 服务器相关联。

**将 Transfer Family 配置为对上传的文件运行工作流程**

1. 打开 AWS Transfer Family 控制台，网址为[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)。

1. 在左侧导航窗格中，选择**服务器**。
   + 要将工作流程添加到现有服务器，请选择要用于工作流程的服务器。
   + 或者，创建一个新服务器并向其添加工作流程。有关更多信息，请参阅 [配置 SFTP、FTPS 或 FTP 服务器端点](tf-server-endpoint.md)。

1. 在服务器的详细信息页面上，向下滚动到**其他详细信息**部分，然后选择**编辑**。
**注意**  
 默认情况下，服务器没有任何关联的工作流程。您可以使用“**其他详细信息**”部分将工作流与所选服务器相关联。

1. 在**编辑其他详细信息**页面的**托管工作流程**部分，选择要在所有上传中运行的工作流程。
**注意**  
如果您还没有工作流，请选择“**创建新的工作流程**”来创建工作流程。

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

   1. 选择执行角色。这是 Transfer Family 在执行工作流程步骤时所扮演的角色。有关更多信息，请参阅 [适用于工作流程的 IAM 策略](workflow-execution-role.md)。选择 **Save**。  
![\[托管工作流程屏幕，显示工作流程和执行角色的值。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/workflows-addtoserver.png)

**注意**  
如果您不想再将工作流程与服务器关联，则可以移除关联。有关更多信息，请参阅 [从 Transfer Family 服务器中移除工作流](transfer-workflows.md#remove-workflow-association)。

**要执行工作流程**

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

**注意**  
无论何时从服务器上移除工作流程并用新的工作流程替换它，或者更新服务器配置（这会影响工作流程的执行角色），都必须等待大约 10 分钟才能执行新的工作流程。Transfer Family 服务器会缓存工作流程细节，服务器需要 10 分钟才能刷新其缓存。  
此外，您必须注销所有活动的 SFTP 会话，然后等待 10 分钟重新登录才能看到更改。

**Example**  

```
# 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 /amzn-s3-demo-bucket/home/users/bob/doc1.pdf
doc1.pdf                                                                    100% 5013KB 601.0KB/s   00:08    
sftp> exit
>
```

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

## 查看工作流详细信息
<a name="view-details-workflow"></a>

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

------
#### [ Console ]

**查看工作流详细信息**

1. 打开 AWS Transfer Family 控制台，网址为[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)。

1. 在左侧导航窗格中，选择**工作流**。

1. 在“**工作流程**”页面上，选择一个工作流程。

   工作流程详细信息页面随即打开。  
![\[Transfer Family 工作流程的工作流程详细信息屏幕，显示描述、步骤、异常处理程序和动态执行情况。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/workflows-overview.png)

------
#### [ CLI ]

要查看工作流详细信息，请使用 `describe-workflow` CLI 命令，如以下示例所示。将工作流程 ID `w-1234567890abcdef0` 替换为您自己的值。有关更多信息，请参阅 *AWS CLI 命令引用*中的 [ describe-workflow](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transfer/describe-workflow.html)。

```
# 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": "amzn-s3-demo-bucket",
                        "Key": "home/shared_files/"
                    }
                }
                }
            }
        ],
        "OnException": {}
    }
}
```

------

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

![\[作为 AWS CloudFormation 堆栈一部分的工作流程的 “工作流程详细信息” 屏幕，显示您管理此工作流程的消息 CloudFormation。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/workflows-cloudformation-link.png)
