本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CreateWorkflow
允许您使用文件传输完成后工作流调用的指定步骤和步骤详细信息创建工作流。创建工作流后,您可以通过在 CreateServer
和 UpdateServer
操作中指定 workflow-details
字段将创建的工作流与任何传输服务器相关联。
请求语法
{
"Description": "string
",
"OnExceptionSteps": [
{
"CopyStepDetails": {
"DestinationFileLocation": {
"EfsFileLocation": {
"FileSystemId": "string
",
"Path": "string
"
},
"S3FileLocation": {
"Bucket": "string
",
"Key": "string
"
}
},
"Name": "string
",
"OverwriteExisting": "string
",
"SourceFileLocation": "string
"
},
"CustomStepDetails": {
"Name": "string
",
"SourceFileLocation": "string
",
"Target": "string
",
"TimeoutSeconds": number
},
"DecryptStepDetails": {
"DestinationFileLocation": {
"EfsFileLocation": {
"FileSystemId": "string
",
"Path": "string
"
},
"S3FileLocation": {
"Bucket": "string
",
"Key": "string
"
}
},
"Name": "string
",
"OverwriteExisting": "string
",
"SourceFileLocation": "string
",
"Type": "string
"
},
"DeleteStepDetails": {
"Name": "string
",
"SourceFileLocation": "string
"
},
"TagStepDetails": {
"Name": "string
",
"SourceFileLocation": "string
",
"Tags": [
{
"Key": "string
",
"Value": "string
"
}
]
},
"Type": "string
"
}
],
"Steps": [
{
"CopyStepDetails": {
"DestinationFileLocation": {
"EfsFileLocation": {
"FileSystemId": "string
",
"Path": "string
"
},
"S3FileLocation": {
"Bucket": "string
",
"Key": "string
"
}
},
"Name": "string
",
"OverwriteExisting": "string
",
"SourceFileLocation": "string
"
},
"CustomStepDetails": {
"Name": "string
",
"SourceFileLocation": "string
",
"Target": "string
",
"TimeoutSeconds": number
},
"DecryptStepDetails": {
"DestinationFileLocation": {
"EfsFileLocation": {
"FileSystemId": "string
",
"Path": "string
"
},
"S3FileLocation": {
"Bucket": "string
",
"Key": "string
"
}
},
"Name": "string
",
"OverwriteExisting": "string
",
"SourceFileLocation": "string
",
"Type": "string
"
},
"DeleteStepDetails": {
"Name": "string
",
"SourceFileLocation": "string
"
},
"TagStepDetails": {
"Name": "string
",
"SourceFileLocation": "string
",
"Tags": [
{
"Key": "string
",
"Value": "string
"
}
]
},
"Type": "string
"
}
],
"Tags": [
{
"Key": "string
",
"Value": "string
"
}
]
}
请求参数
有关所有操作的通用参数的信息,请参阅常用参数。
请求接受采用 JSON 格式的以下数据。
- Description
-
工作流的文本描述。
类型:字符串
长度约束:最小长度为 0。最大长度为 256。
模式:
[\w- ]*
必需:否
- OnExceptionSteps
-
指定在工作流执行期间遇到错误时要采取的步骤(措施)。
注意
对于自定义步骤,Lambda 函数需要发送
FAILURE
,回调 API 以启动异常步骤。此外,如果 Lambda 在超时之前没有发送SUCCESS
,则会执行异常步骤。类型:WorkflowStep 对象数组
数组成员:最少 0 个物品。最多 8 项。
必需:否
- Steps
-
指定所指定工作流中步骤的详细信息。
TYPE
指定要对此步骤采取以下哪些操作。-
COPY
– 将文件复制到另一个位置。 -
CUSTOM
-使用 Amazon Lambda 函数目标执行自定义步骤。 -
DECRYPT
– 解密上传前加密的文件。 -
DELETE
– 删除文件。 -
TAG
– 向文件添加标签。
注意
目前,仅 S3 支持复制和标记。
对于文件位置,您可指定 Amazon S3 存储桶和密钥,或者指定 Amazon EFS 文件系统 ID 和路径。
类型:WorkflowStep 对象数组
数组成员:最少 0 个物品。最多 8 项。
必需:是
-
- Tags
-
可用于分组和搜索工作流的键值对。标签是出于任何目的附加到工作流的元数据。
类型:Tag 对象数组
数组成员:最少 1 个物品。最多 50 项。
必需:否
响应语法
{
"WorkflowId": "string"
}
响应元素
如果此操作成功,则该服务将会发送回 HTTP 200 响应。
服务以 JSON 格式返回以下数据。
- WorkflowId
-
工作流的唯一标识符。
类型:字符串
长度限制:固定长度为 19。
模式:
w-([a-z0-9]{17})
错误
有关所有操作的常见错误信息,请参阅 常见错误。
- AccessDeniedException
-
您没有足够的访问权限,无法执行该操作。
HTTP 状态代码:400
- InternalServiceError
-
当 Amazon Transfer Family 服务中发生错误时,会引发此异常。
HTTP 状态代码:500
- InvalidRequestException
-
当客户端提交格式错误的请求时,会引发此异常。
HTTP 状态代码:400
- ResourceExistsException
-
请求的资源不存在,或者存在于为命令指定的区域以外的区域。
HTTP 状态代码:400
- ServiceUnavailableException
-
请求失败,因为 Trans Amazon fer Family 服务不可用。
HTTP 状态代码:500
- ThrottlingException
-
由于请求限制而导致请求被拒绝。
HTTP 状态代码:400
示例
示例
您可以将工作流步骤信息保存到文本文件中,然后使用该文件创建工作流,如下例所示。以下示例假设您已将工作流步骤保存到
example-file.json
(在运行该命令的同一文件夹中),并且您希望在弗吉尼亚北部(us-east-1)区域中创建工作流。
aws transfer create-workflow --description "example workflow from a file" --steps file://example-file.json --region us-east-1
// Example file containing workflow steps [ { "Type": "TAG", "TagStepDetails": { "Name": "TagStep", "Tags": [ { "Key": "name", "Value": "testTag" } ] } }, { "Type": "COPY", "CopyStepDetails": { "Name": "CopyStep", "DestinationFileLocation": { "S3FileLocation": { "Bucket": "DOC-EXAMPLE-BUCKET", "Key": "DOC-EXAMPLE-KEY/" } }, "OverwriteExisting": "TRUE", "SourceFileLocation": "${original.file}" } }, { "Type": "DELETE", "DeleteStepDetails":{ "Name":"DeleteStep", "SourceFileLocation": "${original.file}" } } ]
示例
CreateWorkflow
调用返回新工作流程的 ID。
示例响应
{
"WorkflowId": "w-1234abcd5678efghi"
}
另请参阅
有关在特定语言的 Amazon SDK 中使用此 API 的更多信息,请参阅以下内容: