将 EBS 快照从一个区域复制到另一个区域
Copy EBS snapshot from one region to another region
我想将我的 EBS 快照从一个区域复制到另一个区域。但是在过滤快照 ID 时,它将 return id 命名为 1411205605 但我希望它 return 类似于: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"
}
}
运行 terraform 应用时的输出是:
aws_ebs_snapshot_copy.example_copy: InvalidParameterValue: Value
(1411205605) for parameter snapshotId is invalid. Expected:
'snap-...'. status code: 400, request id:
bd577049-8b4e-45bc-8415-59e22b4d26d5
我不知道我哪里弄错了。我该如何解决这个问题?
这是因为"Data Source: aws_ebs_snapshot_ids"returns一个属性"ids"设置为EBS 快照 ID 列表,按创建时间降序排列。
现在在您的情况下可以安全地假设 "ids" 包含单个快照 ID,因为您使用名称作为过滤器。因此,如下所示更改代码以检索该 ID。
source_snapshot_id = "${data.aws_ebs_snapshot_ids.ebs_volumes.ids.0}"
此处使用的“0”是从id列表中检索第一个元素。在你的情况下,它是唯一的元素。
我想将我的 EBS 快照从一个区域复制到另一个区域。但是在过滤快照 ID 时,它将 return id 命名为 1411205605 但我希望它 return 类似于: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"
}
}
运行 terraform 应用时的输出是:
aws_ebs_snapshot_copy.example_copy: InvalidParameterValue: Value (1411205605) for parameter snapshotId is invalid. Expected: 'snap-...'. status code: 400, request id: bd577049-8b4e-45bc-8415-59e22b4d26d5
我不知道我哪里弄错了。我该如何解决这个问题?
这是因为"Data Source: aws_ebs_snapshot_ids"returns一个属性"ids"设置为EBS 快照 ID 列表,按创建时间降序排列。
现在在您的情况下可以安全地假设 "ids" 包含单个快照 ID,因为您使用名称作为过滤器。因此,如下所示更改代码以检索该 ID。
source_snapshot_id = "${data.aws_ebs_snapshot_ids.ebs_volumes.ids.0}"
此处使用的“0”是从id列表中检索第一个元素。在你的情况下,它是唯一的元素。