将EBS快照从一个区域复制到另一个区域



我想将EBS快照从一个区域复制到另一个区域。但是在过滤快照id时,它将返回名为1411205605的id,但我希望它返回类似于:snap-…..的内容。

这是我的代码:

data "aws_ebs_snapshot_ids" "ebs_volumes" {
filter {
name   = "tag:Name"
values = ["EBS1_snapshot"]
}
filter {
name   = "volume-size"
values = ["2"]
}
}
output "ebs_snapshot_ids"{
value = ["${data.aws_ebs_snapshot_ids.ebs_volumes.ids}"]
}

resource "aws_ebs_snapshot_copy" "example_copy" {
source_snapshot_id = "${data.aws_ebs_snapshot_ids.ebs_volumes.id}"
source_region      = "ap-southeast-1"
tags {
Name = "aaa_copy_snap"
}
}

运行地形应用程序时的输出为:

aws_ebs_snapshot_copy.example_copy:InvalidParameterValue:Value参数snapshotId的(1411205605(无效。预期:"啪…"。状态代码:400,请求id:bd577049-8b4e-45bc-8415-59e2b4d26d5

我不知道我在哪里犯了错误。我该如何解决此问题?

这是因为"数据源:aws_ebs_snapshot_ids">返回一个属性"ids">,该属性设置为ebs快照ID列表,按创建时间降序排列。

现在,在您的情况下,可以放心地假设"ids">包含一个快照id,因为您使用名称作为筛选器。因此,如下所示更改代码以检索该id。

source_snapshot_id = "${data.aws_ebs_snapshot_ids.ebs_volumes.ids.0}"

这里使用的"0"是从id列表中检索第一个元素。在你的情况下,这是唯一的元素。

相关内容

最新更新