使用Terraform从最近的快照创建RDS实例

时间:2019-05-14 10:32:55

标签: amazon-web-services amazon-rds terraform terraform-provider-aws

在Terraform项目中,我从最近的快照(最后一个快照的第五个)创建RDS实例,我的脚本在这里:

data "aws_db_snapshot" "db_snapshot" {
  db_instance_identifier = "production-db-intern"
  db_snapshot_arn = "arn:aws:rds:eu-central-1:123114111478:snapshot:rds:production-db-intern-2019-05-09-16-10"
}

resource "aws_db_instance" "db_intern" {
  skip_final_snapshot = true
  identifier = "db-intern"
  auto_minor_version_upgrade = false
  instance_class = "db.m4.4xlarge"
  deletion_protection = false
  vpc_security_group_ids = ["${var.security_group_id}"]
  db_subnet_group_name = "${var.subnet_group_name}"

  timeouts {
    create = "3h"
    delete = "2h"
  }

  lifecycle {
    prevent_destroy = false
  }

  snapshot_identifier = "${data.aws_db_snapshot.db_snapshot.id}"
}

我做了一个“地形计划”, 我遇到下一个错误:

Error: data.aws_db_snapshot.db_snapshot: "db_snapshot_arn": this field cannot be set

1 个答案:

答案 0 :(得分:0)

db_snapshot_arn不是aws_db_snapshot数据资源的有效字段。您是说db_snapshot_identifier吗?

此外,您不能将ARN传递给此数据资源,而可以传递快照ID,例如snap-1234567890abcdef0

此外,数据资源只希望设置db_instance_identifierdb_snapshot_identifier。有关详细信息,请参见documentation on the snapshot CLI。 Terraform利用CLI检索这些资源。