Terraform “如何修复”;rsadecrypt:参数1应为类型字符串,在中获取类型列表:";

Terraform “如何修复”;rsadecrypt:参数1应为类型字符串,在中获取类型列表:";,terraform,Terraform,开始时,我只想构建一台windows计算机,因此此代码在开始时运行良好: output "Administrator_Password" { value = "${rsadecrypt(aws_instance.new_instance.password_data, file("${module.ssh_key_pair.private_key_filename}"))}" } 但是,一旦我将count引入资源“aws\u instance”“new\u instance”{,我必须将*添

开始时,我只想构建一台windows计算机,因此此代码在开始时运行良好:

output "Administrator_Password" {
  value = "${rsadecrypt(aws_instance.new_instance.password_data, file("${module.ssh_key_pair.private_key_filename}"))}"
}
但是,一旦我将
count
引入
资源“aws\u instance”“new\u instance”{
,我必须将
*
添加到表达式
aws\u instance.new\u instance.*.password\u 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]


尝试使用模板文件资源

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}"
}
可能重复的
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}"
}