Skip to content
GitHubXDiscordRSS

Workflow

Learn how to create, update, and manage AWS Transfer Workflows using Alchemy Cloud Control.

The Workflow resource lets you manage AWS Transfer Workflows for automating file transfers and processing within the AWS Transfer Family service.

Create a basic workflow that includes a step to copy files to an S3 bucket:

import AWS from "alchemy/aws/control";
const basicWorkflow = await AWS.Transfer.Workflow("basicWorkflow", {
Steps: [
{
Name: "CopyToS3",
Type: "Copy",
CopyStepDetails: {
Destination: {
Bucket: "my-transfer-bucket",
Key: "transferred-files/${transferId}/"
}
}
}
],
Description: "A simple workflow to copy files to S3 bucket."
});

Configure a workflow with multiple processing steps, including error handling:

const advancedWorkflow = await AWS.Transfer.Workflow("advancedWorkflow", {
Steps: [
{
Name: "CopyToS3",
Type: "Copy",
CopyStepDetails: {
Destination: {
Bucket: "my-transfer-bucket",
Key: "transferred-files/${transferId}/"
}
}
},
{
Name: "NotifyOnSuccess",
Type: "Lambda",
LambdaStepDetails: {
FunctionName: "arn:aws:lambda:us-east-1:123456789012:function:notifyFunction"
}
}
],
OnExceptionSteps: [
{
Name: "NotifyOnFailure",
Type: "Lambda",
LambdaStepDetails: {
FunctionName: "arn:aws:lambda:us-east-1:123456789012:function:errorHandler"
}
}
],
Description: "A workflow that copies files and handles notifications."
});

You can add tags to your workflows for better resource management:

const taggedWorkflow = await AWS.Transfer.Workflow("taggedWorkflow", {
Steps: [
{
Name: "CopyToS3",
Type: "Copy",
CopyStepDetails: {
Destination: {
Bucket: "my-transfer-bucket",
Key: "transferred-files/${transferId}/"
}
}
}
],
Tags: [
{
Key: "Environment",
Value: "Production"
},
{
Key: "Project",
Value: "FileTransfer"
}
]
});

Create a more complex workflow with multiple types of steps including a manual approval step:

const complexWorkflow = await AWS.Transfer.Workflow("complexWorkflow", {
Steps: [
{
Name: "CopyToS3",
Type: "Copy",
CopyStepDetails: {
Destination: {
Bucket: "my-transfer-bucket",
Key: "transferred-files/${transferId}/"
}
}
},
{
Name: "ManualApproval",
Type: "Approval",
ApprovalStepDetails: {
ApprovalMessage: "Please approve the transfer."
}
},
{
Name: "ProcessFiles",
Type: "Lambda",
LambdaStepDetails: {
FunctionName: "arn:aws:lambda:us-east-1:123456789012:function:processFilesFunction"
}
}
],
Description: "A complex workflow with multiple steps including manual approval."
});