簡體   English   中英

將 EBS 快照從一個區域復制到另一個區域

[英]Copy EBS snapshot from one region to another region

我想將我的 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"
  }

}

運行 terraform apply 時的輸出是:

aws_ebs_snapshot_copy.example_copy:InvalidParameterValue:參數 snapshotId 的值 (1411205605) 無效。 預期:'snap-...'。 狀態代碼:400,請求 ID:bd577049-8b4e-45bc-8415-59e22b4d26d5

我不知道我哪里出錯了。 我該如何解決這個問題?

這是因為“數據源:aws_ebs_snapshot_ids”返回一個屬性“ids” ,該屬性設置為EBS快照ID列表,按創建時間降序排列。

現在,在您的情況下,可以安全地假設“ids”包含單個快照 ID,因為您使用 name 作為過濾器。 因此更改如下所示的代碼以檢索該 id。

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

這里使用的“0”是從 id 列表中檢索第一個元素。 在你的情況下,它是唯一的元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM