Копировать снимок EBS из одного региона в другой регион - PullRequest
0 голосов
/ 04 ноября 2018

Я хотел скопировать мой снимок EBS из одного региона в другой. Но при фильтрации идентификатора моментального снимка он вернет идентификатор с именем 1411205605, но я ожидал, что он вернет что-то вроде: 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 (1411205605) для параметра snapshotId недействителен. Ожидаемое: 'щелчок-...'. код состояния: 400, идентификатор запроса: bd577049-8b4e-45bc-8415-59e22b4d26d5

Я не знаю, где я допустил ошибку. Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 04 ноября 2018

Это потому, что "Источник данных: aws_ebs_snapshot_ids" возвращает атрибут "идентификаторы" , который установлен в список идентификаторов моментальных снимков EBS, отсортированных по времени создания в порядке убывания.

Теперь в вашем случае можно предположить, что "идентификаторы" содержат один идентификатор моментального снимка, поскольку вы используете имя в качестве фильтра. Поэтому измените код, как показано ниже, чтобы получить этот идентификатор.

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

Используемое здесь «0» служит для извлечения 1-го элемента из списка идентификаторов. В вашем случае это единственный элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...