amazon-web-services - AWS Stepfunctions - 在存储桶之间复制文件

标签 amazon-web-services aws-step-functions

我需要将文件从一个存储桶复制到状态机(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/

相关文章:

amazon-web-services - 你如何看待亚马逊 lambda 函数的 console.log 输出

amazon-web-services - 将 EC2 实例从一个区域移动到另一个区域

python - 使用 gunicorn 作为 wsgi 服务器记录对 flask 服务器的请求...到 AWS cloudwatch

javascript - 是否可以从 AWS JavaScript v3 SDK 调用 AWS Step Functions?

amazon-web-services - AWS Step Function - 根据条件停止状态机执行

amazon-web-services - AWS堆栈使用最终快照删除RDS

java - 如何使用 DynamoDBAutoGeneratedKey 给我一个自动生成的 key ?

amazon-web-services - 如何引用 AWS step function 并行任务输出?

amazon-web-services - 工作流没有终止状态

aws-cloudformation - 如何设置api网关集成来调用step函数?