Как исправить «rsadecrypt: аргумент 1 должен быть строкой типа, получил список типов в:» - PullRequest
0 голосов
/ 04 июля 2019

В начале я хочу собрать только одну машину с Windows, поэтому этот код отлично работает в начале:

output "Administrator_Password" {
  value = "${rsadecrypt(aws_instance.new_instance.password_data, file("${module.ssh_key_pair.private_key_filename}"))}"
}

Но как только я введу count в resource "aws_instance" "new_instance" {, я должен добавить * до выражения aws_instance.new_instance.*.password_data.

Но потом я начинаю получать эту ошибку:

Error: Error running plan: 1 error(s) occurred:

* output.Administrator_Password: At column 3, line 1: rsadecrypt: argument 1 should be type string, got type list in:

${rsadecrypt(aws_instance.new_instance.*.password_data, file("${module.ssh_key_pair.private_key_filename}"))}

Я пробовал синтаксис count.index, но они не работают.Варианты:

aws_instance.new_instance.password_data[count.index]

и

aws_instance.new_instance.password_data[aws_instance.new_instance.count.index]

1 Ответ

1 голос
/ 05 июля 2019

Попробуйте использовать ресурс template_file,

data "template_file" "decrypted_keys" {
  count = "${aws_instance.new_instance.count}"

  template = "${rsadecrypt(element(aws_instance.new_instance.*.password_data, count.index), file(module.ssh_key_pair.private_key_filename))}"
}

output "Administrator_Password" {
  value = "${data.template_file.decrypted_keys.*.rendered}"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...