CreateWorkflow - AWS Transfer Family

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CreateWorkflow

可讓您建立工作流程,其中包含檔案傳輸完成後工作流程叫用的指定步驟和步驟詳細資訊。建立工作流程之後,您可以在 CreateServerUpdateServer 操作中指定 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" } ] }

請求參數

如需所有動作的一般參數資訊,請參閱《Common Parameters》。

請求接受採用 JSON 格式的下列資料。

Description

工作流程的文字描述。

類型:字串

長度限制:長度下限為 0。長度上限為 256。

模式:[\w- ]*

必要:否

OnExceptionSteps

指定工作流程執行期間遇到錯誤時要採取的步驟 (動作)。

注意

對於自訂步驟,Lambda 函數需要傳送FAILURE至回呼 API 以啟動例外狀況步驟。此外,如果 Lambda 未在逾時SUCCESS之前傳送,則會執行例外步驟。

類型:WorkflowStep 物件陣列

陣列成員:項目數下限為 0。最多 8 個項目數。

必要:否

Steps

指定在指定工作流程中步驟的詳細資訊。

TYPE指定要針對此步驟採取下列哪些動作。

  • COPY - 將檔案複製到另一個位置。

  • CUSTOM-使用 AWS Lambda 函數目標執行自訂步驟。

  • DECRYPT - 解密上傳前已加密的檔案。

  • DELETE - 刪除檔案。

  • TAG - 在檔案中新增標籤。

注意

目前,僅 S3 支援複製和標記。

對於檔案位置,您可以指定 Amazon S3 儲存貯體和金鑰,或指定 Amazon EFS 檔案系統識別碼和路徑。

類型:WorkflowStep 物件陣列

陣列成員:項目數下限為 0。最多 8 個項目數。

必要:是

Tags

鍵/值對,可用來分組和搜尋工作流程。標籤是基於任何用途連接到工作流程的中繼資料。

類型:Tag 物件陣列

陣列成員:項目數下限為 1。項目數上限為 50。

必要:否

回應語法

{ "WorkflowId": "string" }

回應元素

如果動作成功,則服務傳回 HTTP 200 回應。

服務會傳回下列 JSON 格式的資料。

WorkflowId

工作流程的唯一識別碼。

類型:字串

長度約束:固定長度為 19。

模式:w-([a-z0-9]{17})

錯誤

如需所有動作常見錯誤的資訊,請參閱常見錯誤

AccessDeniedException

您沒有足夠存取權可執行此動作。

HTTP 狀態碼:400

InternalServiceError

當在 AWS Transfer Family 服務中發生錯誤時,拋出此異常。

HTTP 狀態碼:500

InvalidRequestException

當客戶端提交格式錯誤的請求時,拋出此異常。

HTTP 狀態碼:400

ResourceExistsException

請求的資源不存在,或存在於為命令指定的區域以外的區域中。

HTTP 狀態碼:400

ServiceUnavailableException

申請失敗,因為 AWS Transfer 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" }

另請參閱

如需在其中一個特定語言 AWS SDK 中使用此 API 的詳細資訊,請參閱下列內容: