我需要将文件从一个存储桶复制到状态机(AWS Step Functions)内的另一个存储桶。
我正在考虑创建一个 lambda 来执行此操作...
我的问题是,还有另一种方法可以做到这一点,而无需创建特定的 lambda 来执行此操作吗?有没有办法使用我的 Cloud Formation 中的特定资源来运行此“s3 cp”命令?
最佳答案
您绝对可以在没有 Lambda 函数的情况下完成此操作。您可以利用 Step Functions 中的 S3 集成。这是一个最小的例子:
{
"Comment": "Copy S3 files",
"StartAt": "Sample input",
"States": {
"Sample input": {
"Type": "Pass",
"Next": "Map",
"Result": [
{
"Bucket": "target-bucket",
"CopySource": "source-bucket/source-object-path",
"Key": "target-object-path"
}
]
},
"Map": {
"Type": "Map",
"ItemProcessor": {
"ProcessorConfig": {
"Mode": "INLINE"
},
"StartAt": "CopyObject",
"States": {
"CopyObject": {
"Type": "Task",
"End": true,
"Parameters": {
"Bucket.$": "$.Bucket",
"CopySource.$": "$.CopySource",
"Key.$": "$.Key"
},
"Resource": "arn:aws:states:::aws-sdk:s3:copyObject"
}
}
},
"End": true
}
}
}
使用 map 状态,您甚至可以通过传递列表来复制多个文件!
关于amazon-web-services - AWS Stepfunctions - 在存储桶之间复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68655394/