【问题标题】:How to delete files in S3 using CodePipeline如何使用 CodePipeline 在 S3 中删除文件
【发布时间】:2019-12-02 22:32:57
【问题描述】:

我创建了一个 CodePipeline,它从 CodeCommit 存储库获取输入(文件)并将文件部署到 S3 存储桶。当我删除 CodeCommit 存储库中的文件时,管道不会删除相应 S3 存储桶中的文件。简而言之,我希望我的 S3 存储桶与 CodeCommit 存储库同步。我怎样才能做到这一点?

我的管道没有 CodeBuild 阶段。

AWS-CodeCommit --> CodePipeline --> 部署到跨账户-S3

【问题讨论】:

    标签: amazon-web-services amazon-s3 delete-file aws-codepipeline aws-codecommit


    【解决方案1】:

    遗憾的是,目前没有预定义的 S3 部署操作配置来从管道本身中删除 S3 对象。

    Docs

    目前的解决方法是在管道上添加另一个操作,以使用 CodeBuild 在部署对象之前/之后执行对象清理。

    【讨论】:

    • 所以我想这意味着添加一个构建阶段,它只删除 s3 存储桶部署位置中的所有文件。我注意到 CodePipeline 替换了所有现有对象,删除的对象(仍在存储桶中)具有较旧的时间戳。所以Build阶段可以是aws s3 rm s3://my-bucket/deploy-path/deployment --recursive,然后deployment会把当前所有的对象都写在那里。
    【解决方案2】:

    您可以添加以下代码构建阶段:

          - aws s3 sync . s3://[bucket_name] --delete
    

    不知道如何让它跨帐户工作。

    【讨论】:

      猜你喜欢
      • 2019-07-28
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 2014-10-05
      • 2013-11-16
      • 2013-12-11
      • 2014-03-19
      • 2013-01-12
      相关资源
      最近更新 更多