You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关联AWS Transfer Family SFTP服务器的工作流执行第一步后停止的原因

问题诊断与修复方案

1. COPY步骤目标路径缺失文件名

工作流的COPY步骤中,DestinationFileLocation的Key仅指定了目录${transfer:userName}/processed,未包含原始文件名。Transfer Family需要明确目标文件的完整路径,否则无法完成复制操作,导致COPY步骤失败,后续DELETE步骤因工作流中断而不执行。

修复方式:修改COPY步骤的Key为带文件名的路径:

"Key": "${transfer:userName}/processed/${transfer:fileName}"

2. 角色策略变量不匹配Transfer Family内置规范

当前策略使用的${SourceBucketName}、${DestinationBucketName}等变量并非Transfer Family工作流支持的内置变量,无法被正确解析,导致权限校验失败,COPY和DELETE步骤因无权限执行而中断。

Transfer Family工作流支持的相关内置变量包括:

  • ${transfer:bucketName}:源文件所在S3桶名
  • ${transfer:objectKey}:源文件的S3对象键
  • ${transfer:userName}:SFTP用户名
  • ${transfer:fileName}:源文件名

修复后的策略示例:

{  
    "Version": "2012-10-17",  
    "Statement": [  
        {  
            "Sid": "CopyRead",  
            "Effect": "Allow",  
            "Action": ["s3:GetObject"],  
            "Resource": "arn:aws:s3:::${transfer:bucketName}/${transfer:objectKey}"  
        },  
        {  
            "Sid": "CopyWrite",  
            "Effect": "Allow",  
            "Action": ["s3:PutObject"],  
            "Resource": "arn:aws:s3:::${transfer:userName}/processed/${transfer:fileName}"  
        },  
        {  
            "Sid": "CopyList",  
            "Effect": "Allow",  
            "Action": "s3:ListBucket",  
            "Resource": [  
                "arn:aws:s3:::${transfer:bucketName}",  
                "arn:aws:s3:::${transfer:userName}"  
            ]  
        },  
        {  
            "Sid": "Delete",  
            "Effect": "Allow",  
            "Action": ["s3:DeleteObject"],  
            "Resource": "arn:aws:s3:::${transfer:bucketName}/${transfer:objectKey}"  
        },  
        {  
            "Sid": "Custom",  
            "Effect": "Allow",  
            "Action": ["lambda:InvokeFunction"],  
            "Resource": ["arn:aws:lambda:eu-west-3:502802710160:function:test-function"]  
        }  
    ]  
}

3. COPY步骤目标桶配置与实际不符

用户说明文件存储在bucket_name_same_as_user_name/unprocessed,但COPY步骤的目标桶硬编码为test-bucket,与实际存储桶不一致,会导致复制路径错误或权限校验失败。

修复方式:将目标桶改为与用户名一致的桶,使用变量替代硬编码值:

"Bucket": "${transfer:userName}"

额外检查项

  • 查看Lambda执行日志:确认Lambda函数返回成功响应(如{"statusCode": 200}),若返回错误状态码,会导致工作流终止后续步骤。
  • 查看工作流执行日志:在AWS Transfer Family控制台查看COPY步骤的具体失败原因(权限不足、路径错误等),定位问题细节。

内容的提问来源于stack exchange,提问作者cuzureau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 23:55:18