Terraform在每个Terraform应用上创建一个新的EBS快照

Terraform在每个Terraform应用上创建一个新的EBS快照,terraform,continuous-deployment,Terraform,Continuous Deployment,我正在尝试使用Terraform作为我的持续部署管道的一部分。在执行任何其他管道任务之前,我使用Terraform创建生产EBS卷的快照(用于备份目的) 我可以让terraform拍摄快照,但问题是terraform不会在每次运行时创建新的快照。相反,它检测到已有快照,但不执行任何操作 比如说 Terraform应用执行1-已成功获取快照。 Terraform应用执行2-未拍摄快照 下面提供了我用于Terraform的代码 provider "aws" { access_key = "...

我正在尝试使用Terraform作为我的持续部署管道的一部分。在执行任何其他管道任务之前,我使用Terraform创建生产EBS卷的快照(用于备份目的)

我可以让terraform拍摄快照,但问题是terraform不会在每次运行时创建新的快照。相反,它检测到已有快照,但不执行任何操作

比如说

Terraform应用执行1-已成功获取快照。 Terraform应用执行2-未拍摄快照

下面提供了我用于Terraform的代码

provider "aws" {
  access_key = "..."
  secret_key = "..."
  region     = "..."
}

resource "aws_ebs_snapshot" "example_snapshot" {

  volume_id = "vol-xyz"

  tags = {
    Name = "continuous_deployment_backup"
  }

}

有人知道我如何强制Terraform在每次运行时创建一个新的EBS快照吗?

为了避免在连续部署管道上工作时执行任何重复和手动任务,可以选择根据自动化Amazon EBS快照的计划运行CloudWatch事件规则。 您可以在AWS的CloudWatch文档中查看它的建议


您还可以使用自动创建、保留和删除备份Amazon EBS卷所需的快照,例如始终使用terraform。

感谢您的提示,按计划备份是一个好主意,实际上我已经使用Amazon DLM每天备份我的生产服务器。但是,当我运行连续部署管道时,我希望在管道执行之前立即进行备份,因此,如果管道因任何原因失败,我可以将服务器恢复到部署操作之前的确切状态,而不是按计划上次备份的状态。关于如何做到这一点,有什么想法吗?我理解,因此您可以在管道执行中使用AWS CLI,让我们看看。对于感兴趣的任何人,您都可以使用AWS CLI,特别是create snapshot命令,在管道每次运行时拍摄快照。